C++指针单元习题(三)
代码如下:
/*
week15 C++指针单元习题:
通过链表的方式,计算学生的平均分。输出平均分及所有学生数据。
刘易行 2020年12月8日
*/
#include<iostream>
using namespace std;
struct Student
{
int Num;
float Score;
struct Student *next;
};
int n;
float AverageScore=0;
float aver;
int main()
{
double Sum;
struct Student *head,*p1,*p2;
n=0;
p1=p2=new Student;
cout<<"请输入学号和成绩,当输入学号为0时结束"<<endl;
cin>>p1->Num>>p1->Score;
head=NULL; //头指针初始化
while(p1->Num!=0)
{
n = n+1;
if(n ==1)
head = p1; //新结点作为第一个结点
else
p2->next = p1; // 把新结点连接到最后结点的后面
p2 = p1; //新结点作为最后一个结点
Sum+=p1->Score;
//cout<<"当前总分为"<<Sum<<endl; //用于测试程序
//cout<<"n="<<n<<endl; //用于测试程序
//cout << p1->Num<<", "<< p1->Score << endl;
p1 = new Student ;
cin >> p1->Num>> p1->Score;
}
AverageScore=Sum/n;
cout<<"平均分数为"<<AverageScore<<endl;
return 0;
}