zyxmm 发表于 2022-10-19 16:41:00

冒泡法排序

#include<stdio.h>
int main()
{
        int j,i,t;
        int a ;
        printf("input:\n");
       
        for(i=0;i<10;i++)
        {
                scanf("%d",&a);
        }
        for(j=0;j<9;j++)
        {
                for(i=0;i<9-j;i++)
                {
                        if(a>a)
                        a=t;
                        a=a;
                        a=t;
                }
        }
        for(i=0;i<10;i++)
        {
                printf("%2d",a);
        }
        return 0;
}

哪里错了请指教

jhq999 发表于 2022-10-19 16:47:56

本帖最后由 jhq999 于 2022-10-19 16:49 编辑

if(a>a)
        {
                t=a;
                a=a;
                a=t;
        }

jackz007 发表于 2022-10-19 16:50:37

      for(j = 0 ; j < 9 ; j ++)
      {
                for(i = 0 ; i < 9 - j ; i ++)
                {
                        if(a > a)
                        {
                              t = a      ;
                              a = a ;
                              a = t      ;
                        }
                }
      }

tommyyu 发表于 2022-10-19 16:50:40

本帖最后由 tommyyu 于 2022-10-19 16:56 编辑

#include<stdio.h>
int main()
{
      int j,i,t;
      int a ;
      printf("input:\n");
      
      for(i=0;i<10;i++)
      {
                scanf("%d",&a);
      }
      for(j=0;j<9;j++)
      {
                for(i=0;i<9-j;i++)
                {
                        if(a>a)
                        t = a;   //这行不对
                        a=a;
                        a=t;
                }
      }
      for(i=0;i<10;i++)
      {
                printf("%2d",a);
      }
      return 0;
}

yunling 发表于 2022-10-19 16:59:35

第一个错误是你的if判断没写括号
第二个错误是a=t 你这样是 给a赋值 不是把它的值给t 改成 t=a就好了
望采纳{:10_256:}

zyxmm 发表于 2022-10-19 17:11:49

jhq999 发表于 2022-10-19 16:47


改正以后输入两位数还是不对

zyxmm 发表于 2022-10-19 17:14:22

yunling 发表于 2022-10-19 16:59
第一个错误是你的if判断没写括号
第二个错误是a=t 你这样是 给a赋值 不是把它的值给t 改成 t=a就好了
望 ...

这样改就适用两位数了

jhq999 发表于 2022-10-19 18:37:51

zyxmm 发表于 2022-10-19 17:11
改正以后输入两位数还是不对

没错啊?

howzyao 发表于 2022-10-21 23:07:28

jhq999 发表于 2022-10-19 18:37
没错啊?

双for的内循环,if不写大括号,就只执行if的下一句,剩下的交换的2句赋值语句,就都不按你的设想执行了,而是执行了下一次循环。就是这里错了,还有,内循环,的条件的右边,为什么要-j

jhq999 发表于 2022-10-22 07:14:58

howzyao 发表于 2022-10-21 23:07
双for的内循环,if不写大括号,就只执行if的下一句,剩下的交换的2句赋值语句,就都不按你的设想执行了 ...

你仔细看看有没有大括号,你到底学没学过冒泡?这个每一轮后,最大值都是最后一个,你还用比较吗?

zyxmm 发表于 2022-10-25 17:54:09

jhq999 发表于 2022-10-19 18:37
没错啊?

你没错,我没加大括号
页: [1]
查看完整版本: 冒泡法排序