题目描述:
读入一些整数,逆序输出到每一行,已知整数不超过100个.
题目问题:请问为什么一直输入,不能停止输入,怎么输出
代码:
#include
#define maxn 105
int a[maxn];
int main() {
int x,n = 0;
while(scanf("%d",&x)==1)
a[n++]=x;
for(int i=n-1; i>=1; i--)
printf("%d ",a[i]);
printf("%d\n",a[0]);
return 0;
}
望采纳
while(scanf("%d",&x)==1 && n < 100)
a[n++]=x;
另外,在输出数组 a 中的数字时,你需要注意最后一行末尾不要输出空格,因此在输出最后一个数字 a[0] 时,要使用 printf("%d\n",a[0]) 的形式,而不是 printf("%d ",a[0])。
要加上限制条件!
示例1:
#include <stdio.h>
#define maxn 105
int a[maxn];
int main(void)
{
int n = 0;
while (scanf("%d", &a[n++]) == 1 && n < 10)
;
for (int i = --n; i >= 0; i--)
printf("%d ", a[i]);
return 0;
}
示例2:
#include <stdio.h>
#define maxn 105
int a[maxn];
int main(void)
{
int n = 0;
//空格键分隔输入,按回车键结束输入,最大不超过100个数。
while (scanf("%d", &a[n++]) == 1 && getchar() != '\n' && n < 100)
;
for (int i = --n; i >= 0; i--)
printf("%d\n", a[i]);
return 0;
}
ctrl+z结束输入