鱼C论坛

 找回密码
 立即注册
查看: 1925|回复: 4

想将十个整数按升序排列且奇数在前,偶数在后,求找错误

[复制链接]
发表于 2022-5-17 17:18:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main()
{
        int a[10],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[even]=n;
                        even--;
                }
                if(n%2!=0)
                {
                        a[odd]=n;
                        odd++;
                }
               
        }//
        for(i=0;i<odd-1;i++)
        {
                n=i;
                for(j=i+1;j<odd;j++)
                {if(a[j]<a[n])
                n=j;
                if(n!=i)
                {
                t=a[i];
                a[i]=a[j];
                a[j]=t;}
                }
               
        }
        for(i=even;i>odd+1;i--)
        {
                n=i;
                for(j=even-1;j>odd;j--)
                if(a[n]<a[j])
                n=j;
                if(n!=i)
                {
                        t=a[i];
                        a[i]=a[j];
                        a[j]=t;
                }
        }
       
        for(i=0;i<10;i++)
        {
                printf ("%d\t",a[i]);
        }
       
       
       
       
       
       
       
       
        return 0;
}想将十个整数按升序排列且奇数在前,偶数在后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-17 17:20:52 | 显示全部楼层


这是和刚才帖子一个代码吧?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-17 17:41:42 | 显示全部楼层
Twilight6 发表于 2022-5-17 17:20
这是和刚才帖子一个代码吧?

是的,但是后面还有一些问题,可以帮忙看看吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-17 17:42:12 | 显示全部楼层
Twilight6 发表于 2022-5-17 17:20
这是和刚才帖子一个代码吧?

后面偶数升序也有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-17 18:10:41 | 显示全部楼层
addendum777 发表于 2022-5-17 17:42
后面偶数升序也有问题


我改了改,试试看行不行:
#include <stdio.h>
int main()
{
    int a[10], 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[even] = n;
            even--;
        }
        if (n % 2 != 0)
        {
            a[odd] = n;
            odd++;
        }
        
    }
    
    for (i = 0; i < odd; i++) {
        for (j = odd - 1; j > i; j--) {
            if (a[i] > a[j]) {
                t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
    }

    for (i = even + 1; i < 10; i++) {
        for (j = 10 - 1; j > i; j--) {
            if (a[i] > a[j]) {
                t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
    }

    for (i = 0; i < 10; i++)
    {
        printf("%d\t", a[i]);
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 16:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表