#include<stdio.h> int main() { int a[1005]={0},b[1005]={0}; int ji=0,ou=0; int i,n,x; scanf("%d",&n); if(n==1) { scanf("%d",&x); printf("%d",x); } else { for(i=0;i<n;i++) { scanf("%d",&x); if(x%2==1) { a[++ji]=x; } else if(x%2==0) { b[++ou]=x; } } int j=1,f=1,t; while(j<=ji || f<=ou) { for(t=0;t<2;t++) { if(j<=ji) { if(j==1) { printf("%d",a[j]); } else { printf(" %d",a[x]); } j++; } } if(f<=ou) { printf(" %d",b[f]); f++; } } } return 0; }哪里错了
时间: 2024-02-10 20:11:24 浏览: 50
这段代码有一些小错误:
1. 第 25 行中,变量名应该为 j,而不是 x。
2. 在第 29 行和第 30 行中,你使用了变量 t,但是并没有给它赋初值。你可以在第 27 行中先给 t 赋值为 0,然后在第 29 行和第 30 行中使用。
3. 在第 31 行中,应该加上一个换行符,使得输出的每一行都是独立的。
4. 在第 37 行中,应该将 f 改为 j,因为 j 比较小,所以应该以 j 为条件判断是否还有奇数未输出。
下面是修改后的代码:
```
#include<stdio.h>
int main() {
int a[1005]={0},b[1005]={0};
int ji=0,ou=0;
int i,n,x;
scanf("%d",&n);
if(n==1)
{
scanf("%d",&x);
printf("%d\n",x);
}
else
{
for(i=0;i<n;i++)
{
scanf("%d",&x);
if(x%2==1)
{
a[++ji]=x;
}
else if(x%2==0)
{
b[++ou]=x;
}
}
int j=1,f=1,t=0;
while(j<=ji || f<=ou) {
for(t=0;t<2;t++)
{
if(j<=ji)
{
if(j==1)
{
printf("%d",a[j]);
}
else
{
printf(" %d",a[j]);
}
j++;
}
}
if(f<=ou)
{
printf(" %d\n",b[f]);
f++;
}
else
{
printf("\n");
}
}
}
return 0;
}
```
希望可以帮到你!
阅读全文