黑马程序员技术交流社区
标题:
输入字符串,并进行升序排序
[打印本页]
作者:
EchoWill
时间:
2014-4-28 00:46
标题:
输入字符串,并进行升序排序
本帖最后由 EchoWill 于 2014-4-28 19:16 编辑
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{
// 依次定义一个字符串数组(相当于字符的二维数组),以及一个字符串作置换
char a[6] [1024],b[1024];
printf("请依次输入6个字符串:\n");
// 循环输入6个字符串,依次存放到字符串数组a中
for (int i = 0; i<6; i++)
{
gets(a[i]);
}
int i ,j;
// 冒泡排序,共比较5轮
for (i = 0; i<5; i++)
{
// 第i轮共比较j-i次
for (j = 5; j>i; j--)
{
// 相邻2个比较,并按照升序排列
if (strcmp(a[j], a[j-1])<0)
{
strcpy(b, a[j]);
strcpy(a[j], a[j-1]);
strcpy(a[j-1], b);
}
}
}
// 循环输出字符串数组中的字符串
for (i=0; i<6; i++) {
puts(a[i]);
}
return 0;
}
复制代码
输入字符串后没反应,还提醒不安全。
作者:
Er01c
时间:
2014-4-28 09:23
本帖最后由 Er01c 于 2014-4-28 09:47 编辑
int main(int argc, const char * argv[])
{
// 定义一个字符串数组(相当于字符的二维数组),最后一个数组元素作为temp(a[6])
char a[7][10];
printf("依次输入6个字符串:\n");
for (int i = 0; i<6; i++) gets(a[i]);
for (int i = 0; i<5; i++){
for (int j = i + 1; j<6; j++){
if (strcmp(a[i], a[j]) > 0){
strcpy(a[6], a[i]);
strcpy(a[i], a[j]);
strcpy(a[j], a[6]);
}
}
}
for (int i = 0; i<6; i++) {
puts(a[i]); //printf("%s \n", a[i]);
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2