条件下,给a、b数组冒泡升序排序,以下是小弟的做法,但老是显示语法错误,请指教,谢谢!!!!
#include<stdio.h>
int main()
{
void sortAnB2C(int a[],int asize,int b[],int bsize,int c[],int csize);
int a[8]={8,3,1,5,4,9,-1,10},b[3]={6,3,2},c[11];
sortAnB2C(a,8,b,3,c,11);
return 0;
}
void sortAnB2C(int a[],int asize,int b[],int bsize,int c[],int csize)
{
int i,j,k,t,l;
for(i=0;i<asize-1;i++)
{k=i;
for(j=i+1;j<asize;j++)
if(a[j]>a[k])k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
for(i=0;i<asize;i++)
printf("%2d",a[i]);printf("\n");
for(i=0;i<bsize-1;i++)
for(j=0;j<bsize-1-i;j++)
{if(b[i]>b[i+1]){t=b[i];b[i]=b[i+1];b[i+1]=t;}
for(j=0;j<bsize;j++)
printf("%2d",b[j]);printf("\n");
for(j=0,l=0;j<asize+bsize-1;j++)
for(i=0;i<asize+bsize-1-j;i++)
{
if(i<7)
{
if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
if(i==7)
{
if(a[i]>b[l]){t=a[i];a[i]=b[l];b[l]=t;}
}
if(i>7)
{
if(b[l]>b[l+1]){t=b[l];b[l]=b[l+1];b[l+1]=t;l++;}
}
}
for(i=0;i<asize;i++)printf("%2d",a[j]);printf("\n");
for(j=0;j<bszie;j++)printf("%2d",b[j]);printf("\n");
for(i=0,j=0;i<csize;i++)
{
if(i<8)c[i]=a[i];
if(i>=8){c[i]=b[j];j++}
}
printf("%2d",c[j]);
}
要求输出5次结果,a数组的降序、b数组的升序,在没有第三个数组c的情况下冒泡a、b数组的升序,最后把a、b数组合并成c数组。
大神谢谢您的回答,按时间顺序给了第一个热心大神,嗯,少了}括号,程序有待改善,谢谢指导
最后补充了一个}还是出现syntax error
追答仅仅编译通过,在VS2005上: