程序代码:
#include<stdio.h>
void main(){
int a[5],b[5],c[5];
int i,ib,ic;
printf("输入一串数=");
scanf("%d",&a[i]);//此时i是多少?scanf(&a[i])打算干嘛?你不是打算告诉我就这一条指令就能把那一串数全读进数组a吧。。
ib=0;ic=0;
for(i=0;i<5;i++)//i<5,,,所以数组a必须有且只有5个数据,不能多不能少。
if(a[i]%2==1)
b[ib++]=a[i];
if(a[i]%2==0) //for循环为什么不跟大括号?你的编程习惯不太好。导致这个if是等for循环结束以后单独执行一次的,而那时i==5,a[5]已经越界。。。
c[ic++]=a[i];
printf("%d\n",b[i]);//b[i]是什么含义?...ib干嘛去了?
printf("%d\n",c[i]);//c[i]是什么含义?...ic干嘛去了?
}
仅供参考:
程序代码:
#include<stdio.h>
int main(){
int a[5],b[5],c[5];
int i=0,ib=0,ic=0,num;
printf("请输入一个小于等于5的数,表示待分类的数字有多少。");
scanf("%d",&num);
for(;i<num;i++){scanf("%d",&a[i]);
if(a[i]%2==0)b[ib++]=a[i];
else c[ic++]=a[i];
}
printf("\n有%d个偶数\n",ib);
for(int j=0;j<ib;j++){
printf("%d ",b[j]);}
printf("\n有%d个奇数\n",ic);
for(int j=0;j<ic;j++){
printf("%d ",c[j]);}
return 0;}