这是怎么回事,内存分配太多?

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;

struct student
{
string name;
int score;
int pingyi;
char leader;
char west;
int paper;
};
int main()
{
freopen("p1001.in", "r", stdin);
int num;
cin >> num;//学生个数
int ans[num+1];//奖学金
struct student stu[num+1];//学生
memset(ans, 0, sizeof(ans));//初始化奖学金为零

for(int i=1;i<=num;i++)//读入学生信息
{
cin >> stu[i].name;
cin >> stu[i].score;
cin >> stu[i].pingyi;
cin >> stu[i].leader;
cin >> stu[i].west;
cin >> stu[i].paper;

}
for(int j=1;j<=num;j++)
{
if(stu[j].score > 80 && stu[j].paper >=1)
ans[j] += 8000;
if(stu[j].score > 85 && stu[j].pingyi > 80)
ans[j] += 4000;
if(stu[j].score > 90)
ans[j] += 2000;
if(stu[j].west == 'Y' && stu[j].score > 85)
ans[j] += 1000;
if(stu[j].pingyi > 80 && stu[j].leader == 'Y')
ans[j] += 850;
}
int max = 0;//记录最大值
int flag;//记录第几个学生最大
for(int i=1;i<=num;i++)
{
if(ans[i] > max)
{
max = ans[i];
flag = i;
}
}
int total=0;//记录N个学生奖学金总数
for(int j=1;j<=num;j++)
total += ans[j];

cout << stu[flag].name << endl;
cout << max << endl;
cout << total << endl;

return 0;
}

0 条评论

目前还没有评论...

信息

ID
1001
难度
5
分类
模拟 点击显示
标签
递交数
39063
已通过
12711
通过率
33%
被复制
121
上传者