这是我被要求解决的问题->所以我写了以下代码-->我在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;
}