1012. 平面上的三角形判断(1)

描述:

已知三个数a,b,c,请问以这三个数作为边长能否构成一个三角形?如果可以构成三角形则输出该三角形的面积,否则输出Error。

输入:

输入三个浮点数

输出:

如果这三个数能构成一个三角形,则计算并输出这个三角形的面积,保留2位小数。如果不能构成三角形就输出Error。

例子:

输入:

1
3.1 1.4 4.6

正确输出:

1
Error

输入:

1
36 39 53

正确输出:

1
702.00

提示:

提醒:在一个三角形中,任意两边之和大于第3边。

输入可能包含小数,建议用double。

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <math.h>
#include <stdio.h>
int main() {
double a,b,c;
scanf("%lf %lf %lf",&a,&b,&c);
if (a+b>c && a+c>b && b+c>a) {
double p = (a+b+c)/2;
printf("%.2lf\n",sqrt(p*(p-a)*(p-b)*(p-c)));
}else {
printf("Error\n");
}
return 0;
}

1035. 求整数的绝对值

描述:

输入一个整数,输出它的绝对值。

输入:

输入一个整数n。

输出:

输出该数的绝对值。

例子:

输入:

1
-2

正确输出:

1
2

题解:

1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
if(n<0){
printf("%d",-n);
}else{
printf("%d",n);
}
return 0;
}

1036. 符号属性判断

描述:

从键盘输入任意一个浮点数x,根据其符号属性,输出对应的y值。

规则:(1)x大于0,则y为1;(2)x等于0,则y为0;(3)x小于0,则y为-1。

img

输入:

输入一个浮点数x。

输出:

根据其符号属性输出y的值。

例子:

输入:

1
10

正确输出:

1
1

提示:

建议x取double类型

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main(){
double x;
scanf("%lf",&x);
if(x>0){
printf("1");
}else if(x == 0){
printf("0");
}else{
printf("-1");
}
return 0;
}

1038. 判断奇数偶数

描述:

输入一个正整数,判断该数是奇数还是偶数。

输入:

输入正整数。

输出:

如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。

例子:

输入:

1
8

正确输出:

1
even

题解:

1
2
3
4
5
6
7
8
9
10
11
12
#include <math.h>
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
if (n%2==0) {
printf("even\n");
}else {
printf("odd\n");
}
return 0;
}

1043. 分段函数3

描述:

输入浮点数x,计算并输出下面分段函数y的值(保留两位小数)。

imgimg

输入:

输入一个浮点数。

输出:

输出函数的值。保留2位小数。

例子:

输入:

1
10

正确输出:

1
3.16

提示:

建议变量类型使用 double

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <math.h>
#include <stdio.h>
int main() {
double x;
scanf("%lf", &x);
if (x<0) {
printf("%.2lf",(x+1)*(x+1)+x*2+1/x);
}else {
printf("%.2lf",sqrt(x));
}
return 0;

}

1044. 第几象限

提交数 18867通过数10678

时间限制:1000 MS

内存限制:32767KB

题目描述

历史提交

统计数据

描述:

从键盘输入两个整数表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。假设坐标点不会处于x轴和y轴上,也不会处在原点上。

输入:

输入两个整数表示一个坐标点。坐标点不会处于x轴和y轴上,也不会在原点。

输出:

输出该坐标点对应的象限,用数字1,2,3,4分别对应四个象限。

例子:

输入:

1
1 1

正确输出:

1
1

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main() {
int x,y;
scanf("%d %d",&x,&y);
if (x>0&&y>0) {
printf("1");
}else if (x<0&&y>0) {
printf("2");
}else if (x<0&&y<0) {
printf("3");
}else {
printf("4");
}
return 0;
}

1045. 圆内圆外

描述:

有一个半径为10的圆,圆心坐标为(0,0)。从键盘输入两个整数表示任意点的坐标(a,b),判断该点在圆内,在圆外,还是恰巧在圆周上。

输入:

输入整数a和b的值表示一个坐标点。

输出:

输出对应的信息。in表示在圆内,out表示在圆外,on表示在圆周上。

例子:

输入:

1
1 1

正确输出:

1
in

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main() {
int a,b;
scanf("%d %d",&a,&b);
if (a*a+b*b>100) {
printf("out");
}else if (a*a+b*b==100) {
printf("on");
}else {
printf("in");
}
return 0;

}

