936241151 发表于 2020-10-24 14:01:58

帮帮小白吧,求救

#include <stdio.h>
#define N 10
int main()
{
        int a;
        int i,j,temp;
        for(i=0;i<N;i++)
        scanf("%d",&a);
        printf("\n");
        for(i=0;i<N-1;i++)
        for(j=0;i<N-i-1;j++)
        if(a>a)
        {
                temp=a;
                a=a;
                a=temp;
        }
        for(i=0;i<N;i++)
        printf("%5d",a);
        printf("\n");
        return 0;
}
输入十个数怎么不是按大小排列的呀,排列出来还是我输入的顺序

猪猪虾 发表于 2020-10-24 14:05:58

#include <stdio.h>
#include <string.h>
//*******************排序************************
int main()
{
   int sort(int array[],int n);
   
   int a,i,result;
   printf("enter the array:\n") ;
   for (i = 0;i<10;i++)
   {
                   scanf("%d",&a);
   }
   sort(a,10);
   printf("the sorted array:\n") ;
   for (i = 0;i<10;i++)
   {
                   printf("%d",a);
                   printf("\n");
   }
   return 0;
}


int sort(int array[],int n)
{
        int i ,j,t;
        for (i = 0;i<n-1;i++)
        {
                for (j = i + 1;j<n;j++)
                {
                        if(array < array)
                        {
                                t = array;
                                array = array;
                                array = t;
                        }
                }
        }
        return array;
}

猪猪虾 发表于 2020-10-24 14:11:33

再给你一个版本,按照你的修改的

#include <stdio.h>
#include <string.h>
#include <math.h>


#define N 10
int main()
{
      int a;
      int i,j,temp;
      for(i=0;i<N;i++)
      {
                  printf ("enter number:");
              scanf("%d",&a);
            printf("\n");
                }
      
      for(i=0;i<N-1;i++)
      {
              for(j=i+1;j<N;j++)
              {
                      if(a>a)
                        {
                      temp=a;
                      a=a;
                      a=temp;
                        }
                        }                
                }
             
      for(i=0;i<N;i++)
      {
              printf("%5d",a);
            printf("\n");       
                }
      
      return 0;
}

936241151 发表于 2020-10-24 14:21:42

猪猪虾 发表于 2020-10-24 14:11
再给你一个版本,按照你的修改的

但我那个输入十个数怎么排列的数序还是我输入的顺序 ,并没有按升降序排列

猪猪虾 发表于 2020-10-24 14:42:35

936241151 发表于 2020-10-24 14:21
但我那个输入十个数怎么排列的数序还是我输入的顺序 ,并没有按升降序排列

你对比我的程序和你的程序,你的问题在i,j循环时候范围不一样,还有就是赋值的时候

乐乐学编程 发表于 2020-10-24 15:51:13

本帖最后由 乐乐学编程 于 2020-10-25 08:39 编辑

你的程序有一个错误,看注释

#include <stdio.h>
#define N 10
int main()
{
      int a;
      int i,j,temp;
      for(i = 0;i < N;i++)
        {
            scanf("%d",&a);
        }
      printf("\n");

      for(i = 0;i < N - 1;i++)
        {
            for(j = 0;j < N - i - 1;j++)   // j的变量错写i了
           {
                if(a > a)
                {
                  temp = a;
                  a = a;
                  a = temp;
                }
          }
      }
      for(i = 0;i < N;i++)
      {
            printf("%5d",a);
      }
      printf("\n");
      return 0;
}
页: [1]
查看完整版本: 帮帮小白吧,求救