用C语言编写一个程序,将偶数和奇数打印在两个不同系列的数组中.[数字将由用户插入]



这是我被要求解决的问题->所以我写了以下代码-->我在Windows10上使用gcc编译器运行这段代码。

#include <stdio.h>
int main()
{
int a, b[a], i;
//The Max. range to print the odd and even numbers
printf("Enter a range to print the odd and even numbers-->n"); 
scanf("%d", &a);
for (i = 0; i < a; i++)
{
scanf("%d", &b[i]);
}
i--;
for (i; i <= a; i--)
{
printf("The Even numbers are -->n");
if (b[i] % 2 == 0)
{
printf("%d", b[i]);
}
printf("The Odd numbers are -->n");
if (b[i] % 2 != 0)
{
printf("%d", b[i]);
}
}
return 0;
}

但是,只执行了代码的第一部分。这个程序既不接受用户[在数组中]的任何输入,也不返回任何错误。你能帮我把"C"代码弄好吗。

由于a没有值,因此不能使用a来设置数组b的大小。只需在获得a:的值后声明b

int a;
printf("Enter a number-->n");
scanf("%d",&a);
int b[a];

此外,您还有一种非常奇怪的方法来循环遍历您的数组。什么反对这样的东西:

printf("nThe Even numbers are -->n");
for(int i = 0; i<a;i++){
if(b[i] %2 == 0)
printf("%d ",b[i]);
}
printf("nThe Odd numbers are -->n");
for(int i = 0; i<a;i++){
if(b[i] %2 != 0)
printf("%d ",b[i]);
}

完整代码:

#include <stdio.h>
int main()
{
int a, i;
//The Max. range to print the odd and even numbers
printf("Enter a number-->n"); 
scanf("%d", &a);
int b[a];
for (i = 0; i < a; i++)
{
scanf("%d", &b[i]);
}
printf("nThe Even numbers are -->n");
for(int i = 0; i<a;i++){
if(b[i] %2 == 0)
printf("%d ",b[i]);
}
printf("nThe Odd numbers are -->n");
for(int i = 0; i<a;i++){
if(b[i] %2 != 0)
printf("%d ",b[i]);
}
return 0;
}

最新更新