黑马程序员技术交流社区
标题:
基础测试题分享 对6个字符串从小到大排列并输出结果。
[打印本页]
作者:
麻木
时间:
2015-4-23 13:23
标题:
基础测试题分享 对6个字符串从小到大排列并输出结果。
/**
*9.从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。(C语言)
*/
#include <stdio.h>
int main(int argc, const char * argv[])
{
//1.从内存中开辟6个100长的字符串空间
char string1[100];
char string2[100];
char string3[100];
char string4[100];
char string5[100];
char string6[100];
//2.新建一个字符串数组,保存各个字符串的地址
char* stringGroup[6]={string1,string2,string3,string4,string5,string6};
//3.定义一个变量保存字符串的长度
unsigned long length[6];
//4.系统提示用户连续输入6个字符串 回车确定
printf("请依次输入6个字符串,包含数字和字母,回车确定\n");
//5.循环提示用户 连续输入字符串
for(int i = 0;i < 6;i++)
{
//5.1提示用户输入第N个字符串
printf("请输入第%d个字符串\n",(i+1));
//5.2保存第n个字符串到字符串指针数组的n项
scanf("%s",stringGroup[i]);
//5.3获取相应的字符串的长度并一次保存到长度数组
length[i] = strlen(stringGroup[i]);
}
//6.新建2个变量 用作交换操作的中间变量
char *pSwap;
unsigned long swap;
//7.冒泡排序
for(int i = 0;i < 6;i++)
{
for(int j = i+1;j < 6;j++)
{
//7.1当长度数组当前元素大于后面个元素的时候
if(length[i] > length[j])
{
//7.1.1交换相应索引的长度数组的值
swap = length[i];
length[i] = length[j];
length[j] = swap;
//7.1.2交换相应索引的字符串数组的值
pSwap = stringGroup[i];
stringGroup[i] = stringGroup[j];
stringGroup[j] = pSwap;
}
}
}
//8.循环打印出字符串数组
for(int i = 0;i < 6;i++)
{
printf("%s ",stringGroup[i]);
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2