OJ算法题共10个篇幅,不定期在篇幅里增加题目(篇幅不增加)。
个人水平有限,如有错误和可以改进的地方,非常期待批评指正,谢谢!
题目描述
求出 A,B,C
中第二大的数
输入
输入一行,包括三个不同的整数 A,B,C
(数据保证在 int 范围内)
输出
输出一行,一个整数,其中第二大的数
输入样例
4 8 12
输出样例
8
#include<stdio.h>
int main(){
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a<b){
d=a;
a=b;
b=d;
}
if(a<c){
d=a;
a=c;
c=d;
}
if(b<c){
d=b;
b=c;
c=d;
}
printf("%d",b);
return 0;
}
题目描述
小w最近觉得学号和一个人的运气存在着某种特殊的联系,这种神秘的力量冥冥之中在发挥着作用。
他定义了一个不超过8位的学号n的幸运值L的计算方法:首先定义一个数的个位为第1位,十位为第2位,以此类推。L=各位上的数字与其位数的乘积之和,即学号n第i位上的数字为ai
对L的贡献为i∗ai
。
例:若学号n=1737400,则它对应的L=0*1+0*2+4*3+7*4+3*5+7*6+1*7=104。
现在请你帮小w计算一个给定学号n对应的幸运值L。
输入
一个整数n(0<=n<10^9)
输出
一个整数L,为n对应的幸运值
输入样例
16066666
输出样例
140
#include<stdio.h>
int main()
{
int n,b;
int L=0,i;
scanf("%d",&n);
for(i=1;n>0;i++){
b=n%10;
n=n/10;
L=L+b*i;
}
printf("%d",L);
return 0;
}
题目描述
给你一个形如"a/b"的分数,请你用小数近似表示,保留两位。
输入
输入仅有一行,包括一个形如"a/b"的分数,其中a和b均为不大于100000的正整数。
输出
输出一行,包括分数所对应的小数,保留两位小数。
输入样例
2/3
输出样例
0.67
Hint
注意 scanf 格式控制串的使用,是不是可以 scanf("%d/%d", &a, &b) 呢
#include<stdio.h>
int main()
{
int n,a,b,c;
scanf("%d",&n);
a=n/100;
b=(n/10)%10;
c=n%10;
printf("%d\n",c*100+b*10+a);
return 0;
}
题目描述
面对这么多成绩,助教很是头疼呢[悲伤]。好在宋老师说只要给成绩分级就行啦!那么,就由你来帮帮助教吧O(∩_∩)O
90<=X<=100 A
80<=X<90 B
70<=X<80 C
60<=X<70 D
X<60 E
对于那些不合法的成绩,输出wrong就可以啦!(不合法是指低于0分或者高于100分)
输入
多组输入输出
每组一行,为成绩n
输出
成绩对应的等级或者wrong
输入样例
90
80
70
60
50
-1
输出样例
A
B
C
D
E
wrong
#include<stdio.h>
int main(){
int n,a=0;
while(scanf("%d",&n)!=EOF){
if(n>=0&&n<=100){
a=n/10;
switch(a){
case 10:
case 9:printf("A\n");break;
case 8:printf("B\n");break;
case 7:printf("C\n");break;
case 6:printf("D\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("E\n");break;
}
}
else
printf("wrong\n");
}
return 0;
}
题目描述
公公由于某些不知名(zuo)的(si)原(tai)因(duo)终于患上了偏头痛,说话也成了问题,每次张口都只能说出一段无意义的字符orz。
有一天wjh找到了他,问了他一个问题,公公很想回答,因为这关系到他的一(qi)生(mo)幸(cheng)福(ji),但他太紧张了以至于说不出想说的//\\^'\n#s)\tF*//\r了……
wjh表示很同情,于是说那你给我写出来吧。但大家都知道公公并不会使用转义符,于是他只能求助你们啦~
wjh还表示并不能听懂,于是某FBBBBBB自告奋勇回答公公的话,他说出了http://i.youku.com/microhhh 的字符,但是FB转义符也早已荒废,于是又只能靠你们辣~~
输入
这道题不需要输入。
输出
输出指定的两串字符,中间以空行隔开
//\\^'\n#s)\tF*//\r
输入样例
无
输出样例
//\\^'\n#s)\tF*//\r
#include<stdio.h>
int main(){
printf("\/\/\\\\\^\'\\n\#s\)\\tF\*\/\/\\r\n\nhttp://i.youku.com/microhhh");
return 0;
}
题目描述
柯南在追捕犯人的时候掉入了没有井盖的深井,万幸他有阿笠博士发明的吸盘,但吸盘在掉下来的时候摔坏了,他每个小时能爬上一段距离。但在他每小时休息的一瞬间里会滑下一段距离,柯南需要编写代码来判断在自己能否爬出深井以及需要的时间,于是柯南开始敲代码。
输入
n组测试数据。
第一行为一个整数n,表示组数
第二行为一个整数a,表示井的深度。
第三行为一个整数b,表示柯南每小时爬的距离。
第四行为一个整数c,表示柯南每小时滑下的距离。
n,a,b,c都在int范围内。
输出
每行输出一个结果。
若不能爬出深井,则输出"fail",
若能爬出深井,则输出爬出深井需要的时间。
输入样例
3
10 3 2
10 4 4
25 7 3
输出样例
8
fail
6
#include<stdio.h>
int main(){
int n,a,b,c,d,e;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d%d%d",&a,&b,&c);
if((b-c)<=0){
printf("fail\n");
}
else{
a=a-b;
e=a%(b-c);
d=a/(b-c);
if(e>0)
d++;
printf("%d\n",++d);
}
}
}
return 0;
}