for(d=0;d<=j;d++)
你把d<=j改为d<j就可以了....
淘宝杜琨
非递减的LA和LB,构建个 递增的LC main() {int a[4],b[7],c[4],d[7],e[11],f[11],i,j,l,k,lk,*p,*q,*ff,*ee;
p=&e[0]; /* p=e;*/ q=&f[0]; ff=&f[0]; ee=&e[0];
a[0]=2,a[1]=4,a[2]=5,a[3]=5,b[0]=4,b[1]=4,b[2]=6,b[3]=4,b[4]=4,b[5]=4,b[6]=4;
for(i=0;i<=2;i++) { for(j=0;j<=2-i;j++) if(a[j] != a[j+1]) {lk=a[j];a[j]=a[j+1]; a[j+1]=lk;} else a[j+1]=0; }
for(i=0;i<=5;i++) { for(j=0;j<=5-i;j++) if (b[j] != b[j+1]) {lk=b[j];b[j]=b[j+1];b[j+1]=lk;} else b[j+1]=0; }
for (i=0;i<7;i++) { for(j=0;j<4;j++) { if (a[j] != b[i]) c[j]=a[j]; else a[j]=0;
} /* 判断线形表LA里 是否有 和线形表LB里相同的元素,如果有,就把那个元素的值赋给0 */
} /* for(j=0;j<4;j++) printf("a[%d]=%d\n",j,c[j]); */ for(j=0;j<4;j++) for(i=0;i<7;i++) { { if (b[i] != a[j]) d[i]=b[i]; else b[i]=0;
} } /* 判断线形表LB里 是否有 和线形表LA里相同的元素,如果有,就把那个元素的值赋给0 */
/* for(i=0;i<7;i++) printf("b[%d]=%d\n",i,d[i]); */
for(l=0;l<4;l++) { if(a[l] != 0) e[l]=a[l]; else e[l]=a[l]; } /*把LA的元素:即数组a的元素放到一个新数组E[10]*/ /* for(k=0;k<4;k++) printf("c[i]=%d\n",e[k]); */
for(k=0;k<7;k++) { e[k+4]=b[k] ; } /*把LB里的元素:即数组b的元素插入到数组E[10]*/
/*for(k=0;k<11;k++) printf("c[%d]=%d\n",k,e[k]); */
/* for(k=0;k<11;k++) 先判断数组e里是否为0,不等于0的话就放到数组f { if ((*p) != 0)
{ f[k]=(*p);
printf("c[%d]=%d\n",k,f[k]);
}
p=p+1; } */
for(k=0;k<11;k++) /* 初始化数组 f[]=0*/ { f[k]=0; }
for(k=0;k<11;k++) /*两个分别指向数组e和数组f的指针(p--》e,q--》f)判断数组e中是否有0元素,把非0元素的值顺序放到数组f中*/ { if ((*p) != 0) { (*q)=(*p); q=q+1; p=p+1; } else { p=p+1;} }
for(i=0;i<=9;i++) { for(k=0;k<=9-i;k++) if(f[k] > f[k+1]) {lk=f[k];f[k]=f[k+1];f[k+1]=lk;} }
/* for(i=0;i<11;i++) printf("f[%d]=%d\n",i,f[i]); */ for(i=0;i<11;i++) e[i]=0;
for(k=0;k<11;k++) { if ((*ff) != 0) { (*ee)=(*ff); ee=ee+1; ff=ff+1; } else ff=ff+1; } for(i=0;i<11;i++) if (e[i] != 0) printf("eee[%d]=%d\n",i,e[i]);
} 已经做出来了````哈```` 大家看看先```
三楼的做法就不错.既简单又明了.
楼上的写法不是很赞同.建议找一本介绍C语言编码规范的书来读. 斗胆重写楼上的程序,还请指教. #include<stdio.h> #include<conio.h>//包含函数getch() main() { int i,j=0; int a[4]={1,2,0,4},b[4]; for(i=0;i < 4;i++) { if(a[i] != 0) //建议把!=0写上以增加可读性 { b[j]=a[i]; j++; } } for(i=0;i < j;i++) //建议写d < j,这样循环次数正好是j次.这样增加可读性. { printf("%d\n",b[i]); //局部变量可以重用没必要定义太多的变量. } getch();//保住运行界面,击任意键退出. }