【C语言】有n个结构体变量,内含学生号, 姓名和三门课成绩。要求输出平均成绩最高学生的信息。

//有n个结构体变量,内含学生号, 姓名和三门课成绩。要求输出平均成绩最高学生的信息。
#include <stdio.h>
#define N 3
struct Student
{
	int num;
	char name[20];
	float socre[3];
	float aver;
};
void input(struct Student stu[])
{
	int i;
	printf("Çë·Ö±ðÊäÈë¸÷ѧÉúµÄÐÅÏ¢£ºÑ§ºÅ£¬ÐÕÃû£¬ÈýÃſγɼ¨\n");
	for(i=0;i<N;i++)
	{
		scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].socre[0],&stu[i].socre[1],&stu[i].socre[2]);
		stu[i].aver=(stu[i].socre[0]+stu[i].socre[1]+stu[i].socre[2])/3;
	}
}
struct Student max(struct Student stu[])
{
	int i,m=0;
	for(i=0;i<N;i++)
		if(stu[i].aver>stu[m].aver)
			m=i;
	return stu[m];
}
void print(struct Student stud)
{
	printf("\n³É¼¨×î¸ßµÄѧÉúÊÇ£º\n");
	printf("ѧºÅ£º%d\nÐÕÃû£º%s\nÈýÃſγɼ¨£º%5.1f,%5.1f,%5.1f\nƽ¾ù³É¼¨£º%6.2f\n",stud.num,stud.name,stud.socre[0],stud.socre[1],stud.socre[2],stud.aver);
}
int main()
{
	struct Student stu[N],*p=stu;
	input(p);
	print(max(p));
	return 0;
}

时间: 2024-10-24 22:58:20

【C语言】有n个结构体变量,内含学生号, 姓名和三门课成绩。要求输出平均成绩最高学生的信息。的相关文章

c语言:通过指向结构体变量的指针变量输出结构体变量中成员的信息

通过指向结构体变量的指针变量输出结构体变量中成员的信息. 解:程序: #include<stdio.h> #include<string.h> int main() { struct Student { long int num; char name[20]; char sex[10]; float score; }; struct Student stu_1;//定义struct Student类型的变量stu_1 struct Student *p; p = &stu_

OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-while) 跳跃(discard, return, break, continue) 6.1函数定义   着色器是由一系列全局声明和函数定义组成的.函数声明规范如下: // prototype returnType functionName (type0 arg0, type1 arg1, ...,

C语言中两个相同类型的结构体变量之间是可以相互直接赋值的

C语言中,在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,而两个同类型的结构体变量属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的.所以,在C语言中两个相同类型的结构体变量之间是可以相互赋值的.但是要注意指针的浅层复制问题. 下面是一个简单的验证代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdlib.h> struct test

C语言中结构体变量之间赋值

最近,我阅读了某新员工小刘写的C语言代码,发现其对结构体变量之间的赋值不是很熟悉.对于两个相同类型的结构体变量,他均采用的是逐个成员变量直接赋值的形式.如下的代码示例: 如上代码所示,tEmployeeInfoSrc和tEmployeeInfoDest是两个类型相同的结构体变量,tEmployeeInfoSrc(源结构体变量)中的各个成员变量已赋初值.现要使tEmployeeInfoDest(目的结构体变量)中的各个成员变量的值与tEmployeeInfoSrc中对应成员变量的值相同.小刘采用的

语言中结构体变量和结构体类型的定义

1.结构体类型定义 定义方式1: Typedef struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 } *LinkList; 定义方式2: struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 }: Typedef struct  LNode  *LinkList; 以上两个定义方式是等价的,是将*LinkList定义

C语言结构体变量私有化

操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 将结构体的定义放入源码件中实现,头文件只放声明. 比如有如下结构体(obj.h文件中定义): struct Obj { int id; char *name; }; typedef struct Obj Obj; 并定义如下变量: Obj *o; 正常情况下,可以通过如下代码正常访问结构体中的变量:

c语言:用结构体变量输出学生的信息,包括学号,姓名,性别。

用结构体变量输出学生的信息,包括学号,姓名,性别. 解:程序: #include<stdio.h> int main() { struct Student { long int num; char name[20]; char sex[5]; char addr[20]; }a = {1010,"yaoyao","Man","xi'an"};//定义结构体变量a并初始化 printf("num:%ld\nname:%s\ns

C语言 指向结构体变量的指针

一个指向变量的指针表示的是占内存中起始位置 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组 定义结构体变量的指针: //假设已有一个结构体名为Student struct Student *pStruct // 结构体类型 * 指针名; 通过指针来引用结构体中的成员,有三种方式 demo: 1 # include <stdio.h> 2 # include <stdlib.h> 3 /* 4 1.使用->引用结构体成员 5

C语言中宏的运用------利用宏技术可以简化对某结构体变量的访问

利用宏技术可以简化对某结构体变量的访问 有时候,为了方便访问结构变量中的某个元素,我们可以利用宏去进行代码的替换. #include<stdio.h>#include<stdlib.h> struct data{ int len; int show;}; struct data Data;#define LEN Data.len  //为了访问而定义的宏 int main(){ LEN = 5; printf("%d\n",Data.len); Data.len