永发信息网

学生的记录由学号和成绩组成,N名学生的数据在主函数中放入结构体数组a中,请编写函数fun,它的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。在主函数中调用函数fun,

答案:3  悬赏:40  手机版
解决时间 2021-08-23 19:36

1.        学生的记录由学号和成绩组成,N名学生的数据在主函数中放入结构体数组a中,请编写函数fun,它的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。在主函数中调用函数fun,并输出结果。

最佳答案

#include<stdio.h>
#include<string.h>


#define N 5
#define MAX 10


struct Student
{
 int _sid;
 double _score;
public:
 void ReadInfo(int sid,double score)
 {
  _sid=sid;
  _score=score;
 }


 void PrintOut()
 {
  printf("Id:%d\tScore:%lf\n",_sid,_score);
 }


 //取最小分数
 static Student GetLowestScore(Student students[],int length)
 {
  Student student;
  student._sid=students[0]._sid;
  student._score=students[0]._score;


  for(int i=1;i<length;++i)
  {
   if(students[i]._score<student._score)
   {
    student._sid=students[i]._sid;
    student._score=students[i]._score;
   }
  }
  return student;
 }
};


void main()
{
 printf("请输入%d个学生的成绩:\n",N);
 Student students[N];
 int id;
 double score;


 for(int i=0;i<N;++i)
 {
  printf("第%d个学生:\n",i+1);
  printf("学号:");
  scanf("%d",&id);
  printf("成绩:");
  scanf("%lf",&score);
  students[i].ReadInfo(id,score);
 }


 printf("最小成绩的学生情况是:\n");
 Student::GetLowestScore(students,N).PrintOut();
 getchar();
}

全部回答
数组的概念 (慢慢看吧)1.引例  求100个学生的平均成绩及超过平均成绩的人数。  如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1 To 100)。2.基本概念  数组:是同类型变量的一个有序的集合。     如:A(1 To 100),表示一个包含100个数组元素的名为A的数组。  数组元素: 即数组中的变量。用下标表示数组中的各个元素。  表示方法:数组名(P1,P2,……)    其中P1、P2表示元素在数组中的排列位置,称为“下标”。  如:A(3,2)代表二维数组A中第3行第2列上的那个元素。  数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。    VB中有一维数组、二维数组、……最多60维数组。  下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。     下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。3.数组声明  数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。  声明内容:数组名、类型、维数、数组大小。       一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。  静态数组:声明时确定了大小的数组。  动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需要用ReDim语句重新指出其大小。 使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。5.2 静态数组及声明1. 一维数组 静态一维数组的声明形式: Dim 数组名(下标) [As 类型]说明:(1)下标必须为常数,不可以为表达式或变量;    (2)下标下界最小为-32768,最大上界为32767;省略下界,其默认值为为0,一维数组的大小为:上界-下界+1    (3) 如果省略类型,则为变体型例: (1) Dim A(10) As Integer       声明了A是数组名、整型、一维数组、有11个元素,下标的范围是0~10。   (2) Dim B(-3 To 5) As String*3      声明了B是数组名、字符串型、一维数组、有9个元素,下标的范围是-3~5,每个元素最多存放3个字符。2.多维数组   静态多维数组的声明形式:   Dim 数组名(下标1[,下标2…]) [As 类型]  说明: (1)下标个数决定数组的维数,最多60维。      (2)每一维的大小=上界-下界+1;数组的大小=每一维大小的乘积。  例:Dim C(-1 To 5, 4) As Long    声明了C是数组名、长整型、二维数组、第一维下标范围为-1~5,第二维下标的范围是0~4,占据7x 5个长整型变量的空间。3.注意事项  (1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n 语句可重新设定数组的下界,如Option Base 1。  (2) 在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。  (3) 在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。5.3 动态数组及声明1. 动态数组的建立与声明  建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是:  ReDim 数组名(下标1[,下标2…]) [As 类型]  其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致。  例: Dim D() As Single      Sub Form_Load()     ……      ReD

#include <stdio.h> 不知道你是需要用什么语言写,所以就用C语言写了一个,数据由手动输入,如果你要读文件可以自行修改下,fun函数满足要求,代码如下:

#define numbersize 20 #define maxsize 100

struct student {  char studentId[numbersize];  int score; };

void fun(student * a,int length,int *n) {  int min = a[0].score,i;  for(i = 0, *n = 0; i < length; i++)   if( min > a[i].score )    *n = i; }

int main() {   student A[maxsize];  int n,min,i;  printf("please input the number of student:");  scanf("%d",&n);  for( i = 0; i < n; i++)  {   printf("please input the %d student\'s id:",i+1);   scanf("%s",&A[i].studentId);   printf("please input the %d student\'s score:",i+1);   scanf("%d",&A[i].score);  }  fun(A,n,&min);  printf("student\'s id: %s\nstudent\'s score: %d",A[min].studentId,A[min].score);  return 0; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天心区长沙日出东方幼儿园哪位知道具体地址啊
为什么我的5320时常黑屏
这个女明星叫什么名字?谁能告诉我?
时控插座谁有卖?
为嘛我手机老是一下子变无声模式,一下变标准
QQ炫舞结婚戒指不一样
我的问问只能用于手机吗?
明天就是他的生日了、做为女朋友、还没想好送
临澧县常德临澧县人民医院地址在什么地方,想
友友们分享些好听的歌来听听咯,谢谢!
iPhone4现在是不是只能去香港预定
现在企鹅的心情怎么掉的这么快啊?
曾经喜欢过,也被伤害过的人。现在要怎么面对
人死了以后QQ怎么办啊
手机打不开信息内容是什原因?
推荐资讯
什么东西看得见摸不着?
怎么刷新自己的装扮
樊城区襄樊翼之舞舞蹈培训(广场店)这个地址怎
QQ主菜单在哪里
怎么知道QQ餐厅是不是满效率
打开电脑后显示器显示不能启动,需要按小按钮
雨花区长沙红旺家庭旅馆(桂友路)在什么地方啊
上蔡县驻马店铂金纯K我想知道这个在什么地方
qq飞车暗风暴好不好,有没有必要改装
美兰舞曲渴望你的爱;怎下到我空间
重庆北到南充的火车路线最近怎走?
DNF鬼剑转剑魂好还是鬼泣好,说明理由以及优
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?