鱼C论坛

 找回密码
 立即注册
查看: 2201|回复: 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;
}想将十个整数按升序排列且奇数在前,偶数在后
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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


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

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

是的,但是后面还有一些问题,可以帮忙看看吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

后面偶数升序也有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


我改了改,试试看行不行:

  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int a[10], i, n, t, j;
  5.     int odd = 0;
  6.     int even = 9;

  7.     printf("input 10 nums:");
  8.     for (i = 0; i < 10; i++)
  9.     {
  10.         scanf("%d", &n);
  11.         if (n % 2 == 0)
  12.         {
  13.             a[even] = n;
  14.             even--;
  15.         }
  16.         if (n % 2 != 0)
  17.         {
  18.             a[odd] = n;
  19.             odd++;
  20.         }
  21.         
  22.     }
  23.    
  24.     for (i = 0; i < odd; i++) {
  25.         for (j = odd - 1; j > i; j--) {
  26.             if (a[i] > a[j]) {
  27.                 t = a[i];
  28.                 a[i] = a[j];
  29.                 a[j] = t;
  30.             }
  31.         }
  32.     }

  33.     for (i = even + 1; i < 10; i++) {
  34.         for (j = 10 - 1; j > i; j--) {
  35.             if (a[i] > a[j]) {
  36.                 t = a[i];
  37.                 a[i] = a[j];
  38.                 a[j] = t;
  39.             }
  40.         }
  41.     }

  42.     for (i = 0; i < 10; i++)
  43.     {
  44.         printf("%d\t", a[i]);
  45.     }
  46. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 21:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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