是一个C语言编程题:编程对N个整数进行从大到小顺序排列

试题,请高手赐教,急!

VC6.0++编译,这是选择法。
排序问题有冒泡法和排序法俩种方法,都应掌握。
#include<stdio.h>
#define N 5
void main()
{
int i,j,k,a[N],t;
printf("请输入%d个整数:",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{ k=i;
for(j=i+1;j<N;j++)
if(a[k]<a[j])
k=j;
if(a[i]!=a[k])
{t=a[i];a[i]=a[k];a[k]=t;}
}
for(i=0;i<N;i++)
printf("%3d",a[i]);
putchar('\n');
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-16
VC6.0++编译,这是选择法。
排序问题有冒泡法和排序法俩种方法,都应掌握。
#include<stdio.h>
#define
N
5
void
main()
{
int
i,j,k,a[N],t;
printf("请输入%d个整数:",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(a[k]<a[j])
k=j;
if(a[i]!=a[k])
{t=a[i];a[i]=a[k];a[k]=t;}
}
for(i=0;i<N;i++)
printf("%3d",a[i]);
putchar('\n');
}
第2个回答  2010-01-17
main()
{
int a[10]={1,3,45,2,5,2,6,12,4,7};//这个是一个数组,也可以自己输入
int i,j;
print(a);//按照数组顺序打印
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)//用两个for,冒泡
if(a[i]<a[j]) swap(&a[i],&a[j]);//如果前面的比后面小,交换
print(a);
}
print(int *a)
{
int *p;
for(p=a;p<a+10;p++)
printf("%d ",*p);
printf("\n");
}
swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
第3个回答  2010-01-17
可以用最简单的冒泡排序,所有书上都有的,或者你去搜一下冒泡排序
第4个回答  2010-01-17
随便找个数据结构书讲排序那块都有源代码

c语言数组编程,输入n个整数,将这n个数按绝对值由大到小排序输出
int a[50],n,i,j,t; printf("input n:"); scanf("%d",&n); printf("input %d numbers:\\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(abs(a[j])<abs(a[j+1])) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} ...

用C语言编写这样一个程序:任意的写出n个整数,对它们进行比较大小并把它...
\/\/定义排序数据的个数 int n;printf("请输入你要进行排序的数据个数\\n");scanf("%d",&n);\/\/录入要排列的数据 int * a;a = (int *)malloc(sizeof(int)*(n+1));printf("请输入你要排序的数据\\n");for(int i =0; i < n; i++){ scanf("%d", &a[i]);} printf("原始的...

设计C语言程序,用一维数组输入N个整数,将这n个整数按从大到小排列
算法要求:用起泡法对10个整数按升序排序。算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。算法...

C语言题,在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小...
for(j=0;j<9;j++) \/*外循环控制排序趟数,n个数排n-1趟*\/ for(i=0;i<9-j;i++) \/*内循环每趟比较的次数,第j趟比较n-j次*\/ if(a[i]>a[i+1])\/*相邻元素比较,逆序则交换*\/ { t=a[i];a[i]=a[i+1];a[i+1]=t;}\/*输出排序结果*\/ printf("The sorted numbe...

用C语言编写这样一个程序:任意的写出n个整数,对它们进行比较大小并把它...
include "stdio.h"void main(){ int a,b,c,t;printf("请输入四个整数:");scanf("%d%d%d",&a,&b,&c);if(a>b){ t=a;a=b;b=t;} if(a>c){ t=a;a=c;c=t;} if(b>c){ t=b;b=c;c=t;} printf("%d>%d>%d",a,b,c);} 我做的是三个数的,n个数的可以类推一...

c语言数组编程,输入n个整数,将这n个数按绝对值由大到小排序输出
intn,i,j,t;inta[11];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){ for(j=0;j<n-i;j++){ if(a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;} } } for...

C语言中设计一个函数,对任意n个整数排序(从大到小),并在主函数中输入...
include<stdio.h> int Strchr(char s[],char ch){ int l,i;int j=0;l=strlen(s);for(i=0;i<=l-1;i++){ if(s[i]==ch) break;} return i;} int main(){ char s[100],ch;int t;gets(s);ch=getchar();t=Strchr(s,ch);printf("%d\\n",t);...

C语言编程:将输入的N个整数采用冒泡排序按照从小到大的顺序排列并且输出...
void BubbleSort(int L[]) { \/\/ 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...

c语言如何输入一个正整数N,再输入N个整数,按从小到大的顺序输出?
从键盘输入一个整数N(N>=0),然后再输入N个整数, 按从小到大的顺序输出。 正在学C语言程式设计,求教 #include<stdio.h> int main(void) { int n,i,j,t; printf("please enter anumber:\\n"); scanf("%d",&n); int a[n]; printf("please enter %d number:\\n",n)...

用C语言怎样将n个数如何按大小顺序输出
int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;} int main(void){ int i,n,*data;printf("n=");scanf("%d",&n);\/*输入n的大小*\/ data=(int *)malloc(sizeof(int)*n);for (i=0;i<n;++i) scanf("%d",data+i);\/*输入n个整数*\/ qsort(data,...

相似回答