精华内容
下载资源
问答
  • 本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。 输入格式: 输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩...

    本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。

    输入格式:

    输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。

    输出格式:

    按照以下格式输出:

    average = 平均成绩
    max = 最高成绩
    min = 最低成绩
    

    结果均保留两位小数。

    输入样例:

    3
    85 90 95
    

    输出样例:

    average = 90.00
    max = 95.00
    min = 85.00

    编程思路:根据学生人数,首先创建所需节点数量的链表,然后依次录入学生成绩,处理成绩(求平均、最大、最小值),输出

    拓展:1、学生信息(学号、姓名、成绩、地址)

    struct student //定义结构体 
    {
    	char name[20];
    	double num;
    	int score;	//成绩 原题只保留这个就可以
    	char add[40];
    	struct student *next;  
    } ; 
    
    //原题修改:
    //输入函数里面
    scanf("%d",&q->score);
    
    //去掉 main()中
    p_list();函数调用

               2、输出学生信息表

               3、输出成绩统计结果

    截图及代码:

    26
    20191001 测试_1 98 中国.北京.dizhi_1
    20191002 测试_2 78 中国.北京.dizhi_2
    20191003 测试_3 84 中国.北京.dizhi_3
    20191004 测试_4 93 中国.北京.dizhi_4
    20191005 测试_5 71 中国.北京.dizhi_5
    20191006 测试_6 70 中国.北京.dizhi_6
    20191007 测试_7 71 中国.北京.dizhi_7
    20191008 测试_8 89 中国.北京.dizhi_8
    20191009 测试_9 95 中国.北京.dizhi_9
    20191010 测试_10 86 中国.北京.dizhi_10
    20191011 测试_11 88 中国.北京.dizhi_11
    20191012 测试_12 81 中国.北京.dizhi_12
    20191013 测试_13 85 中国.北京.dizhi_13
    20191014 测试_14 71 中国.北京.dizhi_14
    20191015 测试_15 79 中国.北京.dizhi_15
    20191016 测试_16 96 中国.北京.dizhi_16
    20191017 测试_17 81 中国.北京.dizhi_17
    20191018 测试_18 83 中国.北京.dizhi_18
    20191019 测试_19 93 中国.北京.dizhi_19
    20191020 测试_20 80 中国.北京.dizhi_20
    20191021 测试_21 84 中国.北京.dizhi_21
    20191022 测试_22 87 中国.北京.dizhi_22
    20191023 测试_23 93 中国.北京.dizhi_23
    20191024 测试_24 72 中国.北京.dizhi_24
    20191025 测试_25 95 中国.北京.dizhi_25
    20191026 测试_26 88 中国.北京.dizhi_26
    

    输入部分:

    输出部分:

     

    代码如下:

    #include "stdio.h"
    #include "stdlib.h"
    struct student //定义结构体 
    {
    	char name[20];
    	double num;
    	double score;	//成绩 
    	char add[40];
    	struct student *next;  
    } ; 
    /*创建链表*/ 
    void creact_s(struct student *head , int n) 
    {
    	int i;
    	struct student *q;
    	q=head;
    	for(i=0;i<n;i++) //循环 创建所需数量的链表 
    	{
    		struct student *p;//创建头指针 
            if((p=(struct student *)malloc(sizeof(struct student)))==NULL)
    		{
    			printf("Sorry 分配内存失败......\n");
    			exit(0);
    		}
    		q->next=p;
    		p->next=NULL;
    		q=p;
    	}
    }
    /*输入数据*/
    void input_s(struct student *head , int n)
    {
    	int i; 
    	struct student *q;
    	q=head->next;
    	printf("请依次输入 %d 名学生的信息:\n",n);
    	printf("\n学号\t姓名\t成绩\t地址\n\n");
    	for(i=0;i<n;i++)
    	{
    		scanf("%lf%s%lf%s",&q->num,&q->name,&q->score,&q->add);
    		q=q->next;
    	}
    } 
    /*统计学生成绩*/
    void stat_s(struct student *head , int n, double *p)
    {
    	int i;
    	double max,min,sum=0;//sum 成绩求和 
    	struct student *q;
    	q=head->next;//指向第一名学生 
    	max=q->score;//成绩最大值 初始化 
    	min=q->score;//成绩最大值 初始化 
    	for(i=0;i<n;i++) //遍历链表 
    	{
    		sum+=q->score;
    		if(max<q->score)
    			max=q->score;
    		if(min>q->score)
    			min=q->score;
    		q=q->next;
    	}
    /*统计结果存储到指定数组*/ 
    	p[0]=sum/(double)n;
    	p[1]=max;
    	p[2]=min;	
    }
    /*输出学生成绩*/
    void output_s(double *p)
    {
    	printf("\n成绩统计结果如下:\n\n");
    	printf("average = %.2lf\n",p[0]);
    	printf("max = %.2lf\n",p[1]);
    	printf("min = %.2lf\n",p[2]);
    	printf("\n");
    }
    void aoutput_s(struct student *head , int n)
    {
    	int i;
    	struct student *q;
    	q=head->next;
    	//printf("\n\t学号\t    姓名\t成绩\t\t地址\n\n");
    	printf(" ——————————————————————————\n");
    	for(i=0;i<n;i++)
    	{
    		printf("| %-9.0lf| %-8s| %-4.2lf|  %-21s |\n",q->num,q->name,q->score,q->add);
    		printf(" ——————————————————————————\n");
    		q=q->next;
    	}
    			
    }
    /*打印表头*/
    void p_list()
    {
    	int i;
    	char list_sheet[4][8]={{"学号"},{"姓名"},{"成绩"},{"地址"}}; 
    	char *p[4];
    	for(i=0;i<4;i++)
    		p[i]=list_sheet[i];
    	printf("\n\n   %-10s%-10s%-12s%s\n",p[0],p[1],p[2],p[3]);
    } 
    /*主函数*/ 
    int main()
    {
    	int N;
    	double achievement[3];
    	printf("请输入学生人数: ");
    	scanf("%d",&N);
    	/*创建学生链表*/
    	struct student *head=NULL;//创建头指针 
    	head=(struct student *)malloc(sizeof(struct student));
    	creact_s(head,N);
    	input_s(head,N);
    	stat_s(head,N,&achievement[0]);	
    	p_list();
    	aoutput_s(head,N);
    	output_s(&achievement[0]);
    	system("pause");
    }
    

    问题及解决方案:

    本题中计算学生成绩的阶段,遍历链表,最后一个节点的成绩统计会有几种情况,供参考:

    case 1:参数传递带学生人数,用 for()循环遍历链表 (个人认为比较简单的方法)

    case 2:参数传递不带学生人数,用 while ()循环遍历链表,

                  会出现最后一个节点无法统计在内的情况,

    两种解决方法

     方法一:while()循环之后,单独处理 最后一个节点的成绩(已经在上面代码中注视掉的部分)

    方法二:在创建链表的时候,多创建一个节点;

                   这里也有两种情况供选择:

    1、创建链表节点的同时,对节点成员初始化,如本题 可在创建链表时 对成员初始化 q->score=0;

    2、对结构体初始化;我们暂且称之为“定义初始化”,定义结构体时(后)直接初始化,使得以后创建的结构体全都是初始化的;

         可能比较绕,方法待网友自行查找吧!(我还没搞透,希望大神指点)

     

     

    展开全文
  • 摩尔的Java学习笔记3.1 定义学生类:成员变量学号、姓名、出生日期(字符串)、...成员方法包括构造方法、计算学生年龄的方法输出学生信息的方法;在主方法中创造一个学生对象,然后输出他的信息(包括他的年龄)

    摩尔的Java学习笔记3.1

    第三周作业:

    1、定义学生类:成员变量有学号、姓名、出生日期(字符串)、成绩;成员方法包括构造方法、计算学生年龄的方法、输出学生信息的方法;在主方法中创造一个学生对象,然后输出他的信息(包括他的年龄);
    2、编程实现以下功能
    (1)员工类(Employee):成员变量包括员工号和员工姓名,成员方法包含构造方法和输出方法(输出员工信息);
    (2)部门主管类(Manager):从员工类继承而来,同时添加新的成员变量:主管部门名;添加构造方法,要调用父类Employee的构造方法;覆盖父类中的输出方法,输出部门主管对象的信息;
    (3)测试类(Test):包含一个主方法。在主方法中创建一个员工对象和一个部门主管对象,并调用输出方法显示员工信息和部门主管信息。

    1、定义学生类:成员变量有学号、姓名、出生日期(字符串)、成绩;成员方法包括构造方法、计算学生年龄的方法、输出学生信息的方法;在主方法中创造一个学生对象,然后输出他的信息(包括他的年龄);

    
    /**
     * @author 薛莲婷
     *定义学生类:成员变量有学号、姓名、出生日期(字符串)、成绩;
     *成员方法包括构造方法、计算学生年龄的方法、输出学生信息的方法;
     *在主方法中创造一个学生对象,然后输出他的信息(包括他的年龄);
     */
    import java.util.*;
    
    class Student {
            private String m_number;                                //学号
            private String m_name;                                  //姓名
            private String m_date;                                  //出生日期
            private float m_score;                                  //成绩
    
            Student(){}                                             //两个构造方法
            Student(String number,String name,String date,float score)
            {
                m_number=number;
                m_name=name;
                m_date=date;
                m_score=score;
            }
    
            int getAge(String date)                                 //计算年龄
            {
                int age=0;                                          //学生年龄
                                                                    //学生出生年份、月份、当月日期
                int myYear=Integer.parseInt(date.substring(0,4));   //注意用法,endIndex不算在内的
                int myMonth=Integer.parseInt(date.substring(4,6));
                int myDay=Integer.parseInt(date.substring(6,8));
    
                Calendar c=Calendar.getInstance();                  //获取当前的年、月、日
    
                int thisYear=c.get(Calendar.YEAR);
                int thisMonth=c.get(Calendar.MONTH);
                int thisDay=c.get(Calendar.DATE);
    
                age=thisYear-myYear-1;
    
                if(myMonth<thisMonth)
                {
                    age++;
                }
                if(myMonth==thisMonth&&myDay<thisDay)
                {
                    age++;
                }
    
                return age;
            }
    
            void displayInfo()                                      //输出学生信息
            {
                System.out.println("学号 "+m_number+"\t姓名 "+m_name+"\t出生日期 "+m_date+"\t年龄 "+getAge(m_date)+"\t成绩 "+m_score);
            }
    
    
            public static void main(String[] args) {
    
                //创建一个学生对象
                Student student1=new Student("1151630","张三","19970101",99); //对于2017年3月,年龄为20
                //Student student2=new Student("1151631","李四","19971201",99);年龄就会显示为19
    
                System.out.println("学生信息:");
                student1.displayInfo();         
            }       
    }
    
    展开全文
  • 输出学生信息

    2017-10-11 21:34:32
    创建学生类及对象package hong;public class Student { String name; String sex; int age; public Student(){}; public Student(String n, String s,int a){ nam

    创建学生类及对象

    package hong;
    
    public class Student {
    
             String name;
                String sex;
                int age;
         public Student(){};
         public Student(String n, String s,int a){
                    name=n;
                    sex=s;
                    age=a;
    
                }
        void GetInfo(String n, String s, int a){
                    name=n;
                    sex=s;
                    age=a;
                }
      void ShowInfo(){
                    System.out.println("姓名:"+name);
                    System.out.println("性别:"+sex);
                    System.out.println("年龄:"+age);
                }
    public static void main(String[] args) {
                    // TODO 自动生成的方法存根
                    Student stu1;                                          //定义子类中的变量
                    stu1=new Student();
                      System.out.println("输出第一个学生信息");            //定义子类中的变量
                      stu1.GetInfo("张三","男",18);
                      stu1.ShowInfo();                                   //创建属于学生类的对象爱,并通过对象调用其相关的成员变量和方法。
                    System.out.println("d第二个人的信息");
                    Student stu2=new Student("王五","男",21);
                    stu1.ShowInfo();
                }
    
            }

    运行结国:
    这里写图片描述
    知识点:
    1. 对象
    2. 构造对象
    3. 默认构造方法
    4. 重载构造方法

    展开全文
  • // 50个学生,要求输出成绩在80分以上的学生的学号和成绩 // 结构体定义学生数组, 以5组学生为例 struct student{ int num; float score; }stu[5]; int main() { for (int i=0;i<5;i++) { printf("请...
    # include <stdio.h>
    
    // 有50个学生,要求输出成绩在80分以上的学生的学号和成绩
    
    // 结构体定义学生数组, 以5组学生为例 
    struct student{
    	int num;
    	float score;
    }stu[5];
     
    int main()
    {
    	for (int i=0;i<5;i++)
    	{
    		printf("请输入第%d个学生的信息\n",i+1);
    		scanf("%d %f",&stu[i].num,&stu[i].score);
    	}
    	for (int i=0;i<5;i++)
    	{
    		if (stu[i].score>80)
    			printf("%d, %.2f\n",stu[i].num,stu[i].score);
    	}
    	
    	return 0;
    	
     } 

     

    展开全文
  • 3个学生的信息,放在结构体数组中,要求输出全部学生的信息。 方法:(用指向结构体数组的指针处理) #include<stdio.h> struct Student { int num; char name[20]; char sex; int age; }; struct ...
  • 例 2.2 50个学生,要求输出成绩在80分以上的学生的学号和成绩。 代码块: 方法1:(利用结构体) #include &lt;stdio.h&gt; struct student{ int num; float score; }stu[5]; int main() { for ...
  • 本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。 输入格式: 输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,...
  • 定义了一个学生类和教师类,输出学生的信息,使用了继承和函数方法 using System; namespace 教师类学生类信息 { public class Teacher { public int id; public string name; public int height; public...
  • 建立单链表(头尾指针)用于存放学生某门课程成绩(整型);输出链表中的所有数据和平均成绩,并且能够在指定的位置插入或删除指定的某学生的成绩。要求:数据个数和数据从键盘输入。 #include <stdio.h> #...
  • 已知某个班 30 个学生,学习 5 门课程,已知所有学生的各科成绩。计算每个学生的平均成绩,并输出 注意: 定义一个二维数组 A,用于存放 30 个学生的 5 门成绩。 定义一个一维数组 B,用 于存放每个学生的 5 门...
  • PTA 输出学生成绩 (20 分)

    千次阅读 2019-12-22 20:23:23
    输出学生成绩 (20 分) 本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。 输入格式: 输入第一行首先给出一个正整数N,表示学生的个数。接下来...
  • #include &lt;iostream&gt; using namespace std; struct stu { char name[10000]; int s1,s2,d; char b,c; }s[100005]; int main() { int n,i; cin&gt;&gt;n; for(i=0;...i++)...
  • 输入/输出学生信息

    2017-11-12 10:02:55
    package zh; import java.util.Scanner; //添加输入库文件包 public class ZH { //创建类ZH public static void main(String[] args) { // TODO 自动生成的方法存根 String name; int age; float
  • 输出分数段内的学生人数

    千次阅读 2018-10-12 16:07:24
    编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。 样例输入 88 71 68 70 59 81 91 42 66 77 83 0 样例输出 &gt;=85:2 ...
  • java排序compareTo:降序输出学生成绩

    千次阅读 2018-03-18 22:50:05
    一道简单程序题:编写一个程序,输入学生的姓名、分数信息,要求程序按照成绩降序排序后并输出。实现方法有很多方法一 public class ScoreSort2 { private String name; private long grade; public long ...
  • 1、10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数: (1) 根据学生的信息建立链表; (2) 输出链表; (3) 输入一个学生的学号,查找链表中是否学生; (4) 在第i个学生前插入一个...
  • System.out.println("输入要输出学生信息的人数( num表示显示所有学生的信息 正数:表示输出 num个学生的信息)"); int num=sc.nextInt(); sc.nextLine(); sm.printStudent( num ); Address address=...
  • oj-输出学生信息

    千次阅读 2014-06-08 12:27:16
    01./* 02.* 程序的版权和版本声明部分: ...04.* All rights reserved. 05.* 文件名称:test.cpp 06.* 作 者:刘芳 07.* 完成日期:2014 年6 月 8 日 08.* 版 本 号:v1.0 09.* 对任务及求解方法的描述部分: 10.*
  • 结构体输出10个学生的各种成绩

    千次阅读 2020-05-30 14:31:18
    编写代码,10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均...
  • 统计各行业就业的学生数量,按数量从高到低方式输出 解决代码: 代码如下: names = input().split() ret = {} for s in names: ret[s] = ret.get(s,0)+1 ls = list(ret.items()) ls.sort(key=lambda x:x[1...
  • 录入学生的信息和打印学生信息的功能 1)def input_student(): 此函数获取学生信息,并返回学生信息的列表 2) def output_student(L): 以表格形式再打印学生信息 l = [] def input_student(): while 1: name = ...
  • 输出最高分数的学生姓名 输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。 输入格式 ...要求使用「文件输入输出」的方式解题,输入文件为 name.in,输出文件为 name.ou
  • 例 9.4 n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出学生的信息。 代码块: #include &amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp...
  • java技术支持 输入输出学生信息

    千次阅读 2012-09-14 23:54:32
    /* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved....* 文件名称:输入输出学生信息 * 作 者:薛广晨 * 完成日期:2011
  • //对学生的成绩管理。 //1.录入学生信息(学号,姓名,三门成绩)。...输出排好序的学生信息。 #include<stdio.h> #define N 20 struct student{ int id; char name[20]; int score[3]; do...
  • 1. 编写一个控制台程序,重复输n个学生的信息(学生姓名,年龄,性别)
  • 题目来源:大工慕课 链接 ...要求分别使用三种方式输出5名学生的信息,即每名学生的信息都输出3次,输出方式分别为: a. 结构体变量.成员变量 b. (*结构体指针变量).成员变量 c. 结构体指针变量 -&...
  •  * 输出每个学生信息,计算并输出这五个学生Java成绩的平均值,  * 以及计算并输出他们Java成绩的最高分以及最低分是多少,分别是哪位同学。 * */  public class Student { public String name; p
  • acm-输出学生成绩等级

    千次阅读 2013-10-15 17:13:14
    /* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2013年 10月15 日 ...*对任务及求解方法的描述部

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 158,810
精华内容 63,524
关键字:

学生输出的方式有哪些