本文目錄一覽:
- 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])………………..//把大於號改成小於號
原創文章,作者:HFEK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144575.html