小白教程

 找回密码
 立即注册
查看: 7439|回复: 2

[已解决]从大到小排序,为啥我的结果是错的

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-30 11:34:26 | 显示全部楼层 |阅读模式
  1. #include<stdio.h>
  2. void main()
  3. {
  4. int a[7]={15,34,6,27,48,4,20},i,j,k,t;
  5. printf("排序前的数列:");
  6. for(i=0;i<7;i++)
  7. printf("%5d",a[i]);
  8. for(i=0;i<7;i++)
  9. { k=i;
  10. for(j=i+1;j<7;j++)
  11. if(a[j]>a[k]) k=j;
  12. if(k!=i)  t=a[k];a[k]=a[i];a[i]=t;}
  13. printf("\n从大到小排序后(选择法)\n");
  14. for(i=0;i<7;i++)
  15. printf("%5d",a[i]);
  16. printf("\n");
  17. }
复制代码


最佳答案
2021-5-31 10:48:21
修改如下,供对照:
  1. #include<stdio.h>
  2. void main()
  3. {
  4.     int a[7]={15,34,6,27,48,4,20},i,j,k,t;
  5.     printf("排序前的数列:");
  6.     for(i=0;i<7;i++)
  7.         printf("%5d",a[i]);
  8.     for(i=0;i<7-1;i++)
  9.     {
  10.         k=i;
  11.         for(j=i+1;j<7;j++)
  12.            if(a[j]>a[k]) k=j;
  13.         if(k!=i)
  14.         {
  15.            t   =a[k];
  16.            a[k]=a[i];
  17.            a[i]=t;
  18.         }
  19.     }
  20.     printf("\n从大到小排序后(选择法)\n");
  21.     for(i=0;i<7;i++)
  22.         printf("%5d",a[i]);
  23.     printf("\n");
  24.      
  25. }
复制代码
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-31 10:48:21 | 显示全部楼层 &
修改如下,供对照:
  1. #include<stdio.h>
  2. void main()
  3. {
  4.     int a[7]={15,34,6,27,48,4,20},i,j,k,t;
  5.     printf("排序前的数列:");
  6.     for(i=0;i<7;i++)
  7.         printf("%5d",a[i]);
  8.     for(i=0;i<7-1;i++)
  9.     {
  10.         k=i;
  11.         for(j=i+1;j<7;j++)
  12.            if(a[j]>a[k]) k=j;
  13.         if(k!=i)
  14.         {
  15.            t   =a[k];
  16.            a[k]=a[i];
  17.            a[i]=t;
  18.         }
  19.     }
  20.     printf("\n从大到小排序后(选择法)\n");
  21.     for(i=0;i<7;i++)
  22.         printf("%5d",a[i]);
  23.     printf("\n");
  24.      
  25. }
复制代码
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-1 07:34:59 | 显示全部楼层
把你的内层for循环里第二个if后交换的部分,三个语句加上花括号,那是个整体

if(k!=i)  {
t=a[k];a[k]=a[i];a[i]=t;
}
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:17 , Processed in 0.026615 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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