想将十个整数按升序排列且奇数在前,偶数在后,求找错误
#include <stdio.h>int main()
{
int a,i,n,t,j;
int odd=0;
int even=9;
printf("input 10 nums:");
for(i=0;i<10;i++)
{
scanf("%d",&n);
if(n%2==0)
{
a=n;
even--;
}
if(n%2!=0)
{
a=n;
odd++;
}
}//
for(i=0;i<odd-1;i++)
{
n=i;
for(j=i+1;j<odd;j++)
{if(a<a)
n=j;
if(n!=i)
{
t=a;
a=a;
a=t;}
}
}
for(i=even;i>odd+1;i--)
{
n=i;
for(j=even-1;j>odd;j--)
if(a<a)
n=j;
if(n!=i)
{
t=a;
a=a;
a=t;
}
}
for(i=0;i<10;i++)
{
printf ("%d\t",a);
}
return 0;
}想将十个整数按升序排列且奇数在前,偶数在后
这是和刚才帖子一个代码吧?
Twilight6 发表于 2022-5-17 17:20
这是和刚才帖子一个代码吧?
是的,但是后面还有一些问题,可以帮忙看看吗 Twilight6 发表于 2022-5-17 17:20
这是和刚才帖子一个代码吧?
后面偶数升序也有问题 addendum777 发表于 2022-5-17 17:42
后面偶数升序也有问题
我改了改,试试看行不行:
#include <stdio.h>
int main()
{
int a, i, n, t, j;
int odd = 0;
int even = 9;
printf("input 10 nums:");
for (i = 0; i < 10; i++)
{
scanf("%d", &n);
if (n % 2 == 0)
{
a = n;
even--;
}
if (n % 2 != 0)
{
a = n;
odd++;
}
}
for (i = 0; i < odd; i++) {
for (j = odd - 1; j > i; j--) {
if (a > a) {
t = a;
a = a;
a = t;
}
}
}
for (i = even + 1; i < 10; i++) {
for (j = 10 - 1; j > i; j--) {
if (a > a) {
t = a;
a = a;
a = t;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d\t", a);
}
}
页:
[1]