习题9-2 计算两个复数之积
本题要求实现一个计算复数之积的简单函数。
函数接口定义:
struct complex multiply(struct complex x, struct complex y);
其中struct complex是复数结构体,其定义如下:
struct complex{int real;int imag;};
裁判测试程序样例:
#include <stdio.h>struct complex{int real;int imag;};struct complex multiply(struct complex x, struct complex y);int main(){struct complex product, x, y;scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag);product = multiply(x, y);printf("(%d+%di) * (%d+%di) = %d + %di\n",x.real, x.imag, y.real, y.imag, product.real, product.imag);return 0;}/* 你的代码将被嵌在这里 */
输入样例:
3 4 5 6
输出样例:
(3+4i) * (5+6i) = -9 + 38i
解题思路:复数乘法就点乘+合并同类项。;
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;}
运行结果:
| Case | Hint | Result | Run Time | Memory |
|---|---|---|---|---|
| 0 | sample等价,全正数输入 | Accepted | 2 ms | 384 KB |
| 1 | 全负数输入,输出有0 | Accepted | 2 ms | 228 KB |
| 2 | 全零输入 | Accepted | 2 ms | 228 KB |
习题9-6 按等级统计学生成绩
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。
函数接口定义:
int set_grade( struct student *p, int n );
其中p是指向学生信息的结构体数组的指针,该结构体的定义为:
struct student{int num;char name[20];int score;char grade;};
n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。
裁判测试程序样例:
#include <stdio.h>#define MAXN 10struct student{int num;char name[20];int score;char grade;};int set_grade( struct student *p, int n );int main(){ struct student stu[MAXN], *ptr;int n, i, count;ptr = stu;scanf("%d\n", &n);for(i = 0; i < n; i++){scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);}count = set_grade(ptr, n);printf("The count for failed (<60): %d\n", count);printf("The grades:\n");for(i = 0; i < n; i++)printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);return 0;}/* 你的代码将被嵌在这里 */
输入样例:
1031001 annie 8531002 bonny 7531003 carol 7031004 dan 8431005 susan 9031006 paul 6931007 pam 6031008 apple 5031009 nancy 10031010 bob 78
输出样例:
The count for failed (<60): 1The grades:31001 annie A31002 bonny B31003 carol B31004 dan B31005 susan A31006 paul C31007 pam C31008 apple D31009 nancy A31010 bob B
解题思路:本题主要就是根据 score 对结构体的 grade 进行赋值,同时函数 set_grade 进行
运行结果:
| Case | Hint | Result | Run Time | Memory |
|---|---|---|---|---|
| 0 | sample等价 | Accepted | 3 ms | 360 KB |
| 1 | all failed, n超过10 | Accepted | 3 ms | 296 KB |
| 2 | all A | Accepted | 3 ms | 256 KB |
| 3 | all B | Accepted | 3 ms | 384 KB |
| 4 | all C | Accepted | 3 ms | 256 KB |
