改进的学生结构指针数组.cpp

来自「一份学习c++必不可少的程序」· C++ 代码 · 共 50 行

CPP
50
字号
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
struct stu{
	int num,ch,ma,en;
	struct stu *next;
};
struct stu  *creat();
void main( )
{
	struct stu  *head,*p;
	float avc=0, avm=0, ave=0;
	int i=0;
	head= creat();  
	if(head == NULL)
		printf("没有生成链表。\n");	           
    else{
		for (p=head; p; p= p->next){
	        avc+=p->ch ;
            avm+=p->ma ;
			ave+=p->en ;
			i++;
		}
		printf("语文、数学、英语的平均成绩:\n");
		printf("%6.2f   %6.2f   %6.2f\n",avc/i,avm/i,ave/i);
	}
}
struct stu  *creat(){
	struct stu *head, *tail, *p;  
	int  ch,ma,en,num,i=1;  
	head = tail = NULL;
	printf("说明:结束时请输入0 0 0 0。\n");
	printf("输入第%d个学生的学号以及语文、数学、英语成绩:\n",i);
   scanf("%d%d%d%d",&num,&ch,&ma,&en);
   while (num){
       p = (struct stu *)malloc(sizeof(struct stu));
	   p->num = num;    
	   p->ch = ch;  
	   p->ma = ma;
	   p->en = en;
	   p->next = NULL;
       if(head == NULL) head = p;
	   else  tail->next = p;
	   tail = p;
	   i++;
	   printf("输入第%d个学生的学号以及语文、数学、英语成绩:\n",i);
	   scanf("%d%d%d%d",&num,&ch,&ma,&en);
   }
   return head; 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?