|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- void main()
- {
- void sort(char *name[], int n);
- void print(char *name[], int n);
- char *name[] = {"Fishc.com", "www.fishc.com", "home.fishc.com", "Fishc.com/dz"};
- int n = 4;
- sort(name, n);
- print(name, n);
- }
- void sort(char *name[], int n)
- {
- char *temp;
- int i, j, k;
- for( i=0; i < n-1; i++ )
- {
- k = i;
- for( j=i+1; j < n; j++ )
- {
- if( strcmp(name[k], name[j]) > 0 )
- {
- k = j;
- }
- if( k != i )
- {
- temp = name[i];
- name[i] = name[k];
- name[k] = temp;
- }
- }
- }
- }
- void print(char *name[], int n)
- {
- int i;
-
- for( i=0; i < n; i++ )
- {
- printf("%s\n", name[i]);
- }
- }
复制代码
当中if( k != i )是什么意思和意义
不是太理解
我把字符串改为数字 来演算该程序 结果 并不是按从小到大 输出
我修改的
- #include <stdio.h>
- #include <string.h>
- void main()
- {
- void sort(char *name[], int n);
- void print(char *name[], int n);
- char *name[] = {"2", "6", "3", "4"};
- int n = 4;
- sort(name, n);
- print(name, n);
- }
- void sort(char *name[], int n)
- {
- char *temp;
- int i, j, k;
- for( i=0; i < n-1; i++ )
- {
- k = i;
- for( j=i+1; j < n; j++ )
- {
- if( strcmp(name[k], name[j]) > 0 )
- {
- k = j;
- }
- if( k != i )
- {
- temp = name[i];
- name[i] = name[k];
- name[k] = temp;
- }
- }
- }
- }
- void print(char *name[], int n)
- {
- int i;
-
- for( i=0; i < n; i++ )
- {
- printf("%s\n", name[i]);
- }
- }
复制代码
所以请教一下 到底为什么if( k != i )
|
|