请写下注释 新手 理解不是很好 而且可能有些东西认不到,老师也不讲...希望讲解
/*选择排序法:从小到大排列10个数并输出*/
#include<stdio.h>
#define N 10 //可修改输入个数
void main()
{
int i,a[N],t,j;
for(i=0;i<N;i++) scanf("%d",&a[i]); //输入
for(j=1;j<N;j++) //N次比较
for(i=0;i<j;i++) //每趟中比j次
if(a[i]>a[j]) //与a[i]后面的元素进行比较
{
t=a[i];a[i]=a[j];a[j]=t;
}
printf("排序后:\n");
for(i=0;i<N;i++) printf("%d ",a[i]);
printf("\n");
}
#include<stdio.h>
#define N 10 //可修改输入个数
void main()
{
int i,a[N],t,j;
for(i=0;i<N;i++) scanf("%d",&a[i]); //输入
for(j=1;j<N;j++) //N次比较
for(i=0;i<j;i++) //每趟中比j次
if(a[i]>a[j]) //与a[i]后面的元素进行比较
{
t=a[i];a[i]=a[j];a[j]=t;
}
printf("排序后:\n");
for(i=0;i<N;i++) printf("%d ",a[i]);
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-11-10
首先定义一个可以放十个数的一位数组,
定义三个变量i,j,t。
for后跟循环条件。这个是双循环,进行比较
最后将这十个数安排好的顺序输出,献丑了。
定义三个变量i,j,t。
for后跟循环条件。这个是双循环,进行比较
最后将这十个数安排好的顺序输出,献丑了。
第2个回答 2013-11-10
//选择排序法
int a[10]={5,65,84,6,3,78,47,89,9,1};
int i,j,t;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}本回答被提问者和网友采纳
int a[10]={5,65,84,6,3,78,47,89,9,1};
int i,j,t;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}本回答被提问者和网友采纳
第3个回答 2013-11-10
排序的算法非常多啊,建议你找一个数据结构与算法的书看看吧,都是基本知识