设计程序,判断给定的一个字符是否是英文字母(大小写都可以)。

输入:

任意输入一个字符。

输出:

判断该字符是否属于英文字母(大小写都可以),属于则输出YES,不属于则输出NO。

例子:

输入:

1
2

正确输出:

1
NO

输入:

1
a

正确输出:

1
YES

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main() {
char c;
scanf("%c", &c);
if(c <= 'z' && c >= 'a')
printf("YES\n");
else if(c <= 'Z' && c >= 'A')
printf("YES\n");
else
printf("NO\n");
return 0;

}

1047. 单个字母大小写互换

提交数 27076通过数12774

时间限制:1000 MS

内存限制:32767KB

题目描述

历史提交

统计数据

描述:

给定一个字符,如果该字符是小写字母,则输出其大写形式。如果该字符是大写字母,则输出其小写形式。若是其他字符则原样输出。如输入A,则输出a;如输入#,则依然输出#。

输入:

任意输入一个字符。

输出:

若输入为小写字母,则输出其对应大写形式;若输入为大写字母,则输出其对应小写形式;其余字符原样输出。

例子:

输入:

1
a

正确输出:

1
A

输入:

1
#

正确输出:

1
#

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main() {
char c;
scanf("%c", &c);
if (c>='a' && c<='z') {
printf("%c", c-32);
}else if (c>='A' && c<='Z') {
printf("%c", c+32);
}else {
printf("%c", c);
}
return 0;

}

1048. 计算个人所得税(老版)

描述:

上班后你就会成为光荣的纳税一族,已知老版的个人所得税有如下的计算公式,请你编写程序计算个人应缴的所得税。计税依据如下表所示。计税方法是:

(1)计税依据=(工资、津贴等各项收入应发数之和)-(公积金、失业保险、养老保险、医疗保险之和)

(2)全月应纳税所得额=计税依据-3500

(3)所得税额=全月应纳税所得额×适用税率-速算扣除数

例:某人当月计税依据为13500元,则其应交个人所得税税额为:(13500-3500)*25%-1005=1495元。

imgimg

输入:

输入一个浮点数表示某人本月的计税依据

输出:

输出本月应交的个人所得税,保留2位小数。

例子:

输入:

1
12000

正确输出:

1
tax=1145.00

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include<stdio.h>

int main()
{
double x,y;

scanf("%lf",&x);
x -= 3500;
if(x > 0 && x<=1500)
{
y=x*0.03-0;
}
else if(x>1500&&x<=4500)
{
y=x*0.1-105;
}
else if(x>4500&&x<=9000)
{
y=x*0.2-555;
}
else if(x>9000&&x<=35000)
{
y=x*0.25-1005;
}
else if(x>35000&&x<=55000)
{
y=x*0.3-2775;
}
else if(x>55000&&x<=80000)
{
y=x*0.35-5505;
}
else if(x > 80000){
y=x*0.45-13505;
}
printf("tax=%.2lf\n",y);
return 0;
}

1049. 单个字符类型判断

描述:

从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

输入:

输入一个字符。

输出:

如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。

例子:

输入:

1
1

正确输出:

1
digit

输入:

1
a

正确输出:

1
lower

输入:

1
#

正确输出:

1
other

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main() {
char c;
scanf("%c", &c);
if (c>='a' && c<='z') {
printf("lower");
}else if (c>='A' && c<='Z') {
printf("upper");
}else if (c>='0' && c<='9') {
printf("digit");
}else {
printf("other");
}
return 0;
}

1064. 三数求大值

描述:

从键盘输入三个整数x,y和z,求出最大数的值。

输入:

输入三个整数x,y和z。

输出:

输出最大数的值。

例子:

输入:

1
20 16 18

正确输出:

1
20

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int main() {
int x,y,z,max;
scanf("%d %d %d",&x,&y,&z);
max = y;
if (x>y) {
if (x>z) {
max = x;
}
}else {
if (y>z) {
max = y;
}else {
max = z;
}
}
printf("%d",max);
return 0;
}

1066. 鸡兔同笼(2)

描述:

一个笼子里关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

输入:

输入整数n和m,分别表示鸡兔的总数量及总腿数。

输出:

依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

例子:

输入:

1
5 16 

正确输出:

