1. &time.hour,&time.minute,&time.second 2. time.second 3. time.minute++ 4. time.hour==24
1. t/3600 2. t/60%60 3. %02d:%02d:%02d
6-1 计算两个复数之积
分数 10
全屏浏览题目
切换布局
作者 张泳
单位 浙大城市学院
本题要求实现一个计算复数之积的简单函数。
函数接口定义:
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
1. struct complex multiply(struct complex x, struct complex y) 2. { 3. int real,imag; 4. real=x.real*y.real-x.imag*y.imag; 5. imag=x.imag*y.real+x.real*y.imag; 6. struct complex ans={real,imag}; 7. return ans; 8. }
6-2 空间两点间的距离
分数 5
全屏浏览题目
切换布局
作者 庄波
单位 滨州学院
已知空间中两点 A(x1,y1,z1) 和 B(x2,y2,z2) 之间的欧氏距离定义为:(x1−x2)2+(y1−y2)2+(z1−z2)2。
本题要求实现一个函数,计算平面上两点之间的欧氏距离,平面上点的坐标通过以下结构给出:
struct point { double x, y, z; };
函数接口定义:
// 计算并返回平面上两点 a 和 b 之间的欧氏距离 double distance(struct point a, struct point b);
裁判测试程序样例:
#include <stdio.h> #include <math.h> struct point { double x, y, z; }; void read_point(struct point *p); double distance(struct point a, struct point b); int main(void) { struct point p1, p2; read_point(&p1); read_point(&p2); printf("%f\n", distance(p1, p2)); return 0; } void read_point(struct point *p) { scanf("%lf %lf %lf", &p->x, &p->y, &p->z); } /* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
0 0 0 3 0 4
输出样例:
在这里给出相应的输出。例如:
5.000000
1. double distance(struct point a, struct point b) 2. { 3. double ans; 4. ans=sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2)); 5. return ans; 6. }
7-1 复数运算
分数 5
全屏浏览题目
切换布局
作者 李军
单位 陕西理工大学
复数是由两个实数分别作为实部和虚部构成的一个复合数,从另一个角度来说复数就是由两个实数构成的有序对,在C语言中适合用结构类型来表示复数。现在要求用结构类型
typedef struct { float x; float y; } Comp;
及其变量来表示与存储复数,编写程序实现复数的加减法运算。
输入格式:
在一行输入四个用空格分开的实数a1 b1 a2 b2
分别表示复数c1 = a1 + b1i
和c2 = a2 + b2i
输出格式:
复数的输出应符合数学上关于复数的表示习惯:实部与虚部都为零时只输出一个0.00; 有一个为零时,只输出非零的部分; 虚部为负时,例如3-4i
,应输出为3.00-4.00i
的形式,不要输出为3.00+-4.00i
。实部与虚部均保留2位小数,例如3.00-4.00i
输出在两行进行,第一行输出求和的结果,第二行输出求差的结果。
输入样例:
5.00 4.00 3.00 2.00
输出样例:
1. 8.00+6.00i 2. 2.00+2.00i
1. #include<bits/stdc++.h> 2. using namespace std; 3. struct complex_om 4. { 5. double x; 6. double y; 7. }com[2]; 8. int main() 9. { 10. double x1,y1,x2,y2; 11. cin>>x1>>y1>>x2>>y2; 12. com[0].x=x1+x2; 13. com[0].y=y1+y2; 14. com[1].x=x1-x2; 15. com[1].y=y1-y2; 16. for(int i=0;i<2;i++) 17. { 18. if(com[i].x==0&&com[i].y==0) 19. { 20. cout<<0.00<<endl; 21. } 22. else if(com[i].x==0) 23. { 24. cout<<fixed<<setprecision(2)<<com[i].y<<"i"<<endl; 25. } 26. else if(com[i].y==0) 27. { 28. cout<<fixed<<setprecision(2)<<com[i].x<<endl; 29. } 30. else if(com[i].y<0) 31. { 32. cout<<fixed<<setprecision(2)<<com[i].x<<fixed<<setprecision(2)<<com[i].y<<"i"<<endl; 33. } 34. else 35. { 36. cout<<fixed<<setprecision(2)<<com[i].x<<"+"<<fixed<<setprecision(2)<<com[i].y<<"i"<<endl; 37. } 38. } 39. return 0; 40. }
7-2 结构体应用:计算总分及最高分
分数 10
全屏浏览题目
切换布局
作者 ww
单位 中国计量大学现代科技学院
本题目要求先输入正整数N,然后输入N个类型为结构体stud的数组元素,计算每个学生的总分,输出每个学生的学号、姓名、三门课的成绩及总分;计算全部成绩的平均分并输出;输出总分最高同学的各项信息。
struct stud {
int num; //学号
char name[10]; //姓名
int score[3]; //3门课成绩
int sum; //总分
};
输入格式:
先输入不超过10的一个正整数N,然后每行输入一个学生的信息(学号、姓名、三门课成绩)。学号在整数范围内,姓名长度小于10个字符。
输出格式:
首先输出每个学生的信息(包括学号、姓名、三门课成绩、总分),数据项之间空1格,每人一行;再输出全部成绩的平均分;最后输出总分最高(假设没有相同总分)同学的学号、姓名、三门课成绩及总分,数据项之间空1格。
输入样例:
在这里给出一组输入。例如:
1. 4 2. 1 张三 81 85 82 3. 2 李四 82 78 74 4. 3 王五 85 74 90 5. 4 赵六 77 85 79
输出样例:
在这里给出相应的输出。例如:
1. 1 张三 81 85 82 248 2. 2 李四 82 78 74 234 3. 3 王五 85 74 90 249 4. 4 赵六 77 85 79 241 5. 总平均分=81.000000 6. 3 王五 85 74 90 249
1. #include<bits/stdc++.h> 2. using namespace std; 3. struct student 4. { 5. int num; 6. string name; 7. int score[3]; 8. int sum; 9. }; 10. int main() 11. { 12. int sum_all=0; 13. int n,max=-1; 14. cin>>n; 15. struct student information[100]; 16. for(int i=0;i<n;i++) 17. { 18. cin>>information[i].num>>information[i].name>>information[i].score[0]>>information[i].score[1]>>information[i].score[2]; 19. information[i].sum=information[i].score[0]+information[i].score[1]+information[i].score[2]; 20. } 21. for(int i=0;i<n;i++) 22. { 23. cout<<information[i].num<<" "<<information[i].name<<" "<<information[i].score[0]<<" "<<information[i].score[1]<<" "<<information[i].score[2]<<" "<<information[i].sum<<endl; 24. } 25. for(int i=0;i<n;i++) 26. { 27. sum_all=sum_all+information[i].sum; 28. if(information[max].sum<information[i].sum) 29. { 30. max=i; 31. } 32. } 33. double avg; 34. avg=(double)sum_all/(3*n); 35. cout<<"总平均分="<<fixed<<setprecision(6)<<avg<<endl; 36. cout<<information[max].num<<" "<<information[max].name<<" "<<information[max].score[0]<<" "<<information[max].score[1]<<" "<<information[max].score[2]<<" "<<information[max].sum; 37. }