//从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。
#include <stdio.h> #include <string.h>
int main() { //定义六个内存为50的char型变量 char ch1[50]; char ch2[50]; char ch3[50]; char ch4[50]; char ch5[50]; char ch6[50]; char *ch[6]={ch1,ch2,ch3,ch4,ch5,ch6};//定义字符串数组ch[] printf("请依次输入6个字符串:(仅仅包含英文字母和数字),回车确认\n");//提示用户输入字符串
for (int m=0; m<6; m++) { printf("请输入第%d个字符串\n",m+1);
scanf("%s",ch[m]);
}
for (int i=0; i<5; i++) {//采用冒泡法 大数下沉法排序 for (int j=0; j<5-i; j++) { if (strcmp(ch[j],ch[j+1])>0) { char *temp = ch[j]; //请问大牛为什么这里要建立*temp,而不是temp,ch[]是存储的字符串,不是地址啊 ch[j]=ch[j+1]; ch[j+1]=temp; } } }
for (int i=0; i<6; i++) {
printf("%s ",ch);//按从小到大重新输出新的字符串数组 } printf("\n"); return 0;
}
|