练习03-18-04
将若干字符串按照字母顺序(由小到大输出)
排序之前
"Follow me","BASIC","Great Wall","FORTRAN","Computer design"
排序以后:
BASIC
Computer design
FORTRAN
Follow me
Great Wall
--------------------------------
Process exited after 0.05486 seconds with return value 0
请按任意键继续. . .
代码一:
#include<stdio.h>
#include<string.h>
int main()
{
char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
int n=5;
void string_sort(char **pointer,int n);
void string_print(char **pointer,int n);
string_sort(name,n);
string_print(name,n);
return 0;
}
void string_sort(char **pointer, int n)
{
int i,j,k;
char *temp;
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(strcmp(*(pointer+k),*(pointer+j))>0){
k=j;
}
}
if(k!=i){
temp=*(pointer+i);
*(pointer+i)=*(pointer+k);
*(pointer+k)=temp;
}
}
}
void string_print(char **pointer,int n)
{
int i;
for(i=0;i<n;++i){
printf("%s\n",*(pointer+i));
}
}
代码二;
#include<stdio.h>
#include<string.h>
int main()
{
void string_sort(char *pointer[],int n);
void string_print(char *pointer[],int n);
char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
int n=5;
string_sort(name,n);
string_print(name,n);
return 0;
}
void string_sort(char *pointer[],int n)
{
int i,j,k;
char *temp;
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(strcmp(pointer[k],pointer[j])>0){
k=j;
}
}
if(k!=i){
temp=pointer[i];
pointer[i]=pointer[k];
pointer[k]=temp;
}
}
}
void string_print(char *pointer[],int n)
{
int i;
for(i=0;i<n;++i){
printf("%s\n",pointer[i]);
}
}