精华内容
下载资源
问答
  • 输入学生姓名、学号、成绩,会按学生成绩高低排序并输出排名,使用结构体存储,可通过学生学号查找学生成绩并修改(也可以选择不修改),
  • C语言学生成绩排序

    千次阅读 2020-07-17 12:22:38
    特此附上代码,便于查看和学习 ... //定义一个数组来保存学生姓名和成绩 float mark[100],fTemp; int i,j,iNum; puts("请输入学生数"); scanf("%d",&iNum); puts("请分别输入姓名和成绩"); f

    特此附上代码,便于查看和学习

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char Name[100][20],cTemp[20];   //定义一个数组来保存学生姓名和成绩 
        float mark[100],fTemp;
        int i,j,iNum;
    
        puts("请输入学生数");
        scanf("%d",&iNum);
        puts("请分别输入姓名和成绩");
        for(i=0;i<iNum;i++)
        {
            scanf("%s",&Name[i]);
            scanf("%f",&mark[i]);
        }
    
        for(i=1;i<iNum;i++)                                            //排序开始(冒泡)
        {
            for(j=iNum-1;j>=i;j--)
            {
                if(mark[j]>mark[j-1])
                {
                    fTemp=mark[j-1];                                   //交换成绩
                    mark[j-1]=mark[j];
                    mark[j]=fTemp;
                    strcpy(cTemp,Name[j-1]);                          //交换姓名
                    strcpy(Name[j-1],Name[j]);
                    strcpy(Name[j],cTemp);
                }
            }
        }
    
    printf("名次\t姓名\t成绩:\n");
        for(i=0;i<iNum;i++)
        {
            printf("%d\t%s\t%f\n",i+1,Name[i],mark[i]);
        }
        return 0;
    } 
    
    展开全文
  • 对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。 【输入形式】 从键盘依次输入...

    【问题描述】
    对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。
    【输入形式】
    从键盘依次输入最多不超过50个学生的学生姓名和成绩:
    第一行输入班级学生人数;
    在单独行上输入空格隔开的学生姓名和成绩,其中学生成绩是整数。
    【输出形式】
    按学生成绩由高到低顺序输出学生姓名和成绩,每行输出一位学生的姓名和成绩,其中姓名(英文)占15位,成绩占5位,均按缺省方式对齐。成绩相同时按输入次序排序。
    【输入样例】
    4
    aaa 50
    bbb 70
    ccc 65
    ddd 90
    【输出样例】
    ############ddd###90
    ############bbb###70
    ############ccc###65
    ############aaa###50
    (注意:其中“#”号代表空格)

    分界线

    思路:还是常规的语言类题目,可以用c语言的qsort 进行排序,这题用c++ 的sort 解很方便,这里选用更简单易懂的冒泡排序

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    struct student{
    	char name[101];
    	int grade; 
    }a[1001];
     
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int i;
    	for(i=0;i<n;i++){
    		scanf("%s %d",a[i].name,&a[i].grade);  
    	}
         int j,m;
          for(i=0;i<n;i++)     // 常规的冒泡排序
        {
        	for(j=0;j<n-i-1;j++)           
        	{
        		
    			if(a[j].grade<a[j+1].grade)	
    			{
    				char str[101];      // 用于排序后字符串交换数值
    		       m=a[j].grade;
    				a[j].grade=a[j+1].grade;
    				a[j+1].grade=m;
    					strcpy(str,a[j+1].name); 
    					strcpy(a[j+1].name,a[j].name);
    					strcpy(a[j].name,str) ;     
    				}
    		 } 
    	}
         
    	for(i=0;i<n;i++){
    		printf("%15s",a[i].name);      //按照所需要的格式输出答案
    		printf("%5d\n",a[i].grade);
    	}
    	return 0;
    }
    
    
    
    展开全文
  • 判断学生成绩档次并输出,C语言,入门小程序,适用于C语言入门的小练习 判断学生成绩档次并输出,C语言,入门小程序,适用于C语言入门的小练习 判断学生成绩档次并输出,C语言,入门小程序,适用于C语言入门的小...
  • PTA学生成绩排序-C语言详解

    千次阅读 2020-12-10 21:48:05
    7-72 学生成绩排序 (20分) 给出一组学生名单(姓名和成绩),请输出按成绩从大到小排序后的结果(名次和姓名)。成绩相同的人拥有相同的名次,且按姓名的字典序从小到大排列。题目保证学生姓名没有重复。 输入格式: ...

    7-72 学生成绩排序 (20分)

    给出一组学生名单(姓名和成绩),请输出按成绩从大到小排序后的结果(名次和姓名)。成绩相同的人拥有相同的名次,且按姓名的字典序从小到大排列。题目保证学生姓名没有重复。

    输入格式:

    第一行给出不大于10000的整数N。 接下来N行,每行给出学生姓名和成绩,以空格分隔。学生姓名不超过20个字符。

    输出格式:

    共输出N行,每行包含对应的学生排名和姓名,以空格分隔。

    输入样例:

    7
    KongDezhen 94
    FuTaotao 93
    HuYu 94
    XuJiecen 94
    WuSuqi 96
    ChenDa 93
    HuNianbo 95

    输出样例:

    1 WuSuqi
    2 HuNianbo
    3 HuYu
    3 KongDezhen
    3 XuJiecen
    6 ChenDa
    6 FuTaotao

    #include<stdio.h>
    #include<string.h>
    struct student{
    	char name[25];
    	int num;
    };
    int cmp(struct student a,struct student b)//比较函数
    {
    	if(a.num==b.num)
    	return strcmp(a.name,b.name)>0;
    	else 
    	return b.num>a.num;
    }
    int main()
    {
    	int n,i,j;
    	scanf("%d",&n);
    	struct student a[11111],b;
    	for(i=0;i<n;i++)
    	{
    		scanf("%s",a[i].name);
    		scanf("%d",&a[i].num);
    	}
    	for(i=0;i<n;i++)//冒泡排序进阶
    	for(j=i+1;j<n;j++)
    	{
    		if(cmp(a[i],a[j]))
    		{
    			b = a[i];
    			a[i] = a[j];
    			a[j] = b;
    		}
    	}
    	int t=1;
    	for(i=1;i<=n;i++)
    	{
    		printf("%d %s\n",t,a[i-1].name);
    		if(a[i].num!=a[i-1].num)
    		{
    			t=i+1;
    		}
    	}
     } 
    

    这题的第一个难点主要是需要在给成绩排序的同时还要给名字的首字母排序。所以建立一个比较函数较为便捷,然后符合cmp函数的条件就进行排序,其实就是冒泡排序的进阶

    第二个难点是排名的问题,若成绩相同排名相同,其实排名还是按照名次的,仔细揣摩一下我最后是如何排的,挺基础的一个解决方式。

    展开全文
  • C语言学生成绩统计程序(排序版)

    万次阅读 多人点赞 2019-12-11 14:29:12
    printf("\t* 将学生成绩排序并输出---3 *\n"); printf("\t* 退出系统-----------------0 *\n"); printf("\t* *\n"); printf("\t************************************\n"); printf("\t请选择功能:"); ...

    本来已经写了一个其他版本的小程序了,后来收到了同学的私信让帮忙写一个很像的程序。

    原文链接: https://blog.csdn.net/qq_43617268/article/details/90695212

    题目:

    #include<stdio.h>
    #include<string.h>
    struct grade_list{										//定义结构体 
    	char name[10];										//姓名 
    	int id;												//学号 
    	float c_len;										//C语言成绩 
    	float math;											//微积分 
    	float phy;											//哲学 
    	float all;											//总分
    	int num;											//名次 
    };
    void in_put(struct grade_list grades[], int n);			//声明输入函数
    void sum(struct grade_list grades[], int n);			//求和函数
    void out_put(struct grade_list grades[], int n);		//输出函数
    void sort(struct grade_list grades[], int n);			//排序函数 
    void find(struct grade_list grades[], float all, int n, int index);			//成绩匹配函数,用于将排序的成绩和结构体匹配 
     
    int main()
    {
    	struct grade_list grades[50];
    	int choices,i,n;
    	printf("成绩统计系统正在启动...\n"); 
    	printf("程序正在运行...\n");
    	do{
    		rerun:
    		printf("\n");
    		printf("\t************************************\n");
    		printf("\t*    ===========================   *\n");
    		printf("\t*          学生成绩统计系统        *\n");
    		printf("\t*    ===========================   *\n");
    		printf("\t*                                  *\n");
    		printf("\t*     输入学生成绩-------------1   *\n");
    		printf("\t*     求学生总分并输出---------2   *\n");
    		printf("\t*     将学生总成绩排序并输出---3   *\n");
    		printf("\t*     退出系统-----------------0   *\n");
    		printf("\t*                                  *\n");
    		printf("\t************************************\n");
    		printf("\t请选择功能:");
    		scanf("%d", &choices);
    		switch(choices)
    		{
    			case 1:
    				printf("执行成绩输入程序...\n\n");
    				printf("\t请输入学生人数(N):");
    				scanf("%d",&n);
    				in_put(grades,n);
    				break;
    			case 2:
    				printf("执行学生成绩求和并输出...\n\n");
    				sum(grades,n); 
    				out_put(grades, n);
    				break;
    			case 3:
    				printf("执行学生成绩排名并输出...\n\n");
    				sort(grades,n);
    				out_put(grades, n);
    				break;
    			case 0:
    				printf("\t||系统已关闭,感谢您的使用!||");
    				break;
    			default :
    				printf("\t非法输入!!!");
    				goto rerun; 
    		}
    	}while(choices>0&&choices<6);
    	
    	return 0;
     } 
    
    void in_put(struct grade_list grades[], int n)				//定义输入函数 
    {
    	int i;
    	for(i=0;i<n;i++)
    	{
    		printf("\t请输入第%d名同学的姓名:", i+1);
    		scanf("%s", grades[i].name);
    		printf("\t请输入第%d名同学的学号:", i+1);
    		scanf("%d", &grades[i].id);
    		printf("\t请输入第%d名同学的C语言成绩:", i+1);
    		scanf("%f", &grades[i].c_len);
    		printf("\t请输入第%d名同学的微积分成绩:", i+1);
    		scanf("%f", &grades[i].math);
    		printf("\t请输入第%d名同学的哲学成绩:", i+1);
    		scanf("%f", &grades[i].phy);
    		grades[i].num = 0;					//在排名之前先赋值为0 
    	}
    	printf("\t*成绩录入成功*\n");
    }
    
    void find(struct grade_list grades[], float all, int n, int index)
    {
    	int i;
    	for(i = 0; i < n; i++)
    	{
    		if(all == grades[i].all)
    		{
    			grades[i].num = index;		//当找到排好序的总成绩对应的学生后,将排名index赋值给num 
    		}
    	}
    } 
    
    void sort(struct grade_list grades[], int n)
    {
    	int a[50] ;
    	int k;
    	int N = n;
    	for(k=0; k < n; k++)
    	{
    		a[k] = grades[k].all;				//将各个学生的总成绩提取到一个数组中,用于冒泡排序 
    	}
    	//冒泡排序 
    	int i, j, temp;
    	for (j = 0; j < N - 1; j++)
    	{
    		for (i = 0; i < N - 1 - j; i++)
    			if (a[i] > a[i + 1])
    			{
    				temp = a[i];
    				a[i] = a[i + 1];
    				a[i + 1] = temp;
    			}
    	}
    	for (i = 0; i < N; i++)
    	{
    		find(grades, a[i], N, N-i);		//这里因为冒泡排序写成了从小到大,所以传入匹配函数要用n减,让排名倒过来 
    	}
    }
    
    
    
    
    
    void sum(struct grade_list grades[], int n)			//定义计算学生总分 
    {
    	int i;
    	float result;
    	for(i=0;i<n;i++)
    	{
    		result=grades[i].c_len+grades[i].math+grades[i].phy;
    		grades[i].all = result;					//赋值 
    	}
    }
    
     
    
    void out_put(struct grade_list grades[], int n)			//输出 
    {
    	int i; 
    	printf("成绩单:\n学号\t\t姓名\t\t哲学\t微积分\tC语言\t总分\t排名\n");
    	for(i=0;i<n;i++)
    	{
    		printf("%d\t\t%s\t\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n", grades[i].id,grades[i].name,grades[i].phy,grades[i].math,grades[i].c_len,grades[i].all,grades[i].num);
    	}
    	printf("成绩输出完毕"); 
    }
    

     

    展开全文
  • 怎么用C语言实现这个功能?我做到了排序或查询,但是两个不知道该如何合并...
  • 本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 结构体版的学生成绩管理系统 主要功能有 按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生...
  • 7-29 学生成绩排序 (15 分)(C语言版)

    万次阅读 多人点赞 2019-01-04 11:13:22
    7-29 学生成绩排序 (15 分) 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n&lt;50)个学生的成绩信息,按照学生的个人平均分从高到低输出...
  • 基本的搜索、查找、删除。排序等等的功能齐全,菜单界面设计较为合理......
  • 成绩排序C语言

    万次阅读 2018-03-12 11:07:21
    #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int total = 0,i = 0,j = 0; int model = 0,temp = 0; int data[100]; char name[100][100],var[100];...to...
  • C语言成绩数组排序

    千次阅读 2020-12-26 19:09:23
    子函数中对30个成绩排序; #include<stdio.h> #define N 30 int main() { int ans[N],i; int fac(int ans[]); for(i=0; i<N; i++) scanf("%d",&ans[i]); fac(ans); for(i=0; i<N; i++) ...
  • 学生成绩按照语文和数学成绩排序 思路: 1. 首先,先把这个小项目的框架打好。考虑要写几个文件,每一个文件里面实现怎样的功能。考虑到这个小项目的代码量以及程序的易读性,我决定将写三个文件。一个main.c,...
  • 学生成绩排名(C语言编写)

    万次阅读 2015-09-05 20:12:46
    //学生成绩排名 #include struct Birthday{  int year;  int month;  int day;  }; struct Student{  char name[30];  int age;  struct Birthday birthday;  doubl
  • C语言学生成绩统计

    2015-05-21 16:45:13
    录入学生的信息,并且保存到一个磁盘文件。可以录入学生的平时成绩...按照总成绩学生进行排序,查询某个学生成绩(按照学号、姓名、成绩等关键词进行查询)。制定学生信息至少包括:学号、姓名、班级、成绩等内容。
  • 此学生成绩管理系统是用工具codeblock开发的,语言类型c语言,实现功能:1、创建学生成绩库 2、学生信息显示 3、学生学号排序 4、学生成绩排序 5、添加学生信息 6、根据学号删除学生信息 7、查找学生信息 、8退出...
  • 1. 学生成绩排序系统简介 学生成绩排序系统可实现学生信息输入、学生信息输出、学生信息查询、学生成绩排序等功能。程序要求提供简单友好易于操作的界面。程序以C语言开发。 2.学生成绩管理系统基本要求: 假设有5名...
  • C语言学生成绩管理系统源代码,可完整执行,包括,增加,修改,查询,统计,删除等等功能
  • C语言利用结构体进行成绩排序

    千次阅读 多人点赞 2020-04-10 21:12:46
    题目      有n名学生的信息(包括学号、姓名和成绩),编写函数实现...输出从高到低排序后的学生信息,包括:学号、姓名、成绩。 输入样例: 在这里给出一组输入。例如: 3 101 Zhang 78 ...
  • C语言学生成绩管理系统(以包含文件的形式写的),结构体,链表,数组,以下是main.c #include #include #include #define m 3/*宏定义m的值为3*/ struct node/*链表初始化*/ { char name[20]; int no; float ...
  • 1.可实现对学生成绩的录入、查询、增加、删除、输出基本操作 2.可对学生的成绩进行排序,按总分排序、按科目排序、按平均分排序等 3.录入学生的基本分数,可计算并输出学生的操行分,成绩等级等 4.采用了文件的读和...
  • PTA(C语言学生成绩排序

    千次阅读 2019-02-11 16:07:48
    假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n&amp;lt;50)个学生成绩信息,按照学生的...输出从高到低排序后的学生信息,包括:学号、姓...
  • 本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 Ps:后加了个链表排序,用冒泡写的。 /* Title : Student's score management system Author: nyist_xiaod Date : 2012.5.8 */...
  • 通过本实验练习,掌握需要包括:磁盘文件的读写方法;掌握链表创建方法,掌握链表节点的数据结构定义、链表的排序方法、两个链表内容链接查询的方法;掌握创建栈、进栈和出栈的实现方法。
  • 结构体可以封装多种类型的数据,将多种数据类型组合成一个数据类型。C语言中有int、char、float、double等等数据类型,但是这些类型...比如,你可以将一个学生的姓名、学号、成绩等信息使用结构体组合在一起使用,可...
  • //排序: /* 1、录入学生基本信息 2、直接插入排序 3、冒泡排序 4、快速排序 5、简单选择排序 6、堆排序 7、2-路归并排序 8、输出学生信息 */ #include&lt;stdio.h&gt; #include&lt;stdlib.h&...
  • 3、排序:sort函数对所有学生按要求排序(1.学号 2.总成绩 ),并输出。 4、查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。 5、删除:delete函数输入一个学生的学号...
  • C语言学生成绩管理系统

    万次阅读 多人点赞 2019-11-07 14:49:58
    学生成绩管理系统(C语言)需求代码总结 大学正式上课的第一个月10.8~11.7,学到了很多东西,收获颇多,刚入校只会用现成的,只会调用各种函数,把封装好的东西拿来用。现在可以自己不抄别人,完全按照自己的思路写...
  • 学习C语言后的一次设计与总结,程序设计与问题求解基础...它是一个简单的学生成绩管理信息系统,学生成绩信息包括:学号,姓名,课程名,平时成绩,实验成绩,考试成绩,总评成绩,可对信息进行增删查改,排序,评优等
  • C语言 冒泡排序(成绩排序实例)

    千次阅读 2020-05-04 22:33:44
    任意输入一组正整数数据,以负数结尾,使用冒泡排序进行从大到小排序 具体代码如下 #include <stdio.h> int main() { int num[40]={0},i,j,t,n=0; scanf("%d",&num[n]); while(num[n]>=0){ n++; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,853
精华内容 3,541
关键字:

学生成绩排序c语言

c语言 订阅