这个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
这个逻辑的正确代码应该是什么。
答案 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;
}