- 论坛徽章:
- 0
|
哈哈。编好了。不知道思路是否正确,错就一定有的。
刚学编程两个月,不知道思路是否正确,错就一定有的。
#include"stdio.h"
com(int a[2000],int n)
{int i,j,p,q,s;
for(i=0;i<2*n-1;i++)
{
a[0]=q,p=i;
for(j=i+1;j<2*n;j++)
if(a[j]>q)
{q=a[j];p=j;}
if(i!=p)
{a=s;
s=a[p];
a[p]=a;
}
return(a[2*n-1);
}
for(i
main()
int a[1000],b[1000],c[2000],n,j,k,p,q;
printf("input two same struct array and same long\n");
scanf("%d",&n);
printf("input first struct array");
for(i=0;i<n;i++)
scanf(%d",a);
printf("input secend struct array");
for(i=0;i<n;i++)
scanf(%d",b);
for(i=0;i<n;i++)
c=a;
for(i=0;i<n;i++)
c[n+i+1]=b;/*结合两组数据*/
c[n+i+1]=[com(c[n+i+1],n);/*并排列大小*/
for(i=0;i<n;i++)
{a=0;
b=0;}/*清0*/
a[0]=c[0];
b[0]=c[1];
s=1;
t=1;
p=0;
q=0;
for(i=2;i<2*n-1;i++)
{
if(s==n-1)\*判断是否已经分好了一个数组*\
{for(i=n+t-1;i<2*n-1;i++,t++)
b[t]=c[n+t-1];
break;}
if(t==n-1)\*判断是否已经分好了另一个数组*\
{for(i=n+s-1;i<2*n-1;i++,s++)
b=c[n+s-1];
break;}
for(j=0;j<s;j++)
p+=a[j];\*求数组a[j]的值*\
for(j=0;j<t;j++)\*求数组a[j]的值*\
q+=b[j];
if(p>q)\*判断已经分好的数组大小,并分配下一数值到较少的数组*\
{c=b[t];
t++;}
else{c=a
s++;}
}
for(i=0;i<n;i++)
printf("a=%d ",a);
printf("\n");
for(i=0;i<n;i++)
printf("b=%d ",b);
getch();
}
[ 本帖最后由 hithotwinds 于 2006-11-13 10:25 编辑 ] |
|