请问下面这段C语言代码错在哪里?
题目要求是将数组中的奇数和偶数分离,偶数在前,奇数在后。这段程序的输出结果和原数组一样,没有变化。#include<stdio.h>voidresort(inta[],i...
题目要求是将数组中的奇数和偶数分离,偶数在前,奇数在后。
这段程序的输出结果和原数组一样,没有变化。
#include<stdio.h>
void resort(int a[],int n)
{ int i=0,j=n-1,temp;
while(i<j)
{
while((i<j)&&(a[i]%2==0)) i++;
while((i<j)&&(a[i]%2!=0)) j--;
if(i<j)
{temp=a[j];
a[j]=a[i];
a[i]=temp;
i++;j--;
}
}
}
main()
{int a[10]={17,15,10,14,16,17,19,18,13,12} ,i;
printf("\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
resort(a,10);
printf("\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
getch();
} 展开
这段程序的输出结果和原数组一样,没有变化。
#include<stdio.h>
void resort(int a[],int n)
{ int i=0,j=n-1,temp;
while(i<j)
{
while((i<j)&&(a[i]%2==0)) i++;
while((i<j)&&(a[i]%2!=0)) j--;
if(i<j)
{temp=a[j];
a[j]=a[i];
a[i]=temp;
i++;j--;
}
}
}
main()
{int a[10]={17,15,10,14,16,17,19,18,13,12} ,i;
printf("\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
resort(a,10);
printf("\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
getch();
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询