从键盘输入5个学生的姓名,把它们按字典顺序排序后输出

来源:百度知道 编辑:UC知道 时间:2024/06/25 06:56:23

main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
puts(cs[i]);}printf("\n");
}

本程序的第一个for语句中,用gets函数输入五个名字符串。上面说过C语言允许把一个二维数组按多个一维数组处理,本程序说明cs[5][20]为二维字符数组,可分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因此在gets函数中使用cs[i]是合法的。 在第二个for语句中又嵌套了一个for语句组成双重循环。这个双重循环完成按字母顺序排序的工作。在外层循环中把字符数组cs[i]中的姓名字符串拷贝到数组st中,并把下标i赋予P。进入内层循环后,把st与cs[i]以后的各字符串作比较,若有比st小者则把该字符串拷贝到st中,并把其下标赋予p。内循环完成后如p不等于i说明有比cs[i]更小的字符串出现,因此交换cs[i]和st的内容。至此已确定了数组cs的第i号元素的排序值。然后输出该字符串。在外循环全部完成之后即完成全部排序和输出。

#include <stdio.h>
#include <string.h>
main()
{
char a[5][10],t[10];
in

帮忙用C语言编程:有10个学生,每个学生数据包括学号,姓名,四门课的成绩,从键盘输入10个学生的数据记录 C语言 从键盘输入10个学生信息(学号,姓名,年龄,性别) 从键盘输入5个学生4门课程的成绩,求每个人的总分与平均分。 编写程序 从键盘输入10个学生的成绩,统计最高分、最低分和平均分 从键盘输入若干个学生的成绩,统计计算出平均成绩, 从键盘输入五个学生数据.包括 学号 姓名 成绩 存入文件 显示出来 编写程序实现以下功能,从键盘输入6个学生的5门成绩,分别统计出每个学生的平成绩。不可用数组,只能用循 从键盘任意输入5个学生姓名,编程找出按字典顺序排在最前面的学生姓名用c语言 从键盘输入 10个学生的成绩存储在数组中,求成绩最高者的序号和成绩 如何用C语言编写:从键盘输入你的姓名,然后给出你的详细资料,