按升序排序数字

时间:2017-02-17 17:20:02

标签: c arrays

我已编写程序来输入数字并按C中的升序打印。我试过,但它无法正常工作。谁能告诉我如何以正确的方式做到这一点?

我尝试过使用排序但是它没有以正确的方式工作;怎么做?

代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int highest,temp=0; //decleartion
    int a[5];
    int i;
    for(i=0;i<5;i++)
    {
        scanf("%d",&a[i]); //taking input
    }
    highest=a[0];
    for(i=1;i<5;i++)
    {
        if(a[i]<a[0])
        {
            temp=a[0];
            a[0]=a[i];
            a[i]=temp; //comparing
        }
    }
    for(i=0;i<5;i++)
    {
        printf("%d\n",a[i]); //printing
    }
    return 0;
}

2 个答案:

答案 0 :(得分:1)

您的代码仅用于比较前两个元素。

试试这个 -

for (i = 0; i < n; ++i)
{
    for (j = i + 1; j < n; ++j)
    {
        if (number[i] > number[j])
        {
            temp =  number[i];
            number[i] = number[j];
            number[j] = temp;
          }
      }
  }

答案 1 :(得分:0)

你也可以试试这个 -

for (i = 0; i < n; ++i)
{
    for (j = i + 1; j < n; ++j)
    {
        if (number[i] > number[j])
        {
            number[i] = number[i] + number[j];
            number[j] = number[i] - number[j];
            number[i] = number[i] - number[j];
        }
    }
}