我正在尝试将(15个或更少)数字扫描到变量/数组array[15]
中,我希望它在输入为EOF
“CTR + Z”时停止扫描,或者在那里已输入15个值,我尝试使用( i < 15 )
,如下所示,但它似乎并没有真正完成任务,任何帮助将不胜感激
这是我的代码:
#include <stdio.h>
int main(){
int array[15], i = 0;
printf( "Please enter a sequence A: " );
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){
printf( "%d ", array[i] );
i++;
}
return 0;
}
答案 0 :(得分:2)
您需要&&
而不是||
while( (scanf( "%d", &array[i]) != EOF) && ( i < 15 ) ){
再次接受的条件是当没有EOF
和时,接受的输入小于15
答案 1 :(得分:1)
代码有3个问题
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){ // problem code
需要使用&&
而非||
来确保两项测试都通过。 @Sniper
数组索引测试为时已晚。先做。 @Some programmer
scanf( "%d", &array[i])
返回0,1或EOF
。仅在1上,代码设置为array[i]
。 @Some programmer
固定
while(i < 15 && scanf("%d", &array[i]) == 1) { // fixed code