帮忙看下我错在哪里!

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:07:56
#include<stdio.h>

main()
{
int i,j,k,t;
char a[5];
printf("Please enter five num!\n");
for(i=0;i<5;i++)

scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(k=i+1;k<5;k++)
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}

我想从大到小排列,为什么倒数第二个的值会变掉!不是想要的结果!

#include<stdio.h>

main()
{
int i,k,t;
char a[5];
printf("Please enter five num!\n");
for(i=0;i<5;i++)

scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(k=i+1;k<5;k++)
if(a[i]<a[k])
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}
改好了,可以运行的。你所定义的那个j没有必要。

我试了一下,把char a[5];改成int a【5】,就可以了

for(i=0;i<4;i++)
for(k=i+1;k<5;k++)
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;

for 是i 和 k;;下面是 i 和 j;修改。。

for(i=0;i<4;i++)
for(k=i+1;k<5;k++)
if(a[i]<a[k]){
t=a[i];
a[i]=a[k];
a[k]=t;

你那K和J是不是弄错了?J都没被赋值过。