题12:分数统计
给定一个百分制成绩T,将其划分为如下五个等级之一: 90~100为A,80~89为B,70~79为C,60~69为D,0~59为E
现在给定一个文件inp,文件中包含若干百分制成绩(成绩个数不超过100),请你统计五个等级段的人数,并找出人数最多的那个等级段,按照从大到小的顺序输出该段中所有人成绩(保证人数最多的等级只有一个)。要求输出到指定文件oup中。
输入格式
若干0~100的正整数,用空格隔开
输出格式
第一行为5个正整数,分别表示A,B,C,D,E五个等级段的人数 第二行一个正整数,表示人数最多的等级段中人数
接下来一行若干个用空格隔开的正整数,表示人数最多的那个等级中所有人的分数,按从大到小的顺序输出。
样例输入
100 80 85 77 55 61 82 90 71 60
样例输出
2 3 2 2 1 3
85 82 80
题13:猜测排名
5名选手A,B,C,D,E参加100米赛跑,赛前他们对结果作了如下预测: A说:我不是第一,C不是最后一名 B说:A是第一,我是第二 C说:B是第一,我不是第三 D说:C是第一,我是第二 E说:D是第一,我是第三
赛后发现每个人刚好说对了一半。请你编程求出比赛最终排名有哪些可能。
本题要求将结果输出到指定文件oup中。 输出:
输出最终排名,为ABCDE五个字母组成的一个排列,表示1~5名对应的选手。
说明
假设在你自己机器上的代码为: #include
#include
ofstream fout; fout.open(oup); @你的其它代码 fout.close(); }
int main() {
guess(\ return 0; }
你提交的代码应该是上面例子的红色部分
题14:欧拉函数
给定一个大于1,不超过2000000的正整数n,输出欧拉函数,phi(n)的值。 如果你并不了解欧拉函数,那么请参阅提示。
这是一道完善函数的题目,给定输入文件名inp和输出文件名oup,要求从输入文件中读取n,将结果输出到指定文件。
输入格式
在给定的输入文件中进行读入: 一行一个正整数n。
输出格式
将输出信息输出到指定的文件中: 一行一个整数表示phi(n)。
样例输入
输入文件example.in的内容为: 17
样例输出
输出文件example.out的内容为: 16
提示
欧拉函数phi(n)是数论中非常重要的一个函数,其表示1到n-1之间,与n互质的数的个数。显然的,我们可以通过定义直接计算phi(n)。 当然,phi(n)还有这么一种计算方法。
首先我们对n进行质因数分解,不妨设n=p1^a1 * p2^a2 * ... * pk^ak (这里a^b表示a的b次幂,p1到pk为k个互不相同的质数,a1到ak均为正整数),那么 phi(n)=n(1-(1/p1))(1-(1/p2))....(1-(1/pk)) 稍稍化简一下就是
phi(n)=n(p1-1)(p2-1)...(pk-1)/(p1*p2*...*pk)
计算的时候小心中间计算结果超过int类型上界,可通过调整公式各项的计算顺序避免(比如先做除法)!
题15:不同单词个数统计
编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。 说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。
输入格式:输入只有一行,即一个英文句子。
输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。 输入输出样例
样例输入
one little two little three little boys
样例输出
5
题16:打水问题
N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小。
输入格式
第一行两个正整数N M 接下来一行N个正整数Ti。 N,M<=1000,Ti<=1000
输出格式
最小的等待时间之和。(不需要输出具体的安排方案)
样例输入
7 3
3 6 1 4 2 5 7
样例输出
11
提示
一种最佳打水方案是,将N个人按照Ti从小到大的顺序依次分配到M个龙头打水。
例如样例中,Ti从小到大排序为1,2,3,4,5,6,7,将他们依次分配到3个龙头,则去龙头一打水的为1,4,7;去龙头二打水的为2,5;去第三个龙头打水的为3,6。 第一个龙头打水的人总等待时间 = 0 + 1 + (1 + 4) = 6 第二个龙头打水的人总等待时间 = 0 + 2 = 2 第三个龙头打水的人总等待时间 = 0 + 3 = 3 所以总的等待时间 = 6 + 2 + 3 = 11
题17:单词个数统计
编写一个程序,输入一个字符串(长度不超过80),然后统计出该字符串当中包含有多少个单词。例如:字符串“this is a book”当中包含有4个单词。
输入格式:输入一个字符串,由若干个单词组成,单词之间用一个空格隔开。 输出格式:输出一个整数,即单词的个数。 输入输出样例 用户输入数据样例: this is a book 系统输出数据如下: 4
题18:断案
公安人员审问甲、乙、丙、丁四个嫌疑犯,已确知,这四个人当中仅有一人是偷窃者,还知道这四个人的答话,要么完全诚实,要么完全说谎。在回答公安人员的问话中: 甲说:“乙没有偷,是丁偷的。” 乙说:“我没有偷,是丙偷的。” 丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷,我用的那东西是我家里的。” 请根据上述四人答话,判断谁是偷窃者。 输入格式:无输入。
输出格式:输出一个字符,表示偷窃者是谁,A表示甲,B表示乙,C表示丙,D表示丁。
题19:栅格打印问题
编写一个程序,输入两个整数,作为栅格的高度和宽度,然后用“+”、“-”和“|”这三个字符来打印一个栅格。
输入格式:输入只有一行,包括两个整数,分别为栅格的高度和宽度。 输出格式:输出相应的栅格。 输入输出样例
样例输入
3 2
样例输出
+-+-+ | | | +-+-+ | | | +-+-+ | | | +-+-+
题20:复数求和
从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出。 样例输入: 3 3 4 5 2 1 3 样例输出: 9+9i 样例输入: 7 1 2 3 4 2 5 1 8 6 4 7 9 3 7 样例输出: 23+39i
题21:字符串比较