现在每次输出都会少掉最大项,还会多出来一些0,请问如何解决?
# include
# include
long long int a[1000];
long long int c[1000];
void sort(long long int as[],long long int left,long long int right)
{
if(leftx)
j--;
if(i 1)
{
sort(add,1,addnum);
}
long long int addposition = 1;
long long int aposition = 1;
long long int totalnum;
totalnum = num + addnum;
printf("The final array is:\n");
for (i=1;i<=totalnum-5;i++)
{
if (a[aposition] > add[addposition])
{
printf("%lld ",add[addposition]);
addposition++;
}
if (a[aposition] == add[addposition])
{
printf("%lld %lld ",add[addposition],add[addposition]);
i++;
aposition++;
addposition++;
}
if (a[aposition] < add[addposition])
{
printf("%lld ",a[aposition]);
aposition++;
}
}
printf("\n");
return;
}
int main()
{
long long int i,j,num;
printf("\aPlease input the number of the integers in the origin arrray:\n");
scanf("%lld",&num);
printf("\aPlease input the integers in the origin array one by one:\n");
for (i=1;i<=num;i++)
{
scanf("%lld",&a[i]);
}
sort(a,1,num);
addsort(num);
system("pause");
return 0;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
addsort中第二个for改成下面,逻辑错态度,自己对比代码吧