回 帖 发 新 帖 刷新版面

主题:排序问题

题目要求是输入10个数字,按大到小 的顺序排列。
我写的代码如下。编译能通过,能输入数字。但是我输入1到10,为什么输出却是 9 8 7 6 5 4 3 2 1 10 求老鸟前辈多指问题。我脸皮厚不怕批评。

#include<stdio.h>
void main()
{int i,j,t;
 int a[10];
 printf("please input ten numbers:");
 for(i=0;i<10;i++)
 scanf("%d",&a[i]);
 printf("\n");
for(i=0;i<10;i++)
  for(j=0;j<9-i;j++)
   if(a[i]>a[i+1])
   {t=a[i];
    a[i]=a[i+1];
    a[i+1]=t;
   }

  printf("the sort numbers:");
  for(i=0;i<10;i++)
    printf("%d\t",a[i]);
}

回复列表 (共1个回复)

沙发

把循环改成j做计数器
for(i=0;i<10;i++)
  for(j=0;j<9-i;j++)
   if(a[j]>a[j+1])
   {t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
   }

我来回复

您尚未登录,请登录后再回复。点此登录或注册