- 博客(1)
- 收藏
- 关注
C语言编程训练-选择结构-成绩计算及等级转换
某计算机类考试分为笔试和上机测试,满分均为100分。总成绩由笔试成绩(60%)和上机成绩(40%)组成。如果总成绩在85-100分之间,则成绩等级为“优秀”;总成绩在70-85分之间,记为“良好”;总成绩在60-70,则为“及格”;总成绩在60分以下为“不及格”。
在键盘上输入笔试和上机成绩分数(记为整数),然后计算总成绩(记为整数,不考虑四舍五入)以及分数等级(不及格(fail)、及格(pass)、良好(good)和优秀(excellent));如果笔试或上机分数输入为负数或超过100分,则提示输入错误(wrong score)
测试样例1
输入:82 75
输出:
Writing score: 82
Testing score: 75
Final score is 79, the grade is good
测试样例2:
输入:82 120
Writing score: 82
Testing score: 120
Wrong input
测试样例3:
输入 70 -80
输出:
Writing score: 70
Testing score: -80
Wrong input
2024-03-22
C语言编程训练:递归-整数分解为若干个整数之和
【问题描述】
将一个正整数分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。
【输入形式】
每个输入包含一个测试用例,即正整数N (2<N≤30)。
【输出形式】
按递增顺序输出N的所有整数分解式子。
递增顺序是指:对于两个分解序列N1 ={n1 ,n2 ,…}和N2 ={m1,m2 ,…},若存在i使得n1 =m1 ,…,ni =mi ,但是ni+1 <mi+1,则N1 序列必定在N2 序列之前输出。每个式子由小到大相加,式子间用分号隔开,且每输出4个式子后换行。
【样例输入】
7
【样例输出】
7=1+1+1+1+1+1+1;
7=1+1+1+1+1+2;
7=1+1+1+1+3;
7=1+1+1+2+2
7=1+1+1+4;
7=1+1+2+3;
7=1+1+5;
7=1+2+2+2
7=1+2+4;
7=1+3+3;
7=1+6;
7=2+2+3
7=2+5;
7=3+4;
7有14种分解方法
2024-03-18
C语言编程训练:递归-整数分解为素因子乘积
【问题描述】
把一个大于4的合数分解为若干个素数乘积。素因子从小到大顺序输出。
【输入形式】
每个输入包含一个测试用例,即正整数N。
【输出形式】
按素因子从小到达顺序输出。
【样例输入】
24
【样例输出】
24=2*2*2*3
2024-03-14
C语言编程训练:递归-分解整数为若干个素数之和
【问题描述】
把一个大于4的整数分解为若干个素数之和。按照从小到大顺序输出,并统计有多少种分解方法。对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式)。用递归函数实现
【输入形式】
每个输入包含一个测试用例,即正整数N (2<N≤30)。
【输出形式】
按递增顺序输出N的所有分解式子。
【样例输入】
10
【样例输出】
10=2+2+2+2+2
10=2+2+3+3
10=2+3+5
10=3+7
10=5+5
10有5种素数和分解方法
2024-03-12
C语言编程训练:循环结构-计算时针分针夹角
【问题描述】
钟面上的时针和分针之间的夹角总是在0o~180o之间(包括0o和180o)。举例来说,在十二点的时候两针之间的夹角为0o,而在六点的时候夹角为180o,在三点的时候为90o。本题要解决的是计算12:00到11:59之间任意一个时间的夹角。
【输入形式】
输入的数据包括各种各样的情况。每一组测试数据包括两个数字:第一个数字代表小时(大于0小于等于12),第二数字代表分钟(在区间[0, 59])。两个数据皆为0则表述输入结束。
【输出形式】
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。
【样例输入】
12 0
12 30
6 0
3 0
0 0
【样例输出】
At 12:00 the angle is 0.0 degrees.
At 12:30 the angle is 165.00 degrees.
At 6:00 the angle is 180.0 degrees.
At 3:00 the angle
【样例说明】
时间输出中分钟宽度为2,分钟只有个位需要前面补一个零
2024-03-11
C语言编程训练:循环结构-求阶乘末尾零个数
【问题描述】
数的阶乘定义为 N!=1 x 2 x 3 x ... N。对于任何给定的整数N,Z(N)指以十进制表示的N!的末尾零的个数。例如10!=3628800,则Z(N)=2。
编写计算机程序有效的确定Z的值。
【输入说明】
输入的第一行是一个单个的确定的正整数T,他指名接下来的数字的个数,然后是 T 行,每一行包括一个确定的正整数N,1<=N<=1,000,000,000。
【输出说明】
对每一个数字N,产生一行输出包括一个非负整数Z(N)。
【样例输入】
6
3
60
100
1024
23456
8735373
【样例输出】
0
14
24
253
5861
2183837
【题目提示】
N!=1 x 2 x 3 x ... N,此问题在于求把 N!分解为素数的乘积时,2和5的幂是多少。末尾的零的个数等于2和5的指数中的较小的一个。故问 题导致对从1到N的正整数求是2k和5i型数倍数的数的个数。
例如:100!=1 x 2 x 3 x ... x 100, 其中5的倍数为5, 10, …, 95, 100共20个,20个中有25的倍数
2024-03-08
C语言编程训练-循环结构-求阶乘
数的阶乘定义为 N!=1 x 2 x 3 x ... x N。
编写计算机程序确定 N!并用科学记数法输出结果,精确到小数点后4位。
【输入说明】
输入的第一行是一个单个的确定的正整数T,他指名接下来的数字的个数,然后是T行,每一行包括一个确定的正整数N,1<=N<=1,000,000,000。
【输出说明】
对每一个数字N,产生一行输出N!计算结果,用科学记数法输出。
【输出形式】
8.3210e+81
【样例输入】
6
3
60
100
1024
23456
8735373
【样例输出】
6.0000e+0
8.3210e+81
9.3326e+157
5.4185e+2639
2.8156e+92324
1.5057e+56840962
【编程提示】
计算 N!=1 x 2 x 3 x ... x N
对等式两边取对数
log10(N!) = log10(1)+log10(2)+… + log10(N)=x=a.b
其中a为x的整数部分,b为x的小数部分。
则N!=10^x=c x10^a
2024-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人