事先不知道有多少个数字,把输入的数字放入动态数组中,在C++中怎么实现,求代码

作者&投稿:达奚滕 (若有异议请与网页底部的电邮联系)
怎么编程序让键盘输入数字到数组里,事先不知道要输入~

#include int a[233],n;int main(){ n=1; while (scanf("%d",&a[n])!=EOF) n++;n--; printf("%d
",n); for (int i=1;i<=n;i++) printf("%d
",a[i]);}

#include
#define
N
1000
int
input(int
a[N])
{
int
i=0,k=1;
for(i=0;k!=0&&i<N;i++)
{
cout<<"请输入第"<<i+1<<"个数"<<'
';
cin>>a[i];
cout<<"请确定是否要继续,输入0退出,输入其它数继续"<<'
';
cin>>k;
}
return
i;
}
void
output(int
a[N],int
j)
{
int
i;
cout<<"输出结果为

"<<'
';
for(i=0;i<j;i++)
{
cout<<a[i]<<"
";
}
cout<<'
'<<"输出完毕";
}
void
main
()
{
int
a[N];
int
j;
j=input(a);
output(a,j);
}
这是我写的代码!!写了半天啊!!
可能不太符合要求,不过也还行,你试试呢!!!!!

如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3

cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}

cout << i;
另外,虚机团上产品团购,超级便宜

如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3

cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}

cout << i;

C/C++的数组因为是在栈中分配内存,所以在定义时必须指定一个确切的长度。如果不知道长度怎么办呢?就在堆中分配吧!
C++:
int* a = new int[length];
C:
int* a = (int*) malloc(length * sizeof(int));
length可以是一个变量,即在程序运行前并不知道length的值。但用完一定要手动释放内存,C/C++并不是java。
C++:
delete [] a;
C:
free(a);

用vector容器吧!或者你可以试下用下面的例子的方法:
例如:
#include <vector>
main()
{ int i=0;
vector<int> v;//说明一个int类型的载体
for(;i++)
{
v.push_back(i);//用for语句把元素一个一个存入vector中
}
/*v.clear() 作用是对存入的数据清空*/

}
for(i=0;i<v.size();i++) //v.size()表示vector存入元素的个数
{
cout<<v[i]<<" ";
}
cont<<endl;
}

设计一个链表就可以。