1
2 3

提示:

NO answer的判断条件:如果计算出来鸡的数目小于0,或者兔的数目小于0,或者总的腿数m不是偶数。

题解:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main() {
int n,m;
scanf("%d %d",&n,&m);
if ((4*n-m)/2<0||(m-2*n)/2<0||m%2!=0) {
printf("NO answer\n");
}else {
printf("%d %d",(4*n-m)/2,(m-2*n)/2);
}
return 0;

}

1070. 5和7的整倍数

描述:

判断输入的一个正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no

输入:

输入一个正整数。

输出:

如果是5和7的整倍数就输出yes,如果不是就输出no

例子:

输入:

1
35

正确输出:

1
yes

题解:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
if (num%5==0&&num%7==0) {
printf("yes\n");
}else {
printf("no\n");
}
return 0;

}

1078. 加油站加油

描述:

某加油站提供三种汽油和一种柴油,售价分别为:

90号汽油:5.14元/升

93号汽油:5.54元/升

97号汽油:5.90元/升

0号柴油:5.13元/升

另外,加油站还提供“自助加油”或“协助加油”两个服务等级,如果是自助加油则可以获得5%的优惠,如果是工作人员协助加油则只有2%的优惠。编程实现针对用户加油量、油的品种和服务类型,计算用户应付的金额。

输入:

输入三个数据,第一个浮点数表示加油量(升),第二个整数表示油品类型(如90、93、97、0),第三个整数(1表示自助加油,2表示协助加油)。假设输入数据都有效。

输出:

计算并输出用户应付的金额。保留2位小数。

例子:

输入:

1
50 93 2

正确输出:

1
271.46

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
int main() {
double l;
int a,b;
scanf("%lf %d %d",&l,&a,&b);
if (a==90) {
if (b == 1) {
printf("%.2lf",5.14*l*0.95);
}else {
printf("%.2lf",l*0.98*5.14);
}
}else if (a ==93){
if (b ==1) {
printf("%.2lf",5.54*l*0.95);
}else {
printf("%.2lf",l*0.98*5.54);
}
}else if (a==97) {
if (b ==1) {
printf("%.2lf",5.90*l*0.95);
}else{
printf("%.2lf",l*0.98*5.90);
}
}else if (a==0) {
if (b ==1) {
printf("%.2lf",5.13*l*0.95);
}else {
printf("%.2lf",l*0.98*5.13);
}
}
return 0;
}

1082. 求点的高度

描述:

假设有四个圆塔,圆心座标分别为(2,2) (-2,2) (-2,-2) (2,-2)。圆塔直径都为1,圆塔高50米,其他都为平地(高度为0)。要求给出任一坐标值(x,y),计算出该点的高度。

img

输入:

输入两个浮点数x,y表示一个点的坐标。

输出:

输出该点的高度。

例子:

输入:

1
-2 2

正确输出:

1
50

提示:

浮点数建议用double

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main() {
double x,y;
scanf("%lf %lf",&x,&y);
if ((x-2)*(x-2)+(y-2)*(y-2)<=1) {
printf("50");
}else if ((x+2)*(x+2)+(y-2)*(y-2)<=1) {
printf("50");
}else if ((x-2)*(x-2)+(y+2)*(y+2)<=1) {
printf("50");
}else if ((x+2)*(x+2)+(y+2)*(y+2)<=1) {
printf("50");
}else {
printf("0");
}
return 0;
}

1083. 1到10的英文单词

描述:

输入1到10之间的任意一个整数,输出相应的英文单词(首字母大写)。

输入:

输入1到10之间的任意一个整数

输出:

输出相应的英文单词(首字母大写)。

例子:

输入:

1
8

正确输出:

1
Eight

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
switch (num) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
case 4:
printf("Four\n");
break;
case 5:
printf("Five\n");
break;
case 6:
printf("Six\n");
break;
case 7:
printf("Seven\n");
break;
case 8:
printf("Eight\n");
break;
case 9:
printf("Nine\n");
break;
case 10:
printf("Ten\n");
break;
}
return 0;

}

1198. 今天星期几

描述:

输入一个整数表示一个星期中的某一天,若此数字在[1,7]内,则输出对应英文星期名,否则表示输入错误。例如,输入2,则输出“Tuesday”;输入7,则输出“Sunday”;输入非法数值,则输出“Illegal day”。(输出不包括双引号)

