作者在 2011-03-22 23:43:10 发布以下内容
数字排序
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
给你N个数字,请用冒泡法对这N个数字进行降序排序,并输出结果
输入:
第一行为N,N<=20 ;
第二行为N个数字,这N个数字用一个空格隔开
所有数均可用int型表示
输出:
把这些数字用降序输出,每行输出一个,最后输出一个回车
输入样例:
8
23 12 36 98 54 76 21 58
输出样例:
98
76
58
54
36
23
21
12
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
int a,b,temp,j;
int c[25];
int *p;
p=c;
scanf("%d",&a);
for(b=0;b<a;b++)
{
scanf("%d",&c[b]);
}
for(b=0;b<a-1;b++)
{
p=&c[b];//p每次都要指向头
for(j=b;j<a;j++)
{
if(c[j]>*p)
{
p=&c[j];
}
}
temp=c[b];
c[b]=*p;
*p=temp;
}
for(b=0;b<a;b++)
{
printf("%d\n",c[b]);
}
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
int a,b,temp,j;
int c[25];
int *p;
p=c;
scanf("%d",&a);
for(b=0;b<a;b++)
{
scanf("%d",&c[b]);
}
for(b=0;b<a-1;b++)
{
p=&c[b];//p每次都要指向头
for(j=b;j<a;j++)
{
if(c[j]>*p)
{
p=&c[j];
}
}
temp=c[b];
c[b]=*p;
*p=temp;
}
for(b=0;b<a;b++)
{
printf("%d\n",c[b]);
}
return 0;
}