7-1 分段函数求值
分数 10
全屏浏览题目
切换布局
作者 王和兴
单位 东北大学秦皇岛分校
计算下列分段函数f(x)的值。
f(x)={x+3x−2x≥0x<0
输入
在一行中给出实数x。
输出
在一行中按“f = result”的格式输出计算结果,要求保留两位小数位数。结尾有换行。
输入样例
10
输出样例
f = 13
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. double x; 6. cin>>x; 7. if(x>=0) 8. { 9. cout<<"f = "<<x+3<<endl; 10. } 11. if(x<0) 12. { 13. cout<<"f = "<<x-2<<endl; 14. } 15. return 0; 16. }
7-1 统计各类字符数量并输出字母
分数 10
全屏浏览题目
切换布局
作者 周强
单位 青岛大学
对于输入的一行字符,统计其中各类字符的数量,并将其中的字母大小写互换后输出。
输入格式:
在一行内输入各类字符(行末以换行符结束),字符总数不少于1个、不超过2000个。
输出格式:
输出为两行:
先按照输入的顺序,将其中的字母大小写互换后,在第一行输出,
再统计输入的各类字符数量,按照 letters:<l>, digits:<d>, spaces:<s>, others:<o>.
的格式在第二行输出。
注意
- 统计字符数量,不包含行末输入的换行符;
- 上述格式中
<l> <d> <s> <o>
分别表示字母、数字、空格、其它字符的数量,输出时以实际数量代替; - 在第一行只输出大小写互换后的字母,不输出其它字符;
- 要严格按照规定格式输出,不能随意增减空格、换行等字符。
输入样例:
ABC xyz 123 ?!
输出样例:
1. abcXYZ 2. letters:6, digits:3, spaces:3, others:2.
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. int l=0,d=0,s=0,o=0; 6. string n; 7. getline(cin,n); 8. int len=n.length(); 9. for(int i=0;i<len;i++) 10. { 11. if((n[i]>='A'&&n[i]<='Z')||(n[i]>='a'&&n[i]<='z')) 12. { 13. l++; 14. } 15. else if(n[i]>='0'&&n[i]<='9') 16. { 17. d++; 18. } 19. else if(n[i]==' ') 20. { 21. s++; 22. } 23. else 24. { 25. o++; 26. } 27. if(n[i]>='A'&&n[i]<='Z') 28. { 29. cout<<(char)(n[i]-'A'+'a'); 30. } 31. if(n[i]>='a'&&n[i]<='z') 32. { 33. cout<<(char)(n[i]-'a'+'A'); 34. } 35. } 36. cout<<endl; 37. cout<<"letters:"<<l<<", digits:"<<d<<", spaces:"<<s<<", others:"<<o<<"."<<endl; 38. return 0; 39. }
7-2 方阵对角线元素求和及计数
分数 10
全屏浏览题目
切换布局
作者 周强
单位 青岛大学
对输入的一个N*N
的方阵,求其两条对角线上的元素之和及非零元素的数量。
输入格式:
第一行输入一个不超过20的正整数N
,
在接下来的N
行中,依次输入方阵的每一行的N
个元素,方阵元素为绝对值不超过1000的整数,中间以空格间隔。
输出格式:
在一行中以sum = <s>, count = <c>.
的格式输出方阵两对角线上的元素之和以及非零元素的数量,其中<s>
和<c>
分别表示元素之和
、非零元素数量
,输出时以实际数量替换。
提示:(1)两条对角线的交叉元素不重复计算;(2)严格按规定格式输出,不得随意增删空格、换行等字符。
输入样例1:
1. 4 2. 1 2 3 4 3. 1 2 3 4 4. 0 1 2 3 5. 0 1 2 3
输出样例1:
sum = 16, count = 7.
输入样例2:
1. 5 2. 1 2 3 2 1 3. 1 2 3 2 1 4. 1 2 3 2 1 5. 1 2 3 2 1 6. 1 2 3 2 1
输出样例:
sum = 15, count = 9.
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. int n,count=0,sum=0; 6. cin>>n; 7. int a[n][n]; 8. for(int i=0;i<n;i++) 9. { 10. for(int j=0;j<n;j++) 11. { 12. cin>>a[i][j]; 13. } 14. } 15. for(int k=0;k<n;k++) 16. { 17. if(a[k][k]!=0) 18. { 19. count++; 20. } 21. sum=sum+a[k][k]; 22. } 23. for(int k=0;k<n;k++) 24. { 25. if(a[k][n-1-k]!=0) 26. { 27. count++; 28. } 29. sum=sum+a[k][n-1-k]; 30. } 31. if(n%2!=0) 32. { 33. sum=sum-a[n-1-n/2][n-1-n/2]; 34. if(a[n-1-n/2][n-1-n/2]!=0) 35. { 36. count=count-1; 37. } 38. } 39. cout<<"sum = "<<sum<<", count = "<<count<<"."<<endl; 40. return 0; 41. }
7-3 求幂之和
分数 10
全屏浏览题目
切换布局
作者 颜晖
单位 浙大城市学院
本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
输入格式:
输入在一行中给出正整数n(≤10)。
输出格式:
按照格式“result = 计算结果”输出。
输入样例:
5
输出样例:
result = 62
1. #include<bits/stdc++.h> 2. using namespace std; 3. int f(int n) 4. { 5. if(n==1) 6. { 7. return 2; 8. } 9. else 10. { 11. return pow(2,n)+f(n-1); 12. } 13. } 14. int main() 15. { 16. int n; 17. cin>>n; 18. cout<<"result = "<<f(n)<<endl; 19. return 0; 20. }
7-5 学生成绩排序
分数 10
全屏浏览题目
切换布局
作者 张泳
单位 浙大城市学院
假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息。如果平均分相同,按输入的先后顺序排列。
输入格式:
输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、三门课程成绩(整数)。
输出格式:
输出从高到低排序后的学生信息,包括:学号、姓名、平均分(保留两位小数)。
输入样例:
1. 3 2. 101 Zhang 78 87 85 3. 102 Wang 91 88 90 4. 103 Li 75 90 84
输出样例:
1. 102,Wang,89.67 2. 101,Zhang,83.33 3. 103,Li,83.00
1. #include<bits/stdc++.h> 2. using namespace std; 3. struct student 4. { 5. int num; 6. string name; 7. double score[3]; 8. double avg; 9. }s[50]; 10. int main() 11. { 12. int n; 13. cin>>n; 14. for(int i=0;i<n;i++) 15. { 16. cin>>s[i].num>>s[i].name>>s[i].score[0]>>s[i].score[1]>>s[i].score[2]; 17. } 18. for(int i=0;i<n;i++) 19. { 20. s[i].avg=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3; 21. } 22. for(int i=1;i<n;i++) 23. { 24. if(s[i].avg<s[i-1].avg) 25. { 26. swap(s[i],s[i-1]); 27. } 28. } 29. for(int i=1;i<n;i++) 30. { 31. if(s[i].avg==s[i-1].avg&&s[i].num>s[i-1].num) 32. { 33. swap(s[i],s[i-1]); 34. } 35. } 36. for(int i=1;i<n;i++) 37. { 38. if(s[i].avg<s[i-1].avg) 39. { 40. swap(s[i],s[i-1]); 41. } 42. } 43. for(int i=1;i<n;i++) 44. { 45. if(s[i].avg==s[i-1].avg&&s[i].num>s[i-1].num) 46. { 47. swap(s[i],s[i-1]); 48. } 49. } 50. for(int i=1;i<n;i++) 51. { 52. if(s[i].avg<s[i-1].avg) 53. { 54. swap(s[i],s[i-1]); 55. } 56. } 57. for(int i=1;i<n;i++) 58. { 59. if(s[i].avg==s[i-1].avg&&s[i].num>s[i-1].num) 60. { 61. swap(s[i],s[i-1]); 62. } 63. } 64. for(int i=n-1;i>=0;i--) 65. { 66. cout<<s[i].num<<","<<s[i].name<<","<<fixed<<setprecision(2)<<s[i].avg<<endl;; 67. } 68. return 0; 69. }