在算法书上看到字符串排序问题,自己就觉得没什么,随便写写吧。但是调了半天了都,就是有错误,而且还根据输入的字符串不一样,报错的地方不一样。郁闷死了。
题目要求:从键盘输入5个字符串,然后将这个5个字符串从小到大排序并输出。
我的代码:- #import <Foundation/Foundation.h>
- #import <stdio.h>
- #import <string.h>
- int main()
- {
- // 1.定义一个可以存放5个字符串的字符串数组
- char str[5][10];
-
- // 2.提示用户从键盘输入字符串
- for(int i = 0;i < 5;i++){
- printf("请您输入第%d个字符串:",i+1);
- scanf("%s",str[i]);
- }
- // 3.定义临时变量作为交换的中间变量
- char * temp;
- for(int i = 0; i < 5;i++){
- for(int j = i + 1;j < 5;j++){
- // 4.前后两个字符串做比较
- if( strcmp(str[i],str[j]) > 0){
- // 5.若后面字符串比前面这个小,则交换
- strcpy(temp,str[i]);
- strcpy(str[i],str[j]);
- strcpy(str[j], temp);
- }
- }
-
- }
- // 6.输出排序后的字符串
- for(int i = 0;i < 5;i++){
- printf("排序后的字符串:%s ",str[i]);
- }
-
- return 0;
- }
复制代码 |