#include "stdafx.h"
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
char name[20];
int termgrade;
int classgrade;
char dry;
char west;
int paper;
};
int main(void)
{
int x;
scanf("%d", &x);
while (x--)
{
int n, i, k;
int total=0;
int max = -1;
int num = 0;
scanf("%d", &n);
student* stu = (student*)malloc(n * sizeof(student));
int* money = (int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++)
{
money[i] = 0;
scanf("%s %d %d %c %c %d", &stu[i].name, &stu[i].termgrade, &stu[i].classgrade, &stu[i].dry, &stu[i].west, &stu[i].paper);
if (stu[i].termgrade>80 && stu[i].paper>0)
{
money[i] += 8000;
}
if (stu[i].termgrade>85 && stu[i].classgrade>80)
{
money[i] += 4000;
}
if (stu[i].termgrade>90)
{
money[i] += 2000;
}
if (stu[i].termgrade>85 && stu[i].west == 'Y')
{
money[i] += 1000;
}
if (stu[i].classgrade>80 && stu[i].dry == 'Y')
{
money[i] += 850;
}
total += money[i];
}
for (k = 0; k < n; k++)
{
if (money[k] > max)
{
max = money[k];
num = k;
}
}
printf("%s\n%d\n%d\n", stu[num].name, max, total);
free(stu);
free(money);
}
}
这里想为stu结构体数组和money数组分配n个元素,不能直接int money[n],用malloc函数分配n*sizeof(student)或n *sizeof(money)这么大的空间