输入:

输入一个整数。

输出:

输出这一天对应的英文星期名。

例子:

输入:

1
2

正确输出:

1
Tuesday

提示:

数字1~7分别对应:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
switch (num) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
default:
printf("Illegal day\n");
}
return 0;
}

1218. 正方形还是圆形

描述:

首先从键盘读入一个浮点数x,然后再读入一个小写字母(s或c),如果读入的字母是s,则计算并输出正方形面积(此时x作为边长);如果读入的字母是c,则计算并输出圆面积(此时x作为半径)。

输入:

输入一个浮点数和一个小写字母(s或c),假设不会出现其他字母。数字和字母紧挨着输入,中间不要加空格。

输出:

根据输入的字母为s或c,决定输出正方形面积或是圆面积,保留2位小数。

例子:

输入:

1
2s

正确输出:

1
4.00

提示:

圆周率取3.14。

题解:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main() {
double x;
char c;
scanf("%lf%c",&x,&c);
if (c=='s') {
printf("%.2lf",x*x);
}else if (c=='c'){
printf("%.2lf",x*x*3.14);
}
return 0;
}

1230. 四数比大小

描述:

输入4个整数,将这4个数从大到小输出。

输入:

输入4个整数。假设数据都在int型数据范围内。

输出:

从大到小输出各数,每个数之间用空格隔开,最后一个数后无空格,直接换行。

例子:

输入:

1
20 -15 3 1999

正确输出:

1
1999 20 3 -15

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>

int main()

{

int a,b,c,d,t;

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(a>d){t=a;a=d;d=t;}

if(b>c){t=b;b=c;c=t;}

if(b>d){t=b;b=d;d=t;}

if(c>d){t=c;c=d;d=t;}

printf("%d %d %d %d",d,c,b,a);

return 0;
}

1232. 石头剪刀布

描述:

CoCo要和Tom玩石头剪刀布的游戏,规则是石头砸剪刀、剪刀剪布、布包石头。用手玩的话谁都会,没什么稀奇的,今天他们换个玩法,用数字代替手势来完成石头剪刀布的游戏。假设0表示石头,1表示剪刀,2表示布,每人在纸上写一个数字(数字范围局限于0、1、2),然后同时展示所写的数字,如果CoCo的数字胜出了则输出Win,否则一律输出Lose。

输入:

输入两个数字(数字范围局限于0、1、2)。

输出:

如果第一个数字胜出了则输出Win,否则一律输出Lose。输出后换行。

例子:

输入:

1
0 2

正确输出:

1
Lose

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>

int main(){
int a,b;
scanf("%d %d",&a,&b);
if (a==0&&b==1) {
printf("Win");
}else if (a == 0&&b==2) {
printf("Lose");
}else if(a==0&&b==0){
printf("Lose");
}else if (a==1&&b==0) {
printf("Lose");
}else if (a==1&&b==2) {
printf("Win");
}else if(a==1&&b==1){
printf("Lose");
}else if (a==2&&b==0) {
printf("Win");
}else if (a==2&&b==1) {
printf("Lose");
}else if(a==2&&b==2) {
printf("Lose");
}
return 0;
}

1492. 计算火车运行时间

描述:

根据火车的出发时间和到达时间,计算整个旅途经过的时间。

输入:

输入为两个四位的整数,分别表示火车的出发时间和到达时间(只考虑出发时间和到达时间是同一天的情况),其中前2位数表示小时(0023),后两位表示分钟(0059)。如出发时间为4点21分,到达时间为21点8分,则输入为0421 2108。

输出:

输出整个旅途的时间,用小时和分钟表示。如针对输入数据0421 2108,输出的旅途时间为:16:47

例子:

输入:

1
0152 0530

正确输出:

1
03:38

输入:

1
0422 0429

正确输出:

1
00:07

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>

int main() {
int a, b;
scanf("%d %d", &a, &b);

int a_h = a / 100;
int a_m = a % 100;
int b_h = b / 100;
int b_m = b % 100;

int total_start = a_h * 60 + a_m;
int total_end = b_h * 60 + b_m;
int diff = total_end - total_start;

int h = diff / 60;
int m = diff % 60;

printf("%02d:%02d\n", h, m);

return 0;
}