Python数据有多少怎么算(python怎么算个数)
python3中怎么计算一个页面中有几条数据用type获取到元素的数据类型 然后存到字典里就行了 键是元素类型(转换成字符串 值是出现的个数 每次+1 python读取TXT内容后怎么计算里面数据?不公用panda,所以直接用列表和字典来写 最终统计后的结果,字典格式 products={} 读取的记录,列表格式 records=[]...

excel中统计个数的方法是什么?
不知道你要怎么统计的?如:统计有多少个“辽宁”、多少个“吉林”、……,是不是这样:各省市自治区名称在A列(A1起),在B1输入 =IF(COUNTIF(A$1:A1,A1)=1,COUNTIF(A:A,A1),"")回车并向下填充。或:先用函数提取具体行政区划名称,如B1输入 =INDEX(A:A,SMALL(IF(MATCH(A$1:A$1000...

今有物不知其数三三数之剩1,五五之数剩2七七之数剩3,问物几何
答:二十三。解答:其中70是5、7公倍数中被3除余1的数;21是3、7公倍中被5除余1的数;15是3、5公倍数中被7除余1的数。105则是3、5、7的最小公倍数。如果得数较大,可以连续减去105。依此,上题可列式为: 70×2+21×3+15×2=233 ,233-105-105=23。

为什么老人常说,包饺子的时候,不能查个数?
每次吃饺子的时候,我为了在父母面前表现得很能吃的样子,都会数一数吃了多少个,不知道是怎么做到全国统一的,只要我一数饺子的个数,老妈就会隔空狮子吼,从那时起我就养成一个习惯,每次吃饺子的时候一开始都会数一下,但是快吃完的时候却发现我竟然忘记吃了多少个了,直到现在成年了仍然如此。 那么为什么老年人都不...

一共有多少人,我前面有几个,后面有几个?
分析过程如下:我前面有9人,后面有5人,没有把我自己包含在内。把我自己包含在内的总人数才是整队的总人数,由此可得:整队的总人数=9+1+5=10+5=15人。运算定律:1、加法交换律:两个数相加,交换加数的位置,它们的和不变,即a+b=b+a 。2、加法结合律:三个数相加,先把前两个数相加,...

列一个除法竖式,编一个小故事
熊妈妈说:“这可没办法,我得知道你到底有多少个朋友来才能分啊!如果来3个朋友,我就用糖的总数除以3,然后按照得数一个个数出来。”小熊说:“那肯定来不及的,而且你现在还不知道总数有多少,先数总数,在做除法,在一个个分开数,多麻烦啊。”熊妈妈也急了:“是啊,这怎么办啊?”小熊想...

excel中怎么统计某个条目有多少个
一、按题意可以用COUNTIF函数来解决。二、COUNTIF函数定义 COUNTIF 计算区域中满足给定条件的单元格的个数。语法 COUNTIF(range,criteria)Range 为需要计算其中满足条件的单元格数目的单元格区域。Criteria 为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。例如,条件可以表示...

在读数时每级的末尾不管有多少个零都不读出来
在读数时,每级的末尾不管有多少个0,都不读出来是正确的。按照四位分级的原则,我国的读数法则是:四位以内的数,按照数位顺序,从高位读起。四位以上的数,先从右向左四位分级,然后从最高级起,顺次读出各级里的数和它们的级名。如果一个数末尾有“0”,末尾的“0”不读;每一级末尾的“0”...

1到100中有多少个7?
一共含20个数字7 7,17,27,37,47,57,67,87,97,70,71,72,73,74,75,76,77,78,79 共20个(其中77包含2个7)

2: 已知甲乙各有一个数字,但互相不知道对方数字为多少,只知道他俩相...
但由于甲不是16,便只能是8)。《甲:1 2 4 8 乙:2 4 8》第二次 先甲不是1,8(如果甲是1的话,便知道乙是8;如果是8的话,便知道乙是2) 那么甲就剩下2,4 而乙还是不清楚甲是什么数字可得乙是4。《甲:2 4 乙:4》第三次 甲知道乙是4, 乙不清楚甲是2还是4 ...

镶黄旗14717198200: 如何在不知道有多少个数字的情况下,往数组里输入数字 -
佐翁聚磺: scanf("%d",x);int a[x];for (int i=0;i<x;i++){scanf("A[",i,"]=%d\n",&a[i]);}输入数组时,每输入一个加一个回车即可. 定义一个数组.假设为 int a[100]int a[100];for(i=0;i<100;i++)scanf("%d",&a[i]);输入的每一个数可以用空格间隔即可(也可用换行符).

镶黄旗14717198200: 事先不知道有多少个数字,把输入的数字放入动态数组中,在C++中怎么实现,求代码 -
佐翁聚磺: 用vector容器吧!或者你可以试下用下面的例子的方法:例如:#include <vector> main() { int i=0; vector<int> v;//说明一个int类型的载体 for(;i++) { v.push_back(i);//用for语句把元素一个一个存入vector中 } /*v.clear() 作用是对存入的数据清空*/ } for(i=0;i<v.size();i++) //v.size()表示vector存入元素的个数 { cout<<v[i]<<" "; } cont<<endl; }

镶黄旗14717198200: C语言怎么让键盘输入数字到数组里,事先不知道要输入多少个数,按回车结束. -
佐翁聚磺: #include int main() { int i,n=0,a[999];for(i=0;;i++) { scanf("%d",&a[i]); n++; //计算输入个数 if(getchar()=='\n')break; //遇回车中断 } for(i=0;i printf("\n"); return 0; }

镶黄旗14717198200: c语言问题,我输入一行数,用for循环和scanf函数输入,但是我事先不知道要输入多少个数字(少于 -
佐翁聚磺: int n; int a[100],i = 0; for( i= 0; ;i++) { printf("请输入数字:(-1代表结束)\n"); scanf("%d",&a[i]); if(a[i] == -1) break; } 输出的时候也使用n做判断条件,这样就好了.

镶黄旗14717198200: python在不知道输入的数字个数的情况下该怎么写input? -
佐翁聚磺: 给予5次输入的机会,如果5次都失败则退出运行,成功则输出每个数字,输入的数字与数字之间需要空格.添加横线是为了排版方便看懂,请见谅 for times in range(0,5): ----numbers=raw_input("input numbers:") ----if all([a.isdigit() for a in numbers.split()]: --------break ----elif times>=4: --------sys.exit(0) for a in numbers.split(): ----print int(a)

镶黄旗14717198200: C语言中,如果不知道要输入几个数,怎么才能保证输入的数赋值给数组 -
佐翁聚磺: 数组的大小是有限的 int a[10]; 你可以while(scanf("%d",a[i]) != EOF){ i++; }//然后再输入结束的时候按ctrl+z

镶黄旗14717198200: 简单的C语言编程(求和),在线等 -
佐翁聚磺: #include <stdio.h> int main() { int N = 6; int arrVal[] = {1, 2, 3, 4, 5, 6}; double Sum1 = 0; double Sum2 = 0; double E = 0, C = 0; for(int i = 0; i< N; i++) { if(0 != arrVal[i]) { Sum1 += 1.0 / arrVal[i]; } Sum2 += arrVal[i]; } E = Sum1 / (N * (N -1)); C = (N-1) / Sum2; printf("E = %f, C= %f", E, C); return 0; }

镶黄旗14717198200: 在C语言中,如果要输入一串数字,其中每个数字用逗号隔开,且不知道总共输入了多少数字.要怎样输入呢? -
佐翁聚磺: 先读1个整型数. 然后循环:读1个字符,如果字符是逗号则读1个整型数,如果不是逗号,循环就结束. 如果读整型数有错,循环也结束. #include<stdio.h> #include<stdlib.h> main(){ int x[100],n=0,i; int c; if ( scanf("%d",&x[n])==1) n++; while...

镶黄旗14717198200: c++输入一组数以回车作为结束 -
佐翁聚磺: 不可能的,C++通常意义上的数组的大小必须翻译期确定,因为它会最终写入可执行代码. 你这种情况只能使用动态分配内存, 可以考虑使用 vector 或者 list,它们会自动增长管理的空间.

镶黄旗14717198200: java怎样输入若干个整数(输入之前并不知道“若干”是多少) -
佐翁聚磺: 有两种方式.一种是输入一行,中间以空格隔开,获取到这一行字符串后,再转换成一个一个的数字. 另一种是以某个数字作为截止标记,比如当输入-1的时候,表示输入完成了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网