c语言大神_关于C语言问题,求大神!
#include <stdio.h>
#include <conio.h>
void main()
{
int i,k,a[100],t=0;
printf("请输入一个升序的数组(按回车结束):");
for(i=0;i<100;i++)
{
a[i]=getchar();
if(a[i]=='\n')
{
break;
}
a[i]=a[i]-48;
t++;
}
for(i=0;i<t;i++)
printf("%d ",a[i]);
}
该程序是正常的,但我想改进它。想法是:输入一个数组,然后回车结束,再输出这个数组来。但我这个程序只能输入个位数,而不能输入十位或者是百位,因为我用了getchar()。想问:我该怎么改才能输入百位数?(一定要可以回车结束的)
最佳答案
#include <stdio.h>
#include <conio.h>
void main()
{
int i, k, a[100], t = 0;
char c;
printf("请输入一个升序的数组(按回车结束):");
for(i = 0; i < 100; i++)
{
scanf("%d%c", &a[i], &c);
t++;
if(c == '\n')
{
break;
}
}
for(i = 0; i <t; i++)
printf("%d ", a[i]);
}
其他回答
其它网友回答:
大兄弟,你这样做法有点坑啊,scanf函数你应该会用吧?
其它网友回答:
如下编写可以满足你的要求:
其它网友回答:
int a[100];
其它网友回答:
for (int i = 0; i < 100; ++i) scanf("%d", &a[i]);
其它网友回答:
for (int i = 0; i < 100; ++i) printf("%d\n", a[i]);
其它网友回答:
其它网友回答:
然后你就能输入任意100个数了,比如输入 1 20 3333 123 45 ... 11118 909,再按回车键,就会打印出
其它网友回答:
1
其它网友回答:
20
其它网友回答:
3333
其它网友回答:
123
其它网友回答:
45
其它网友回答:
...
其它网友回答:
11118
其它网友回答:
909
其它网友回答:
你可以把数组个数改小一点进行验证
追答:
你也可以在此基础上进行修改,让它更符合你的需求,因为老实说,你的需求并没有写详细