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;}}}}