| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1391 人关注过本帖
标题:[求助]排序题
只看楼主 加入收藏
rejoice007
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-4-21
收藏
 问题点数:0 回复次数:11 
[求助]排序题

一、 语言和环境
A、 实现语言
C、环境要求
B、环境要求
Turbo C 2.0 或Turbo C 3.0
二、要求
编写一个C语言程序,将若干字符串字母顺序(由小到大)输出。
程序的功能要求如下:
1)从键盘出入5个字符串。例如”Welcome”,”Aptech”,”Student”,”Teacher”,和”Bye”。
2)对这5个字符串进行排序。
3)将排序后的字符串输出到屏幕上。
三、算法说明
比较字符串中的字符大小,可以用如下冒泡排序法或插入排序法开实现。
四、推荐实现步骤
1、编写main函数
1)定义一个用于存放字符串的数组:char*str[5];
2)调用Accept()接受字符串个数,而后根据指定的字符串个数,利用循环控制将键盘出入的字符串存放到数组中(每次1个字符串,循环接受)。
3)调用排序子函数 Sort(),采用冒泡排序法或插入排序法对这5个字符串进行从小到大的排序。
` 4)以Print()子函数来实现排序后的字符串的输出。
2、编写Accept()子函数
要求有1个参数:
保存键盘出入的字符串数组。
返回值:
整型数,返回接受字符串的个数。
功能:
1)接受欲输入的字符串个数。
2)循环开始接受工作。
(1)利用malloc()申请内存空间给对应的字符串数组。
(2)显示提示信息。
(3)接受键盘的输入。
3、编写Sort()子函数
要求有2个参数:
第1个参数是:参加排序的字符串数组,char*name[]。
第2个参数是:字符串数组中字符串的个数,int n 。
1)利用循环对多个字符串进行大小的比较。
2)比较字符串大小时要条用字符串比较的关系函数:
Strcmp(source,target);
3)使用冒泡排序法或插入排序法。
4、编写Print()子函数
要求有2个子函数:
同Sort()子函数。
功能:
利用循环逐一输出已排序的每个字符串的值。
5、程序运行参考界面图如下所示:

Please input the number of string:
5
Please input 1 string:
Welcome
Please input 2 string:
Aptech
Please input 3 string:
Teacher
Please input 4 string:
Student
Please input 5 string:
Bye

The result is :
Aptech
Bye
Student
Teacher
Welcome

搜索更多相关主题的帖子: 键盘 屏幕 Welcome 字符串 C语言 
2006-07-18 09:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
char str[N][80];
用if(strcmp(str[i],str[i+1]))代替if(a[i]>a[i+1])就可以了.
我觉得楼主应该自己试.

倚天照海花无数,流水高山心自知。
2006-07-18 20:23
rejoice007
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-4-21
收藏
得分:0 
大哥帮我一下吧.谢谢喽.
2006-07-20 19:34
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>
#include<string.h>
void sort(char *str[],int n)
{
int i,j;
char *temp;

for(i=0;i<n;i++)
{

for(j=0;j<n-1;j++)
{
if(strcmp(str[j],str[j+1])<0)
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}

}
}
}
main()
{
char *str[10];
int i,n;

printf("Please input the number of string:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",str[i]);
}
sort(str,n);
printf("The result is:\n");
for(i=0;i<n;i++)
{
printf("%s\n",str[i]);
}
getch();
}


倚天照海花无数,流水高山心自知。
2006-07-22 15:07
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

你不要老是认为自己不会做嘛.
书上都有样例程序,楼主就是不看书.


倚天照海花无数,流水高山心自知。
2006-07-22 15:09
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
貌似会非法操作

2006-07-22 22:32
whntbear
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-7-19
收藏
得分:0 
      这位兄弟老是出个题,然后要别人写出来给他.建议管理员封杀像他这样的帖子,
2006-07-22 23:26
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用nick_annie在2006-7-22 22:32:27的发言:
貌似会非法操作

怎么非法操作.

倚天照海花无数,流水高山心自知。
2006-07-23 09:28
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 
你的排序好像错了样哈

2006-07-23 12:52
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 

是否在输入字符串的时候为它分配了内存空间了呢?


2006-07-23 14:59
快速回复:[求助]排序题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035086 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved