输入n个字符串(长度小于20)存入二维数组c中,编写程序对其进行排序(由小到大)并按次序输出。

用C语言 ,然后因为这题是在数组那一单元,所以代码可以不包括指针那些;想不出来怎么写qaq

假定字符串个数不超过20个,每个字符串长度小于20,开数组 char s[21][20];
最后一个元素 用于做字符串交换时的工作单元。
字符串比较 用 strcmp(), 复制用 strcpy(), 输入用 gets(), 清除输入缓冲器中的剩余字符用 fflush(stdin); 完整 程序如下。
#include <stdio.h>
int main(){
char s[21][20];
int i,j,n;
printf("input n:\n");scanf("%d",&n);
for (i=0;i<n;i++){
printf("input string %d: ",i+1); fflush(stdin);
gets(s[i]);
};
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++){
if (strcmp(s[j],s[i])<0){
strcpy(s[20],s[i]);
strcpy(s[i],s[j]);strcpy(s[j],s[20]);
};
};
for (i=0;i<n;i++)printf("%s\n",s[i]);
return 0;
}追问

啊啊啊 解决了 非常感谢♪(・ω・)ノ

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-12
python版本代码:(此代码忽略长度小于20数组,这边用列表容器)
n = int(input('请输入即将输入的字符串个数\n'))
str_list = []
for i in range(n):
str_list.append(input('请输入第%d字符串\n'))
str_new = []
print("排序前")
print(str_list)
for i in range(n-1):
for j in range(i+1,n):
if(str_list[j] < str_list[i]):
temp_str = str_list[i]
str_list[i] = str_list[j]
str_list[j] = temp_str
print("排序后")
print(str_list)
相似回答