C语言编程实例:学生信息录入与成绩排序

创始人
2024-12-23 18:04:59
0 次浏览
0 评论

编写程序,实现输入5个学生的学号、姓名及c语言课成绩。并输出。

#include#defineNUM5voidmain(){structxue{charname[20];charnumber[20];charchenji[10];};structxuemenber[NUM];inti;for(i=0;i

用C语言编程:从键盘输入10个学生的成绩和学号,将其排序输出,并输出中要有相应的学生学号

#includestructstudent{intid;intscore;}stu[10];intmain(void){inti,m;structstudentj;for(i=0;i

输入全班同学的学号和某一门的成绩的c语言怎么编写,讲该课程的成绩按由高到低的顺序排序怎么编写

在编程中,冒泡排序算法可用于将输入的学生人数和给定科目的成绩从最高到最低进行排序。
这里有一个具体的例子来帮助理解如何实现它。
代码如下:#include#includeStudent{intnum;floatscore;}stu[10];intmain(){inti,j,flag,k=1;floattemp;printf("输入10名学生的学号和成绩,使用空格分隔:\n");for(i=0;i<10 stu[i].num,&stu[i].score);for(i=0;i i++){flag=0;for(j j<=8-i;j++)if(stu[j].score>stu[j+1].score){temp=stu[j].score;stu[j].score=stu[j+1].score;stu[j+1].score=temp;flag=1;}if(flag==0&&i==0)break;elseif(flag==0){k=i;在主函数中,通过循环输入10个学生的学号和成绩。
然后使用冒泡排序算法对结果进行排序。
排序过程中,如果在某个遍历周期内没有发生交换,则认为链表乱序,排序提前结束。
最后,生成排名分数和比较次数。
该代码示例适合小类数据处理。
如果类大小很大,则需要更改数组的大小或使用动态内存分配。
希望这段代码可以帮助你了解如何使用C语言实现投票排序。
请注意,系统调用“system(”pause”);”代码中用于在Windows环境下暂停程序,等待用户按键查看输出结果。
在非Windows环境中,您可能需要手动编辑这部分代码。
通过学习和练习这段代码,你将更好地掌握C语言中数组、结构体和排序算法的应用。

如何用C语言实现根据学号查询学生成绩信息

概述

它只是使用多个数组来管理学生成绩信息,而不使用结构体。
该程序的主要难点是根据学号或总成绩对学生信息进行排序,并使用临时数组来标记排序后的项目。

运行结果如下:

输入数据:

按总分排序:

根据学号删除学生信息:

粘贴代码(稍微多一点)

#include

#include//退出函数头文件

#include//字符串相关操作头文件

#defineMAX_STUDENT30//最大学生数

//函数声明,这个程序一共有10个子函数,每个函数对应一个操作

voidstudent_scanf(intn);

voidsStudent_printf(intn);

intstudent_find_name(intn);

intstudent_find_num(intn);

voidstudent_sort_num(intn);

voidstudent_sort_sum(intn);

intStudent_alter_num(intn);

intstudent_alter_name(intn);

intstudent_delete_num(intn);

intstudent_delete_name(intn);

//全局数组变量,用于存储学生信息

char姓名[MAX_STUDENT][50];

IntMath[MAX_STUDENT];

IntEnglish[MAX_STUDENT];

IntComputer[MAX_STUDENT];

intsum[MAX_STUDEN];

intnum[MAX_STUDENT];

//以下变量用于将学生信息数组序列化为临时数组

inttemp_num[MAX_STUDENT];

chartemp_names[MAX_STUDENT][50];

inttemp_math[MAX_STUDENT];

inttemp_english[MAX_STUDENT];

inttemp_computer[MAX_STUDENT];

inttemp_sum[MAX_STUDENT];

//排序数组对学生号进行排序或存储名称下标

intsort[MAX_STUDENT];

//循环全局变量

inti,j;

//main主函数

intmain(void)

