我有以下的C代码,它会读取用户输入,直到文件结束(ctrl+d),并将它们存储在一个数组中。然后,它应该在一行上打印所有奇数,然后在另一行上打印偶数。但由于某种原因它没有按预期工作。
当我输入以下内容时:
代码如下:
当我输入以下内容时:
1
2
4
16
32
64
128
256
512
1024
2048
4096
the output is:
Odd numbers were:
Even numbers were: 2 16 64 256 1024 4096
Expected output:
Odd numbers were: 1
Even numbers were: 2 4 16 32 64 128 256 512 1024 2048 4096
代码如下:
#include <stdio.h>
int main(void){
int array[1000];
int i,j,k;
int counter = 0;
for(i=0; scanf("%d", &array[i]) != EOF; i++){
scanf("%d", &array[i]);
counter = counter+1;
}
printf("Odd numbers were: ");
for(j=0; j<counter; j++){
if(array[j]%2 != 0){
printf("%d ", array[j]);
}
}
printf("\n");
printf("Even numbers were: ");
for(k=0; k<counter ; k++){
if(array[k]%2 == 0){
printf("%d ", array[k]);
}
}
printf("\n");
}
j
和k
吗? - Sourav Ghoshfor(i=0; i < 1000 && scanf("%d", &array[i]) == 1; i++) { counter = counter+1; }
- BLUEPIXYi
,因为你每次循环开始时都会将其重新赋值为0。 :) - Sourav Ghosh