用于按顺序排列数组成员的程序

时间:2014-12-15 15:08:56

标签: c

这个c语言代码有什么问题? 它应该按照升序排列数组成员。

代码

#include<stdio.h>
#include<conio.h>
void main()
{
    int a[5];
    int x,temp,i=0,j=0;
    clrscr();

    for(i=0;i<=4;i++)/*To Enter the data into array*/
    {
        printf("Enter the %d number: ",i);
        scanf("%d",a[i]);
    }

    x=a[0];

    for(i=0;i<=4;i++)
    {
        for(j=i;j<=4;j++)
        {
            if(x <= a[j])
            {
                temp=a[j];
                a[j]=x;
                x=temp;
                printf("%d %d %d\n",temp,a[j],x);

                /*To check the current value of temp, a[j] and x.*/

                getch(); 
            }
        }
    }

    for(i=0;i<=4;i++)
    {
        printf("%d\n",a[i]);
    }
    getch();
}

输入

1,2,3,4,5表示阵列的各个元素。

结果

我的输出为:

64
5091 64 5091
12803 5091 12803
64
64
-29346
5091
-28724

这个逻辑的正确代码应该是什么。

2 个答案:

答案 0 :(得分:4)

scanf("%d",a[i]);应为scanf("%d", &a[i]);

答案 1 :(得分:0)

除了willys更改之外,您的逻辑只是将所有元素内容与[0]进行比较,您需要考虑数组中的所有元素,因此如果条件和内容如下所示会改变您:

if(a[i] >=  a[j])
{
    temp=a[j];
    a[j]=a[i];
    a[i]=temp;
}