{

intchoice,n;

while(1)

{

printf('********************************************\n");

printf("欢迎使用学生成绩管理系统\n");

printf("[1]输入所有学生信息do\n");

printf("[2]输出所有学生成绩\n");

printtf("[3]按学号查找学生信息\n");

printf("[4]按姓名查找学生信息\n");

printf("[5]按学号排序\n");

printf("[6]按总分排序\n");

printf("[6]按总分排序\n");

printf("[7]按学号对学生信息进行排序按姓名修改\n");

printtf("[8​​]按姓名修改学生信息\n");

printf("[9]删除学生信息按学号\n");

printf(""[10]按姓名删除学生信息\n");

printf(""[0]退出程序\n");

printf("请输入您的选择do(0-9):");

scanf("%d",&choice);

printf("*****************************************)\n");

开关h(选择)

{

case1://entry;

printf('请输入输入的学生信息条数:');

scanf("%d",&n);

student_scanf(n);

break;

case2://output;

student_printf(n);

break;

case3://按学号搜索

student_find_num(n);

break;

case4://来自名字find

student_find_name(n);

break;

case5://按学号排序

p

Student_sort_num(n);

break;

case6://按名称排序

student_sort_sum(n);

break;

Case7://根据学号修改

student_alter_num(n);

break;

case8://按名称修改

break;

case9://根据学号删除

student_delete_num(n);

n--;

break;

case10://从名称中删除

student_delete_name(n);

n--;

break;

case0://退出程序

printf("退出程序\n");

printf("程序结束,感谢您使用!\n");

退出(0);

默认:

printf(''您输入的菜单不正确。
请重新输入!\n");

}

}

return0;

}

//1

voidstudent_scanf(intn)

{

for(i=0;i

{

printf('\n请输入%d条学生信息in:\n",i+1);

printf("\n学习数字:");

scanf("%d",&num[i]);

scanf("%d",&num[i]);

printf("\n名:");

scanf("%s",name[i]);

printf("\nmath分数:");

scanf("%d",&math[i]);

printf("\n英语成绩:");

scanf("%d",&english[i]);

printf('\n计算机Score:');

scanf('%d'',&computer[i]);

//计算总分

sum[i]=数学[i]+英语[i]+计算机[i];

}

}

//2.打印信息

voidstudent_printf(intn)

{

printf('\n学号\t姓名\t数学成绩\t英语成绩\t电脑成绩\t总成绩\n');

printf("----------------------------------------------------------------------------\n");

for(i=0;i

{

printf("%d\t%s\t%d\t\t%d\t\t%d\t\t%d\n",num[i],names[i],math[i],english[i],computer[i],sum[i]);

}

printf("--------------------------------------------------------------------------\n");

}

//3.按学生编号查找

intstudent_find_num(intn)

{

intnums;

干扰;

printf('请输入要查找的学号:');

scanf('%d'',&nums);

result=-1;

for(i=0;i

{

if(nums==num[i])

{

result=i;

break;

}

}

//确定最后的q值

if(result==-1)

{

printf('没有该学生的信息!\n");

return0;

}

否则

{

//先打印标题

printf('\n学号\t\t姓名\t\t数学成绩\t英语成绩\t电脑成绩\t总成绩\n");

//再次打印数据do

printf('%d\t\t%s\t\t%d\t\t%d\t\t%d\t%d\n'',number[结果],姓名[结果],数学[结果T],英语[结果],计算机[结果],Sum[结果]);

printf(''打印搜索结果do!\n');

}

return1;

}

//4.按名称查找成绩

intstudent_find_name(intn)

{

charname[200];

intresult;

printf("请输入要见面的学生姓名:");

scanf("%s",name);

结果=-1;

for(i=0;i

{

if(strcmp(name,names[i])==0)

{

result=i;

break;

}

}

if(result==-1)

{//未找到结果

printf('该学生不知道!\n');

return0;

}

else//查找结果

{

printf('\n学号\t姓名\t数学成绩\t英语成绩\t电脑成绩\t总计分数\n");

printf("%d\t%s\t%d\t\t%d\t\t%d\t\t%d\n",num[结果]、姓名[结果]、数学[结果],英语[结果],计算机[结果],瑜伽[结果]);

printf('查找完成!\n');

}

返回1;

}

//5.按学号排序

voidstudent_sort_num(intn)

{

intmin,max;

for(i=0;i

{

temp_num[i]=num[i];

}

最大=0;//找到要学习的数字,并将其索引存储在排序数组的最后一个值中

for(j=1;j

{

if(temp_num[max]

max=j;

}

sort[n-1]=max;//对数组的最后一个数字进行排序

for(i=0;i

{

min=i;//求最少学生人数

for(j=0;j

{

temp_num[j])

min=j;

}

//排序数组记录排序后的学生信息的下标

sort[i]=分钟;

temp_num[分钟]=temp_num[最大值];//使用临时数组,将搜索到的学生信息的学生数设置为最大值,以消除搜索干扰

}

for(i=0;i

{

temp_num[i]=num[i];

strcpy(temp_names[i],names[i]);

strcpy(temp_names[i],names[i]);

temp_math[i]=math[i];

temp_english[i]=english[i];

temp_computer[i]=computer[i];

temp_sum[i]=sum[i];

}

for(i=0;i

{

num[i]=temp_num[sort[i]];

strcpy(names[i],temp_names[sort[i]]);

数学[i]=temp_math[排序[i]];

english[i]=temp_english[sort[i]];

计算机[i]=temp_computer[sort[i]];

}

printf("排序完成,请按菜单键2查看排序结果!\n");

return;

}

//6.按总分排序

voidstudent_sort_sum(intn)

{

intmin,max;

for(i=0;ip

{

temp_sum[i]=sum[i];

}

max=0;//求最大总分,并将其下标存储在排序数组的最后一个值中

for(j=1;j

{

if(temp_sum[max]

max=j;

}

sort[n-1]=max//排序数组末尾A数字

for(i=0;i

{

min=i;//求最小总分

for(j=0;j

{

temp_sum[j])

min=j;

}

//排序后的学生信息的数组下标记录

sort[i]=min;

temp_sum[min]=temp_sum[max];//使用临时数组将搜索到的学生信息的总分设置为最大值,以消除搜索干扰

}

for(i=0;i

{

temp_num[i]=num[i];

strcpy(temp_names[i],names[i]);

temp_math[i]=math[i];

temp_english[i]=english[i];

temp_computer[i]=计算机[i];

temp_sum[i]=sum[i];

}

对于(我=0;i

{

num[i]=temp_num[sort[i]];

strcpy(names[i],temp_names[sort[i]]);

数学[i]=temp_math[排序[i]];

english[i]=temp_english[sort[i]];

计算r[i]=temp_computer[sort[i]];

sum[i]=temp_sum[sort[i]];

}

printf("排序后,请按菜单键查看排序结果.按2!\n");

返回;

}

//7.根据学号修改学生信息

intstudent_alter_num(intn)

{

intnums;

intresult;

printf('请输入要修改的学号:');

扫描f("%d",#nums);

结果=-1;

for(i=0;i

{

if(nums==num[i])

{

result=i;

break;

}

}

//最后设置q值

if(result==-1)

{

printf('没有该学生的信息!\n');

return0;

}

否则//修改信息值

{

printf('请重新输入学生信息:\n');

printf('学号:\n");

scanf("%d",&num[结果]);

printf("名称:\n");

scanf("%s",names[结果]);

printf('数学成绩:\n');

scanf('%d'',&math[result]);

printf('英语得分:\n");

scanf('%d',&english[结果]);

printf('电脑成绩:\n');

scanf('%d",&电脑[成绩]);

瑜伽[成绩]=数学[成绩]+英语[成绩]+电脑[成绩]];

}

return1;

}

//8按姓名修改学生信息。

{

charname[50];

intresult;

printf('请输入学生姓名输入需要修改的内容:);

scanf("%s",名称);

结果=-1;

for(i=0;i

{

if(strcmp(name,names[i])==0)

{

result=i;

break;

}

}

//最后的q值set

if(result==-1)

{

printf('没有该学生的信息!\n");

return0;

}

否则//修改信息值

{

printf('请重新输入学生信息:\n");

printf("学号:\n");

scanf("%d",&num[结果]);

printf("名称:\n");

scanf("%s",名称[结果])

printf("数学);成绩:\n");

scanf("%d",&math[结果]);

printf("英语成绩:\n");

scanf("%d",&english[结果]);

printf('计算机成绩:\n');

scanf('%d'',&计算机[结果]);

sum[结果]=数学[结果]+英语[结果]+计算机[结果];

}

return1;

}

//9.根据学号删除学生信息

intstudent_delete_num(intn)

{

intnums;

intresult;

printf("请输入要删除的学号。
do:");

scanf("%d",&nums);

结果=-1;

for(i=0;i

{

if(nums==num[i])

{

结果=i;

break;

}

}

//最后设置q值do

if(result==-1)

{

printf('没有该学生的信息!\n');

return0;

}

否则//删除当前学生信息就是用结果位置替换数组依次向前移动一个位置

{

for(i=结果;i

{

num[i]=num[i+1];

strcpy(名称[i],名称[i+1]);

数学[i]=数学[i+1];

英语[i]=英语[i+1];

计算机[i]=计算机[i+1];

sum[i]=sum[i+1];

}

}

return1;

}

//10.按姓名删除学生信息

intstudent_delete_name(intn)

{

charname[50];

intresult;

printf("请输入要删除的学生姓名:");

scanf("%s",name);

>

结果=-1;

for(i=0;i

{

if(strcmp(name,name[i])==0)

{

结果=i;

break;

}

}

//最后设置q值do

if(result==-1)

printf('没有该学生的信息!\n');

return0;

}

否则//移除当前学生信息意味着将数组移动到结果位置前面一位

{

for(我=结果);i

{

num[i]=num[i+1];

数学[i]=数学[i+1];

English[i]=enGlish[i+1];

计算机[i]=计算机[i+1];

sum[i]=sum[i+1];

}

}

return1;

}

热门文章
1
Java与JavaScript:基础入门... javas是什么?Java是一种面向对象的编程语言,可用于编写跨平台的应用软件。...

2
Java操作文本值:提取与求和技巧详解 java怎么把文本框的数字读出来想加求和获取Java文本中的值并执行操作有两种方...

3
手机QQ浏览器助力安卓用户:JavaSc... 请问,哪种浏览器支持JavaScript?——本人使用安卓手机。他们都受到支持。...

4
C语言实现阶乘累加和:从函数定义到代码示... 用C语言求1到N的阶层的累加和思路:首先定义一个函数计算一个数的阶乘,然后从1到...

5
Python教程:如何验证输入字符串是否... python中如何判断输入的字符串为实数,谢谢!尝试:x=float(input...

6
C语言实现400位高精度计算器:思路解析... 用C语言做一个可进行加减乘除的400位计算器?(求思路)这个可以用个位数全加器的...

7
C语言数组定义与赋值详解:char与in... c语言数组定义和赋值是什么?C语言数组定义为:charc[6]={'c','h'...

8
C语言期末复习攻略:基础知识点+经典例题... c语言怎么学考试基础知识笔记经典例题题库指针大一期末考试题入门二级怎么学代码烟花...

9
JavaScript字符串转数字:三种方... css前端如何把字符串转为数字主要有三种方式:转换函数、强制类型转换和使用js变...

10
C++字符串转数组:简单操作实现转换 c++如何把字符串转换成数组?谢谢#include#includeusingna...