各位帮帮忙用C语言编写

定义一个student结构体类型变量信息,包括学号num,姓名name,英语成绩eng,数学成绩math,物理成绩phy,和平均成绩aver。请编写一个程序,能够打印包括学生信息在内的三门课程和平均成绩

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
typedef struct _Student
{
	char name[20];
	int age;
	int stuNum;
	int Cscore;
	int Mscore;
	int Escore;
	int Gscore;
	double AvgScore;
}Student;
//定义链表的结点
typedef struct _Node
{
	Student stu;//学生-数据域
	struct _Node* pNext;//指向下一个结点的指针
}Node;
//定义头结点
Node* g_pHead = NULL;
void modifyStudent(){

}
void printStudent(){
	
}
void saveStudent(){
	
}
void readStudent(){
	
}
int countStudent(){
	
}
Node* findStudent(){
	
}
void deleteStudent(){
	
}
//录入学生信息
void inputStudent()
{
	//创建一个结点-动态开辟
	Node* pNewNode = (Node*)malloc(sizeof(Node));
	pNewNode->pNext = NULL;
	//头插法
	if (g_pHead == NULL)//原来什么也没有
	{
		g_pHead = pNewNode;
	}
	else
	{
		pNewNode->pNext = g_pHead;
		g_pHead = pNewNode;
	}
	printf("请输入学生姓名:\n");
	scanf("%s", pNewNode->stu.name);//name是数组名,不用加&
	printf("请输入学生年龄:\n");
	scanf("%d", &pNewNode->stu.age);
	printf("请输入学生的学号:\n");
	scanf("%d", &pNewNode->stu.stuNum);
	printf("请输入学生的C成绩:\n");
	scanf("%d", &pNewNode->stu.Cscore);
	printf("请输入学生的数学成绩:\n");
	scanf("%d", &pNewNode->stu.Mscore);
	printf("请输入学生的英语成绩:\n");
	scanf("%d", &pNewNode->stu.Escore);
	pNewNode->stu.Gscore = pNewNode->stu.Cscore + pNewNode->stu.Mscore + pNewNode->stu.Escore;
	pNewNode->stu.AvgScore = pNewNode->stu.Gscore / 3.0;
	printf("录入完成!\n");
	system("pause");
	system("cls");//清屏
}
//主菜单
void mainMenu()
{
	printf("*\t学生成绩管理系统\t*\n");
	printf("——————————————------\n");
	printf("*\t1.输入学生信息\t\t*\n");
	printf("*\t2.显示学生信息\t\t*\n");
	printf("*\t3.保存学生信息\t\t*\n");
	printf("*\t4.读取学生信息\t\t*\n");
	printf("*\t5.统计记录\t\t*\n");
	printf("*\t6.查找学生信息\t\t*\n");
	printf("*\t7.更新学生信息\t\t*\n");
	printf("*\t8.删除学生信息\t\t*\n");
	printf("*\t9.学生成绩排序\t\t*\n");
	printf("*\t0.退出系统\t\t*\n");
	printf("——————————————------\n");
}

//键盘输入
void keyDown()
{
	char ch = _getch();
	switch (ch)
	{
	case '1'://录入
		inputStudent();
		break;
	case '2'://打印
		printStudent();
		break;
	case '3'://保存
		saveStudent();
		break;
	case '4'://读取
		readStudent();
		break;
	case '5'://统计
		printf("学生总人数为:%d\n", countStudent());
		system("pause");
		system("cls");
		break;
	case '6'://查找
	{
		Node* p = findStudent();
		if (p != NULL)
		{
			printf("学号:%d\t姓名:%s\t年龄:%d\tC成绩:%d\t数学成绩:%d\t英语成绩:%d\n", p->stu.stuNum, p->stu.name, p->stu.age, p->stu.Cscore, p->stu.Mscore, p->stu.Escore);
		}
		else
		{
			printf("没有找到该学生。\n");
		}
		system("pause");
		system("cls");
		break;
	}
	case '7'://修改
		modifyStudent();
		break;
	case '8'://删除
		deleteStudent();
		break;
	case '9'://排序
	case '0'://退出
		exit(0);
		break;
	default:
		printf("输入错误,请重新输入。\n");
		system("pause");
		system("cls");
		break;
	}
}
int main(void)
{
	while (1)
	{
		mainMenu();
		keyDown();
	}
	return 0;
}

 

typedef struct _student
{
    int nid;
    char name[20];
    float yyscore;
    float sxscore;
    float wlscore;
    float avg;
}student;

void main()
{
    student stu[100];
    int i,n;
    printf("请输入学生数量:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个学生的学号、姓名、英语、数学和物理成绩:",i+1);
        scanf("%d %s %f %f %f",&stu[i].nid,stu[i].name,&stu[i].yyscore,&stu[i].sxscore,&stu[i].wlscore);
        stu[i].avg = (stu[i].yyscore+stu[i].sxscore+stu[i].wlscore]/3;
    }
    for(i=0;i<n;i++)
        printf("学号:%d 姓名:%s 英语:%f 数学:%f 物理:%f 平局分:%f\n",stu[i].nid,stu[i].name,stu[i].yyscore,stu[i].sxscore,stu[i].wlscore,stu[i].avg);
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632