本文目录一览:
- 1、C语言,数据升序排列
- 2、C语言字符升序排列~
- 3、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])....................//把大于号改成小于号