您的位置:

c语言的升序排列,c语言中升序排序函数

本文目录一览:

C语言,数据升序排列

#include "stdio.h"

int main(int argc,char *argv[]){

int a[100],i,j,k,n;

printf("Input n(int 0n101)...\n");

if(scanf("%d",n)!=1 || n1 || n100){

printf("An error occurred when input n, exit...\n");

return 0;

}

printf("Please enter %d integer(s)...\n",n);

for(i=0;in;scanf("%d",a+i++));

for(i=0;in;i++){

for(k=i,j=k+1;jn;j++)

if(a[k]a[j])

k=j;

if(k-i)

j=a[k],a[k]=a[i],a[i]=j;

printf(i ? " %d" : "%d",a[i]);

}

printf("\n");

return 0;

}

运行样例:

C语言字符升序排列~

输入10个字符串,并按字母从小到大排序

#include "stdio.h"

#include "string.h"

void sort(char array[][20],int n);

main(void)

{

char str[10][20];

int i,j,k,n;

printf("input n (n=10):");

scanf("%d",n);

printf("input %d string:",n);

for(i=0;in;i++)

gets(str[i]); //输入N个字符串

sort(str,n); //对输入的字符串排序

printf("sort string:\n");

for(i=0;in;i++)

puts(str[i]);

return 0;

}

void sort(char array[][20],int n) //定义排序函数

{

char temp[20];

int i,j,k;

for(i=1;in-1;i++)

{

k=i;

for(j=i+1;jn;j++)

if(strcmp(array[k],array[j])0)

k=j;

if(k!=i)

{

strcpy(temp,array[i]); //字符串交换顺序

strcpy(array[i],array[k]);

strcpy(array[k],temp);

}

}

}

如上源码所示,其实也不难发现,就一个排序函数便可以解决;解决思想,还是交换法;在这里明白字符串数组str[0],便是第一个主的字符串,跟这个2维str[0][20]是一个意思

C语言的升序和降序

#includestdio.h

void main()

{

int a[5]={};

int i,j;

int temp=0;

for(i=0;i5;i++)

{

printf("请输入第%d个整数\n",i+1);

scanf("%d",a[i]);

}

for(i=1;i5;i++)

{

for(j=0;j5-i;j++)

{

if(a[j]a[j+1])....................//把大于号改成小于号

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

for(i=0;i5;i++)

{

printf("排序后的整数:%d\t",a[i]);

}

}

if(a[j]a[j+1])....................//把大于号改成小于号