鱼C论坛

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

这段代码是输入十个数,然后从小到大输出,但是不知道为什么结果总是不对

[复制链接]
发表于 2022-4-16 10:11:51 | 显示全部楼层 |阅读模式

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

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

x
话不多说上代码

  1. #include <stdio.h>
  2. void main()
  3. {
  4.         int i, j, a[11], t;
  5.         printf("please input ten numbers!\n");
  6.         for(i = 0; i<=9; i++)
  7.         {
  8.                 scanf("%d",&a[i]);
  9.         }
  10.         for(j = 0; j<=9;j++)
  11.         {
  12.                 if(j > j+1)
  13.                 {
  14.                         t = a[j];
  15.                         a[j] = a[j +1] ;
  16.                         a[j + 1] = t;
  17.                 }
  18.         }
  19.         for (i = 0; i<=9; i++ )
  20.         {  
  21.                 printf("%3d", a[i]);
  22.         }
  23. }
复制代码

不知道为什么结果总是不对,结果就是输入的数据,求大神帮忙看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-16 10:47:16 | 显示全部楼层
OK,问题已经解决!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 10:49:32 | 显示全部楼层
光一个if是不够的


  1. #include <stdio.h>
  2. #define LEN 10
  3. void main()
  4. {
  5.     int i, j, a[LEN], t;

  6.     printf("please input ten numbers!\n");
  7.     for(i = 0; i<LEN; i++)
  8.     {
  9.         scanf("%d", &a[i]);
  10.     }

  11.     for(i = 0; i<LEN; i++)
  12.     {
  13.         for(j=i+1; j<LEN; j++)
  14.         {
  15.             if(a[i] > a[j])
  16.             {
  17.                 t = a[i];
  18.                 a[i] = a[j] ;
  19.                 a[j] = t;
  20.             }
  21.         }
  22.     }

  23.     for (i = 0; i<LEN; i++ )
  24.     {
  25.         printf("%3d", a[i]);
  26.     }
  27. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-16 10:56:36 From FishC Mobile | 显示全部楼层
  1. #include <stdio.h>

  2. int main(){
  3.         int arr[10];
  4.         printf("please input ten numbers!\n");
  5.         for(int i = 0; i < 10; i++){
  6.                 scanf("%d", &arr[i]);
  7.         }
  8.        
  9.         for(int i = 0; i < 9; i++){
  10.                 for(int j = i + 1; j < 10; j++){
  11.                         if(arr[i] > arr[j]){
  12.                                 arr[i] -= arr[j];
  13.                                 arr[j] += arr[i];
  14.                                 arr[i] = arr[j] - arr[i];
  15.                         }
  16.                 }
  17.         }
  18.         for(int i = 0; i < 10; ++i){
  19.                 printf("%d ", arr[i]);
  20.         }
  21.         return 0;
  22. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 14:59:46 | 显示全部楼层

  1. #include <stdio.h>
  2. void main()
  3. {
  4.         int i, j, a[11], t;
  5.         printf("please input ten numbers!\n");
  6.         for(i = 0; i<=9; i++)
  7.         {
  8.                 scanf("%d",&a[i]);
  9.                 for(j=i;j>=1;j--)
  10.                 {
  11.                         if(a[j]<a[j-1])
  12.                         {
  13.                                 t=a[j-1],a[j-1]=a[j],a[j]=t;
  14.                         }
  15.                 }
  16.         }
  17.          for(i = 0; i<=9; i++)printf("%d ",a[i]);
  18. }
复制代码
  1. please input ten numbers!
  2. 1 3 2 5 4 9 6 7 8 0
  3. 0 1 2 3 4 5 6 7 8 9
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 15:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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