1012. 平面上的三角形判断(1) 描述: 已知三个数a,b,c,请问以这三个数作为边长能否构成一个三角形?如果可以构成三角形则输出该三角形的面积,否则输出Error。
输入: 输入三个浮点数
输出: 如果这三个数能构成一个三角形,则计算并输出这个三角形的面积,保留2位小数。如果不能构成三角形就输出Error。
例子: 输入:
正确输出:
输入:
正确输出:
提示: 提醒:在一个三角形中,任意两边之和大于第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 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。
输入: 输入一个浮点数x。
输出: 根据其符号属性输出y的值。
例子: 输入:
正确输出:
提示: 建议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 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的值(保留两位小数)。
输入: 输入一个浮点数。
输出: 输出函数的值。保留2位小数。
例子: 输入:
正确输出:
提示: 建议变量类型使用 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 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 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 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 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元。
输入: 输入一个浮点数表示某人本月的计税依据
输出: 输出本月应交的个人所得税,保留2位小数。
例子: 输入:
正确输出:
题解: 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 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 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。
例子: 输入:
正确输出:
提示: 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 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 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),计算出该点的高度。
输入: 输入两个浮点数x,y表示一个点的坐标。
输出: 输出该点的高度。
例子: 输入:
正确输出:
提示: 浮点数建议用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 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~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位小数。
例子: 输入:
正确输出:
提示: 圆周率取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 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 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 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 ; }