本帖最后由 rocki 于 2014-7-15 10:16 编辑
我这个程序排序的时候一会对一会不对。大家看看哪里出得问题呢
- /*9、 从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。(C语言)*/
- #include <stdio.h>
- #include <string.h>
- int i;//用于控制循环
- char a[6][100];//存贮6组字符串。每组长度100
- int main(int argc, const char * argv[])
- {
- //声明排序函数
- void sort();
- //接收用户输入字符串
- for (i=0; i<6; i++)
- {
- printf("请输入第%d个字符串\n",i+1);
- scanf("%s",a[i]);
- }
- //调用排序函数
- sort();
- //打印排序后字符串
- printf("排序后:\n");
- for (i=0; i<6; i++)
- {
- printf("%s\n",a[i]);
- }
-
- return 0;
- }
- void sort()
- {
- char s[100];//交换用临时变量
- int j;//控制循环
-
- //排序
- for (j=0; j<6;j++)
- {
- for(i=0;i<6-j;i++)
- {
-
- if (strcmp(a[i], a[i+1])< 0)//如果相邻两个字符串比较返回值小于0则执行
- //下面交换
- {
-
- strcpy(s, a[i]);
- strcpy(a[i], a[i+1]);
- strcpy(a[i+1], s);
- }
- }
- }
-
- }
复制代码 |