我想在数组中读取可变数量的整数,直到用户点击Enter。我通过以下方式成功实现了这一目标:
printf("Give the numbers in the array, then hit ENTER: \n");
scanf("%d", &array[i]);
i++;
no_elements++;
while (scanf(line, "%d", &array[i++])== 1) {
scanf("%d", &array[i]);
i++;
no_elements++;
}
另一方面,我在网站上发现了这个,我不完全理解scanf测试。它的作用是当我按下回车时读数停止。但是,读取的整数数最终等于1(通过添加printf指令检查)。这是为什么?我怎么能这样做呢?
注意:变量i在开头设置为0,no_elements也是如此; line被声明为char行[20]。
答案 0 :(得分:2)
#include <stdio.h>
int main() {
int i=0, no_elements = 0;
int array[16];
while(no_elements<16){
char line[32];
int n;
printf("Give the numbers in the array, then hit ENTER: \n");
fgets(line, sizeof(line), stdin);
if(*line == '\n')
break;
if(1==sscanf(line, "%d", &n))
array[no_elements++]=n;
}
printf("%d\n", no_elements);
return 0;
}
答案 1 :(得分:0)
#include<stdio.h>
void main()
{int a[100],i,sum=0,count=0;
char c;
for(i=0;c!='\n';i++)
{scanf("%d%c",&a[i],&c);
count++;
}
for(i=0;i<count;i++)
{sum=sum+a[i];}
printf("%d",sum);
getch();}`
答案 2 :(得分:-1)
在C中: 如果输入是以空格分隔的整数给出的,则在最后输入后如果按下回车键,我们可以读如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ar[10],i=0;
char c=' ';
while(c!='\n'){
scanf("%d%c",&ar[i++],&c);
}
while(i>0)
printf("%d\t",ar[--i]);
}