c语言好的帮个忙,谢谢
请编写一个C语言程序,将若干学生编号按字母顺序(由小到大)输出。程序的功能要求如下:1)从键盘输入5个学生编号“BJS1001”,“BJS2001”,“BJS1011”,...
请编写一个C语言程序,将若干学生编号按字母顺序(由小到大)输出。
程序的功能要求如下:
1)从键盘输入5个学生编号“BJS1001”,“BJS2001”,“BJS1011”, “SHS2001”和“SHS1001”。
2)对这5个学生编号进行排序。
3)将排序后的学生编号输出到屏幕上。
算法说明
比较学生编号中的字符大小,可以使用冒泡排序法或插入排序法来实现。
注意事项
A、请注意在代码中添加必要的注释;
B、请注意代码的书写、命名符合规范。
推荐实现步骤
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) 使用冒泡排序法或插入排序法。
3、编写Print()子函数
要求有2个参数:
同Sort() 子函数。
功能:
利用循环逐一输出每个学生编号的值。
那位师傅帮个忙,谢谢。这个我有点不太会。最好源代码+注释。
由输入用户限制输入学生编号的个数。谢谢 展开
程序的功能要求如下:
1)从键盘输入5个学生编号“BJS1001”,“BJS2001”,“BJS1011”, “SHS2001”和“SHS1001”。
2)对这5个学生编号进行排序。
3)将排序后的学生编号输出到屏幕上。
算法说明
比较学生编号中的字符大小,可以使用冒泡排序法或插入排序法来实现。
注意事项
A、请注意在代码中添加必要的注释;
B、请注意代码的书写、命名符合规范。
推荐实现步骤
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) 使用冒泡排序法或插入排序法。
3、编写Print()子函数
要求有2个参数:
同Sort() 子函数。
功能:
利用循环逐一输出每个学生编号的值。
那位师傅帮个忙,谢谢。这个我有点不太会。最好源代码+注释。
由输入用户限制输入学生编号的个数。谢谢 展开
4个回答
展开全部
各门,我凑合写了一个
你写的要求上下有点矛盾,行不行凑合吧
我用笔记本写的,没编译,不行你凑合改改用
int Accept(char *str[]){
int i=0;
while(str!='\\')
{
while(str!='\n')
{
scanf("%c",str[i]);
}
i++;
return i;
}
void Sort(){
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(str[j]>str[j+1])
str[j]^=str[j+1]^=str[j]^=str[j+1];
}
Print(){
int i;
for(i=0;i<5;i++)
printf("%s",*str[i]);
}
main(){
int m;
char *str[5];
m=(**char)malloc(100);
m=char *str[5];
Accept(&str[],5);
Sort();
Print();
}
你写的要求上下有点矛盾,行不行凑合吧
我用笔记本写的,没编译,不行你凑合改改用
int Accept(char *str[]){
int i=0;
while(str!='\\')
{
while(str!='\n')
{
scanf("%c",str[i]);
}
i++;
return i;
}
void Sort(){
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(str[j]>str[j+1])
str[j]^=str[j+1]^=str[j]^=str[j+1];
}
Print(){
int i;
for(i=0;i<5;i++)
printf("%s",*str[i]);
}
main(){
int m;
char *str[5];
m=(**char)malloc(100);
m=char *str[5];
Accept(&str[],5);
Sort();
Print();
}
展开全部
原则 20分一个。太少,放弃
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最近这样的问题很多啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询