gpt4 book ai didi

c - 如何读取直到 EOF 并打印输入的偶数/奇数?

转载 作者:太空狗 更新时间:2023-10-29 15:03:29 26 4
gpt4 key购买 nike

我有下面的 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");

}

最佳答案

您的问题有更简单的解决方案

希望你喜欢

#include<stdio.h>


int main()
{

int num,od = 0, ev = 0;
int odd[1000],even[1000];

while(scanf("%d",&num) == 1)
{
if(num%2==0)
{
even[ev] = num;
ev++;
}
else
{
odd[od] = num;
od++;
}
}

printf("Odds numbers are: ");

for(int i = 0;i<od;i++)
{
printf("%d ",odd[i]);
}

printf("\nEven numbers are: ");

for(int i = 0;i<ev;i++)
{
printf("%d ",even[i]);
}


return 0;
}

程序输出与预期输出相匹配

快乐编码

关于c - 如何读取直到 EOF 并打印输入的偶数/奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43780946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com