数据结构训练1(关于学生的姓名,学号,成绩分数的管理)

#include <iostream>
using namespace std;




struct stu
{
int No;  //学号
char name[8];  
char sex[4];
int co1;
int co2;
int co3;
int co4;
};


double allavg(stu s[],int n)  //第n个学生的总平均分
{
int  sum = 0, m = 0;


if (s[n].co1 != -1)
{
m++;
sum += s[n].co1;
}


if (s[n].co2 != -1)
{
m++;
sum += s[n].co2;
}


if (s[n].co3!= -1)
{
m++;
sum += s[n].co3;
}


if (s[n].co4 != -1)
{
m++;
sum += s[n].co4;
}


return (sum/m);
}




double sinavg(stu s[], int i, int n) //第n门课的平均分
{
int m = 0, sum = 0;
switch (i)
{
case 1:
for (int j = 0; j < n; j++)
{
if (s[j].co1 != -1)
{
m++;
sum += s[j].co1;
}
}
break;
case 2:
for (int j = 0; j < n; j++)
{
if (s[j].co2 != -1)
{
m++;
sum += s[j].co2;
}
}
break;
case 3:
for (int j = 0; j < n; j++)
{
if (s[j].co3 != -1)
{
m++;
sum += s[j].co3;
}
}
break;
case 4:
for (int j = 0; j < n; j++)
{
if (s[j].co4 != -1)
{
m++;
sum += s[j].co4;
}
}
break;


default:
break;
}


return (sum / m);
}






void bothavg(stu s[] ,int n )
{
cout << "学生平均分:" << endl;
cout << "学号"<<'\0'<<"姓名"<<'\0'<<"性别" << endl;
for (int i = 0; i < n; i++)
{
cout << s[i].No << '\0' << s[i].name << '\0';
cout<<s[i].sex<< '\0'<<allavg(s, i) << endl;
}


cout << "课程平均分:" << endl;
for (int i = 1; i < 5;i++)
{
cout << "课程" <<'\0'<< i <<'\0'<< sinavg(s,i, n) << endl;
}
}
int main()
{
const int max = 10;
int n = 4;
stu s[max] = {
{ 1, "张斌", "男", 67, 98, -1, 65 },
{ 8, "刘丽", "女", 98, -1, 90, 99 },
{ 34, "李英","女", -1, 56, -1, 65 },
{ 20, "陈华", "男", 68, 92, 64, -1 }
};
bothavg(s, n);


return 0;
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值