贪吃鱼不吃吃驴 发表于 2018-11-19 22:01:08

冒泡法,无法实现1


#include <stdio.h>
void main()
{
        int i,j,max,a;
        printf("input ten numbers\n");
        for(i=0;i < 10;i ++)
        {
                scanf("%d",&a);//动态赋值
        }
        printf("\n");
        for(i=0;i < 9;i++)//外层循环10个数9次
        {
                for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
                {
                        if(a > a)
                        {
                                max = a;
                                a = a;
                                a = max;
                        }
                }
        //这个括号包括下面循环就可以看到9步过程
        printf("the sorted numbers:\n");//输出
        for(i=0;i < 10;i++)
        {
                printf("%d",a);
        }
        }
        printf("\n");

}

灰色的天空 发表于 2018-11-19 22:36:33

本帖最后由 灰色的天空 于 2018-11-19 22:56 编辑

兄弟,你j不用的吗???另外你在打印的时候改变了i,所以只能打印一次

仰望天上的光 发表于 2018-11-19 22:52:44

for(i=0;i < 9;i++)//外层循环10个数9次
      {
                for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
                {
                        if(a > a)
                        {
                              max = a;
                              a = a;
                              a = max;
                        }
                }
内层循环,当j变化时,循环体不包含j,即内层循环始终在执行同一段一点都没有变化的代码,相当于内层循环只执行了一次。
此外,i在两个循环中使用,冲突了
#include <stdio.h>
void main()
{
        int i, j, max, ii,a = {3,10,2,1,4,5,6,7,8,9};
        printf("input ten numbers\n");
        for (i = 0; i < 10; i++)
        {
                //scanf("%d", &a);//动态赋值
        }
        printf("\n");
        for (i = 0; i < 9; i++)//外层循环10个数9次
        {
                for (j = 0; j < 9 - i; j++)//内层循环,每次沉一个数
                {
                        if (a > a)
                        {
                                max = a;
                                a = a;
                                a = max;
                        }
                }

                //这个括号包括下面循环就可以看到9步过程
                printf("the sorted numbers:\n");//输出
                for (ii = 0; ii < 10; ii++)
                {
                        printf("%d", a);
                }
                printf("\n");
        }

}

灰色的天空 发表于 2018-11-19 22:55:09

#include <stdio.h>
void main()
{
      int i,j,c,max,a; //给你加了一个c
      printf("input ten numbers\n");
      for(i=0;i < 10;i ++)
      {
                scanf("%d",&a);//动态赋值
      }
      printf("\n");
      for(i=0;i < 9;i++)//外层循环10个数9次
      {
                for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
                {
                        if(a > a)
                        {
                              max = a;
                              a = a;
                              a = max;
                        }
                }
      //这个括号包括下面循环就可以看到9步过程
      printf("the sorted numbers:\n");//输出
      
      for( c=0;c < 10;c++)
      {
                printf("%d",a);
      }
         printf("\n");
      }
      
      
      

}
页: [1]
查看完整版本: 冒泡法,无法实现1