21 判断正负数
分数 10
作者 王跃萍单位 东北石油大学
输入一整数x,如果x>0,则y=1,否则y=-1,最后输出y的值。
输入格式:
直接输入1个整数,没有其它任何附加字符。
输出格式:
在一行中按照“y=结果”的顺序输出,结果原样输出,没有其它附加格式。。
输入样例:
5
输出样例:
y=1
输入样例:
-5
输出样例:
y=-1
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if (a>0)
printf("y=1");
else
printf("y=-1");
return 0;
}
或者:
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
a>0?printf("y=1"):printf("y=-1");
}
22 成绩转换
分数 15
作者 沈睿单位 浙江大学
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
-
大于等于90分为A;
-
小于90且大于等于80为B;
-
小于80且大于等于70为C;
-
小于70且大于等于60为D;
-
小于60为E。
输入格式:
输入在一行中给出一个整数的百分制成绩。
输出格式:
在一行中输出对应的五分制成绩。
输入样例:
90
输出样例:
A
#include<stdio.h>
int main()
{
int a,x;
scanf("%d",&a);
x = a/10;
switch(x)
{
case 10:
case 9: printf("A");break;
case 8: printf("B"); break;
case 7: printf("C"); break;
case 6: printf("D"); break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("E"); break;
default:printf("Tnput error!");
}
return 0;
}
或者:
90 ... 100 等价于 x>=90&&x<=100
#include<stdio.h>
int main(){
int a;
scanf("%i",&a);
switch(a){
case 90 ... 100: printf("A");break;
case 80 ... 89: printf("B");break;
case 70 ... 79: printf("C");break;
case 60 ... 69: printf("D");break;
case 0 ... 59: printf("E");break;
default :printf("输入错误");break;
}
}
23 成绩是否及格
分数 10
作者 王跃萍单位 东北石油大学
输入成绩值x∈[0,100],如果x≥60,则输出pass,否则输出fail。
输入格式:
直接输入[0,100]之间的1个整数,没有其它任何附加字符。
输出格式:
直接输出你“pass”或“fail”,没有其它任何附加字符。
输入样例:
78
输出样例:
pass
输入样例:
46
输出样例:
fail
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x<60)
printf("fail");
else
printf("pass");
return 0;
}
或者:
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
a>=60?printf("pass"):printf("fail");
}
24两个整数最大值
分数 10
作者 王跃萍单位 东北石油大学
求两个整数a,b的最大值,结果存入max中。
输入格式:
在一行中输入两个整数,之间用一个空格间隔,没有其它任何附加字符。
输出格式:
在一行中按照“max=结果”的顺序输出,结果原样输出,没有其它附加格式。
输入样例:
3 5
输出样例:
max=5
#include<stdio.h>
int main()
{
int a, b, max;
scanf("%d %d",&a,&b);
max = a>b ? a : b;
printf("max=%d",max);
return 0;
}
或者:
#include<stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
a>b?printf("max=%d",a):printf("max=%d",b);
}
25 整除问题
分数 10
作者 刘勇单位 重庆巴蜀常春藤学校
判断一个数是否能被另一个整数整除是一个挺简单的问题,懒惰的小明还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
输入格式:
输入包括两个由空格分开的整数 M和 N(1≤M,N≤500)。
输出格式:
输出包括一行,如果 M 可以被 N 整除就输出YES,否则输出NO(结果大小写敏感)。
输入样例:
21 7
输出样例:
YES
#include<stdio.h>
int main()
{
int a, b;
scanf("%d %d",&a,&b);
if(a % b == 0)
printf("YES");
else
printf("NO");
return 0;
}
26 整数绝对值
分数 10
作者 王跃萍单位 东北石油大学
从键盘上输入一个整数,输出其对应的绝对值,要求不能使用数学函数。
输入格式:
直接输入一个整数,没有其它任何附加字符。
输出格式:
直接输出一个整数,没有其它任何附加字符。
输入样例:
-3
输出样例:
3
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
x = x>0 ? x : -x ;
printf("%d",x);
return 0;
}
27偶数乘2奇数乘3
分数 10
作者 王跃萍单位 东北石油大学
输入一个整数x,如果为偶数乘2,否则乘3,然后输出。
输入格式:
直接输入一个整数,没有其它任何附加字符。
输出格式:
在一行中按照“y=结果”的顺序输出,结果原样输出,没有其它附加格式。
输入样例:
3
输出样例:
y=9
输入样例:
2
输出样例:
y=4
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
x = x%2==0 ? 2*x : 3*x;
printf("y=%d",x);
return 0;
}
28判断10的倍数
分数 10
作者 王跃萍单位 东北石油大学
输入一个整数a,如果a为10的倍数,则输出a。
输入格式:
直接输入1个整数,没有其他任何附加字符。
输出格式:
直接输出结果,没有其他任何附加字符。
输入样例:
20
输出样例:
20
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x%10==0)
printf("%d",x);
return 0;
}
29 三个数由小到大输出
分数 10
作者 王跃萍单位 东北石油大学
输入三个整数x,y,z,请把这三个数由小到大输出。
输入格式:
在一行中直接输入3个整数,之间各用一个空格间隔。
输出格式:
在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。
输入样例:
2 1 3
输出样例:
x=1,y=2,z=3
#include<stdio.h>
int main()
{
int x, y, z;
scanf("%d %d %d",&x, &y, &z);
if( x>=y && y>=z && x>=z)
printf("x=%d,y=%d,z=%d",z,y,x);
if( x>=z && z>=y && x>=y)
printf("x=%d,y=%d,z=%d",y,z,x);
if( y>=x && x>=z && y>=z)
printf("x=%d,y=%d,z=%d",z,x,y);
if( y>=z && z>=x && y>=z)
printf("x=%d,y=%d,z=%d",x,z,y);
if( z>=y && y>=x && z>=x)
printf("x=%d,y=%d,z=%d",x,y,z);
if( z>=x && x>=y && z>=y)
printf("x=%d,y=%d,z=%d",y,x,z);
return 0;
}
或者:
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
if(a>c)
if(b>c)
printf("x=%d,y=%d,z=%d\n",c,b,a);
else
printf("x=%d,y=%d,z=%d\n",b,c,a);
else
printf("x=%d,y=%d,z=%d\n",b,a,c);
else
if(a>c)
if(b>c)
printf("x=%d,y=%d,z=%d\n",c,a,b);
else
printf("x=%d,y=%d,z=%d\n",a,b,c);
else
printf("x=%d,y=%d,z=%d\n",a,c,b);
}
或者:
#include<stdio.h>
int main(){
int x, y, z, t;
scanf("%d %d %d",&x,&y,&z);
if(x>y){
t = x;
x = y;
y = t;
}
if(x > z){
t = x;
x = z;
z = t;
}
if(y > z){
t = y;
y = z;
z = t;
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
或者:
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d %d %d",&a,&b,&c);
int x=(a<b?a:b)<c?(a<b?a:b):c;
int y=a>b?(b>c?b:(a>c?c:a)):(a>c?a:(b>c?c:b));
int z=(a>b?a:b)>c?(a>b?a:b):c;
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
其余任意排序算法均可
30 三天打鱼两天晒网
分数 15
作者 C课程组单位 浙江大学
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:
103
输出样例1:
Fishing in day 103
输入样例2:
34
输出样例2:
Drying in day 34
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%5==1 || n%5==2 || n%5==3)
printf("Fishing in day %d",n);
if(n%5==0 || n%5==4)
printf("Drying in day %d",n);
return 0;
}
或者:
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
switch(a%5){
case 0:printf("Drying in day %d",a);break;
case 1 ... 3:printf("Fishing in day %d",a);break;
case 4:printf("Drying in day %d",a);break;
}
}
31 超速判断
分数 10
作者 杨起帆单位 浙大城市学院
模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。
输入格式:
输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。
输出格式:
在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。
输入样例1:
40
输出样例1:
Speed: 40 - OK
输入样例2:
75
输出样例2:
Speed: 75 - Speeding
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n > 60)
printf("Speed: %d - Speeding",n);
else
printf("Speed: %d - OK",n);
return 0;
}
32 用天平找小球
分数 10
作者 C课程组单位 浙江大学
三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。
输入格式:
输入在一行中给出3个正整数,顺序对应球A、B、C的重量。
输出格式:
在一行中输出唯一的那个不一样的球。
输入样例:
1 1 2
输出样例:
C
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d %d %d",&a, &b, &c);
if(a==b)
printf("C");
if(a==c)
printf("B");
if(b==c)
printf("A");
return 0;
}
或者:
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d %d %d",&a,&b,&c);
a==b?printf("C"):(a==c?printf("B"):printf("A"));
}
33表达式计算
分数 5
作者 张显单位 怀化学院
小明的表哥正在做家庭作业,遇到一道题困扰了很久,需要你用程序帮忙解决。
题目如下:根据X,Y的值求Z的值。如果X≥0而且Y≥5,则按公式Z=3X+2Y计算;如果X≥0而且Y<5,则按公式Z=5X-Y计算;如果X<0而且Y≥0,则按公式Z=X+4Y计算;如果X<0而且Y<0,则按公式Z=3*X-Y计算。
输入格式:
在一行中给出两个整数X,Y。中间以空格隔开。X和Y的绝对值不超过10000。
输出格式:
在一行中输出Z的值。
输入样例:
7 8
输出样例:
37
#include<stdio.h>
int main()
{
int x, y;
scanf("%d %d",&x, &y);
if(x>=0&&y>=5)
printf("%d",3*x+2*y);
if(x>=0&&y<5)
printf("%d",5*x-y);
if(x<0&y>=0)
printf("%d",x+4*y);
if(x<0&&y<0)
printf("%d",3*x-y);
return 0;
}
34 12-24小时制
分数 15
作者 翁恺单位 浙江大学
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。
输入样例:
21:11
输出样例:
9:11 PM
#include<stdio.h>
int main(void) {
int n, m;
scanf("%d:%d", &n, &m);
if (n >= 12) {
if (12 == n) printf("%d:%d PM", n, m);
else {
n -= 12;
printf("%d:%d PM", n, m);
}
} else {
printf("%d:%d AM", n, m);
}
return 0;
}
35Judge leap year
分数 10
作者 李克峰单位 山东交通学院
Input a year, if it is leap year output "Yes", otherwise output "No".
Input:
One positive integer
Output:
"Yes" or "No"
Input smaple:
2017
Output sample:
No
Input smaple:
2000
Output sample:
Yes
#include<stdio.h>
int main()
{
int year;
scanf("%d",&year);
if(year%400==0||(year%100!=0&&year%4==0))
printf("Yes");
else
printf("No");
return 0;
}
36 输入年份和月份
分数 10
作者 时贵英单位 东北石油大学
输入一个年份和月份,输出这个月的天数。
输入格式:
输入年份year和月份month,年份和月份中间用一个空格隔开。
输出格式:
输入year年的month月对应的天数。
输入样例:
2000 2
输出样例:
29
输入样例:
1900 2
输出样例:
28
输入样例:
1900 6
输出样例:
30
#include<stdio.h>
int main()
{
int year, month;
scanf("%d %d",&year, &month);
switch(month){
case 2:
if(year%400==0||(year%4==0&&year%100!=0))
printf("29");
else
printf("28");
break;
case 4:
case 6:
case 9:
case 11:
printf("30");break;
default:printf("31");break;
}
return 0;
}
37 是否能构成三角形1
分数 10
作者 王跃萍单位 东北石油大学
输入三角形的三边,判断是否能构成三角形。若能构成输出YES,否则输出NO。
输入格式:
在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。
输出格式:
直接输出YES或NO,没有其他任何附加字符。
输入样例:
4 5 6
输出样例:
YES
输入样例:
2 2 4
输出样例:
NO
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("YES");
else
printf("NO");
return 0;
}
38 求1到100的和
分数 10
作者 颜晖单位 浙大城市学院
本题要求编写程序,计算表达式 1 + 2 + 3 + ... + 100 的值。
输入格式:
本题无输入。
输出格式:
按照以下格式输出:
sum = 累加和
#include<stdio.h>
int main()
{
int n, sum;
for(n=1; n<101; n++)
sum+= n;
printf("sum = %d",sum);
return 0;
}
39 逆序输出数的各位数字
分数 15
作者 王跃萍单位 东北石油大学
从键盘上输入一个正整数,逆序输出该数的各位数字。
例如:输入123,输出321。
输入格式:
直接输入一个正整数,没有其它任何附加字符。
输出格式:
直接输出一结果,没有其它任何附加字符。
输入样例:
123
输出样例:
321
#include<stdio.h>
int main()
{
int i, r;
scanf("%d",&i);
do{
r=i%10;
printf("%d",r);
}while((i/=10)!=0);
return 0;
}
40 奇偶分家
分数 10
作者 陈越单位 浙江大学
给定N个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。
输入样例:
9
88 74 101 26 15 0 34 22 77
输出样例:
3 6
#include<stdio.h>
int main()
{
int n, a[1001], m, j=0, o=0;
scanf("%d",&n);
for(m=0;m<n;m++)
{
scanf("%d",&a[m]);
if(a[m]%2==1)
j++;
else
o++;
}
printf("%d %d",j, o);
return 0;
}