C/PTA —— 14.结构体1(课内实践)
- 6-1 计算两个复数之积
- 6-2 结构体数组中查找指定编号人员
- 6-3 综合成绩
- 6-4 结构体数组按总分排序
6-1 计算两个复数之积
struct complex multiply(struct complex x, struct complex y)
{
struct complex product;
product.real = x.real * y.real - x.imag * y.imag;
product.imag = x.real * y.imag + x.imag * y.real;
return product;
}
6-2 结构体数组中查找指定编号人员
struct student fun(struct student* std, char* num)
{
struct student product;
for (int i = 0; i < 8; i++)
{
if (std[i].num[0] == num[0])
product = std[i];
}
return product;
}
6-3 综合成绩
double getAverage(Applicant* a)
{
double sum = 0.0;
sum = a->computational * 1.0 * 0.4 + a->humanistic * 1.0 * 0.5 + a->logical * 1.0 * 0.3 + a->presentation * 1.0 * 0.6 + a->scientific * 1.0 * 0.8;
return sum;
}
6-4 结构体数组按总分排序
void calc(struct student* p, int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 3; j++)
{
p[i].sum += p[i].score[j];
}
}
}
void sort(struct student* p, int n)
{
struct student tmp;
for (int i = 0; i < 4; i++)
{
for (int j = i+1; j < 5; j++)
{
if (p[i].sum < p[j].sum)
{
tmp = p[j];
p[j] = p[i];
p[i] = tmp;
}
}
}
}