1036:A×B问题
【题目描述】
输入两个正整数AA和BB,求A×BA×B的值。注意乘积的范围和数据类型的选择。
【输入】
一行,包含两个正整数AA和BB,中间用单个空格隔开。1≤A,B≤500001≤A,B≤50000。
【输出】
一个整数,即 A×BA×B 的值。
【输入样例】
3 4
【输出样例】
12
#include<stdio.h>
int main(void)
{
int A, B;
long long p;
scanf("%d %d", &A, &B);
p = (long long)A * B;
printf("%lld", p);
return 0;
}
1037:计算2的幂
【题目描述】
给定非负整数nn,求2n2n的值,即22的nn次方。
【输入】
一个整数nn。0≤n<310≤n<31。
【输出】
一个整数,即22的nn次方。
【输入样例】
3
【输出样例】
8
#include<stdio.h>
#include<math.h>
int main(void)
{
int n;
scanf("%d", &n);
long long result;
result = pow(2,n);
printf("%lld", result);
return 0;
}
1038:苹果和虫子
【题目描述】
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
【输入】
输入仅一行,包括n,x和y(均为整数)。
【输出】
输出也仅一行,剩下的苹果个数。
【输入样例】
10 4 9
【输出样例】
7
#include<stdio.h>
int main(void)
{
int n, x, y;
scanf("%d %d %d", &n, &x, &y);
if (y % x != 0)
if((n - (y / x + 1)) >= 0)
printf("%d", n - (y / x + 1));
else
printf("0");
else
if((n - y / x) >= 0)
printf("%d", n - y / x);
else
printf("0");
return 0;
}
2051:【例3.1】偶数
【题目描述】
读入一个正整数a,如果a为偶数输出yes
。
【输入】
一个正整数a。
【输出】
偶数输出yes
,否则什么也不输出。
【输入样例】
12
【输出样例】
yes
#include<stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a > 0 && a % 2 == 0)
printf("yes");
else
printf("");
return 0;
}
2052:【例3.2】范围判断
【题目描述】
读入一个整数,若这个数大于1并且小于100,则输出yes
。
【输入】
一个整数
【输出】
满足条件输出yes
,否则不输出。
【输入样例】
76
【输出样例】
yes
#include<stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a > 1 && a < 100)
printf("yes");
else
printf("");
return 0;
}
2053:【例3.3】三个数
【题目描述】
输入三个整数,按从大到小的顺序输出。
【输入】
输入三个整数
【输出】
按从大到小的顺序输出。
【输入样例】
3 2 1
【输出样例】
3 2 1
#include<stdio.h>
int main(void)
{
int a, b, c, t;
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("%d %d %d", a, b, c);
return 0;
}
2054:【例3.4】适合晨练
【题目描述】
输入温度t的值,判断是否适合晨练。(25≤t≤30,则适合晨练ok!
,否则不适合no!
)
【输入】
输入温度tt的值。
【输出】
输出判断结果
【输入样例】
26
【输出样例】
ok!
#include<stdio.h>
int main(void)
{
int t;
scanf("%d", &t);
if (t >= 25 && t <= 30)
printf("ok!");
else
printf("no!");
return 0;
}
2055:【例3.5】收费
【题目描述】
乘坐飞机时,当乘客行李小于等于20公斤时,按每公斤1.68元收费,大于20公斤时,按每公斤1.98元收费,编程计算收费(保留2位小数)。
【输入】
行李重量。
【输出】
费用(保留2位小数)。
【输入样例】
20.00
【输出样例】
33.60
#include<stdio.h>
int main(void)
{
double weight;
scanf("%lf", &weight);
if (weight <= 20)
printf("%.2lf", weight * 1.68);
else
printf("%.2lf", weight * 1.98);
return 0;
}
2056:【例3.7】最大的数
【题目描述】
输入三个数,输出其中最大的数。
【输入】
输入三个数。
【输出】
其中最大的数。
【输入样例】
1.01 2 3.22
【输出样例】
3.22
#include<stdio.h>
int main(void)
{
double a, b, c, t;
scanf("%lf %lf %lf", &a, &b, &c);
if (a < b)
{
if (b > c)
t = b;
else
t = c;
}
else
{
if (a > c)
t = a;
else
t = c;
}
printf("%g", t);
return 0;
}
1039:判断数正负
【题目描述】
给定一个整数N,判断其正负。如果N>0,输出positive
;如果N=0,输出zero
;如果N<0,输出negative
。
【输入】
一个整数N(−109≤N≤109)。
【输出】
如果N>0, 输出positive
;
如果N=0, 输出zero
;
如果N<0, 输出negative
。
【输入样例】
1
【输出样例】
positive
#include<stdio.h>
int main(void)
{
int N;
scanf("%d", &N);
if (N > 0)
printf("positive");
else if (N == 0)
printf("zero");
else
printf("negative");
return 0;
}
1040:输出绝对值
【题目描述】
输入一个浮点数,输出这个浮点数的绝对值,保留到小数点后两位。
【输入】
输入一个浮点数,其绝对值不超过10000。
【输出】
输出这个浮点数的绝对值,保留到小数点后两位。
【输入样例】
-3.14
【输出样例】
3.14
#include<stdio.h>
#include<math.h>
int main(void)
{
double a, b;
scanf("%lf", &a);
b = fabs(a); //fabs()对浮点数求绝对值,abs()对整型求绝对值
printf("%.2lf", b);
return 0;
}
1041:奇偶数判断
【题目描述】
给定一个整数,判断该数是奇数还是偶数。如果n是奇数,输出odd;如果n是偶数,输出even。
【输入】
输入仅一行,一个大于零的正整数n。
【输出】
输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。
【输入样例】
5
【输出样例】
odd
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
if (n % 2 != 0)
printf("odd");
else
printf("even");
return 0;
}
1042:奇偶ASCII值判断
【题目描述】
任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO。例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是6666),则输出NO。
【输入】
输入一个字符。
【输出】
如果其ASCII值为奇数,则输出YES,否则,输出NO。
【输入样例】
A
【输出样例】
YES
#include<stdio.h>
int main(void)
{
char c;
scanf("%c", &c);
int m = c;
if (m % 2 != 0)
printf("YES");
else
printf("NO");
return 0;
}
1043:整数大小比较
【题目描述】
输入两个整数,比较它们的大小。若x>y,输出>;若x=y,输出=;若x<y,输出<。
【输入】
一行,包含两个整数x和y,中间用单个空格隔开。0≤x<232, −231≤y<231。
【输出】
一个字符。若x>y,输出 > ;若x=y,输出 = ;若x<y,输出 < ;
【输入样例】
1000 100
【输出样例】
>
#include<stdio.h>
int main(void)
{
int x, y;
scanf("%d %d", &x, &y);
if (x > y)
printf(">");
else if (x == y)
printf("=");
else
printf("<");
return 0;
}
1044:判断是否为两位数
【题目描述】
判断一个正整数是否是两位数(即大于等于10且小于等于99)。若该正整数是两位数,输出1,否则输出0。
【输入】
一个正整数,不超过1000。
【输出】
一行。若该正整数是两位数,输出1,否则输出0。
【输入样例】
54
【输出样例】
1
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
if (n >= 10 && n <= 99)
printf("1");
else
printf("0");
return 0;
}
1045:收集瓶盖赢大奖
【题目描述】
某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。若可以兑换大奖,输出1,否则输出0。
【输入】
一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。
【输出】
一行。若可以兑换大奖,输出1,否则输出0。
【输入样例】
11 19
【输出样例】
1
#include<stdio.h>
int main(void)
{
int m, n;
scanf("%d %d", &m, &n);
if (m >= 10 || n >= 20)
printf("1");
else
printf("0");
return 0;
}
1046:判断一个数能否同时被3和5整除
【题目描述】
判断一个数n 能否同时被3和5整除,如果能同时被3和5整除输出YES,否则输出NO。
【输入】
输入一行,包含一个整数n。( -1,000,000 < n < 1,000,000)
【输出】
输出一行,如果能同时被3和5整除输出YES,否则输出NO。
【输入样例】
15
【输出样例】
YES
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
if (n % 3 == 0 && n % 5 == 0)
printf("YES");
else
printf("NO");
return 0;
}
1047:判断能否被3,5,7整除
【题目描述】
给定一个整数,判断它能否被3,5,7整除,并输出以下信息:
1、能同时被3,5,7整除(直接输出3 5 7
,每个数中间一个空格);
2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5
或者3 7
或者5 7
,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符‘n
’,不包括单引号。
【输入】
输入一行,包括一个整数。
【输出】
输出一行,按照描述要求给出整数被3,5,7整除的情况。
【输入样例】
105
【输出样例】
3 5 7
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
if (n % 3 == 0 && n % 5 == 0 && n % 7 == 0)
printf("3 5 7");
if (n % 3 == 0 && n % 5 != 0 && n % 7 != 0)
printf("3");
if (n % 5 == 0 && n % 3 != 0 && n % 7 != 0)
printf("5");
if (n % 7 == 0 && n % 5 != 0 && n % 3 != 0)
printf("7");
if (n % 3 == 0 && n % 5 == 0 && n % 7 != 0)
printf("3 5");
if (n % 3 == 0 && n % 5 != 0 && n % 7 == 0)
printf("3 7");
if (n % 5 == 0 && n % 7 == 0 && n % 3 != 0)
printf("5 7");
if (n % 5 != 0 && n % 7 != 0 && n % 3 != 0)
printf("n");
return 0;
}//因时间原因未思考简编方法
1048:有一门课不及格的学生
【题目描述】
给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。若该生恰好有一门课不及格,输出1;否则输出0。
【输入】
一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成绩。
【输出】
若该生恰好有一门课不及格,输出1;否则输出0。
【输入样例】
50 80
【输出样例】
1
#include<stdio.h>
int main(void)
{
int n, m;
scanf("%d %d", &n, &m);
if ((n < 60 && m > 60) || (n > 60 && m < 60))
printf("1");
else
printf("0");
return 0;
}
2057:【例3.9 】星期几
【题目描述】
根据输入的表示星期几的数字,对应输出它的英文名称。
1、星期一:Monday
2、星期二:Tuesday
3、星期三:Wednesday
4、星期四:Thursday
5、星期五:Friday
6、星期六:Saturday
7、星期日:Sunday
错误输入请输出:input error!
【输入】
输入的表示星期几的数字。
【输出】
对应输出它的英文名称。
【输入样例】
1
【输出样例】
Monday
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
switch(n)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
default:
printf("input error!");
break;
}
return 0;
}
2058:【例3.10】简单计算器
【题目描述】
一个最简单的计算器支持+,-,*,/
四种运算。输入只有一行:两个参加运算的数和一个操作符(+,-,*,/
)。输出运算表达式的结果。考虑下面两种情况:
(1)如果出现除数为0的情况,则输出:Divided by zero!
(2)如果出现无效的操作符(即不为+,-,*,/
之一),则输出:Invalid operator!
【输入】
一行,前面两个数,再一个运算符号。
【输出】
运算表达式的结果。
【输入样例】
34 56 +
【输出样例】
90
【提示】
【样例2】
输入:
2 1.2 -
输出:
0.8
#include<stdio.h>
int main(void)
{
double m, n;
char c;
scanf("%lf %lf %c", &m, &n, &c);
if (c != '+' && c != '-' && c != '*' && c != '/')
printf("Invalid operator!");
else
{
if (c == '+')
printf("%g", m + n);
else if (c == '-')
printf("%g", m - n);
else if (c == '*')
printf("%g", m * n);
else
{
if (n == 0)
printf("Divided by zero!");
else
printf("%g", m / n);
}
}
return 0;
}
2059:【例3.11】买笔
【题目描述】
期末来临了,班长小Q决定将剩余班费x元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。
【输入】
一个正整数x(剩余班费)。
【输出】
一行,依次为6元、5元和4元钱笔的数目,用一个空格隔开。
【输入样例】
10
【输出样例】
1 0 1
#include<stdio.h>
int main(void)
{
int x, a, b, c, y;
scanf("%d", &x);
c = x / 4;
y = x % 4;
switch(y)
{
case 0:
a = 0;
b = 0;
break;
case 1:
a = 0;
b = 1;
c--;
break;
case 2:
a = 1;
b = 0;
c--;
break;
case 3:
a = 1;
b = 1;
c -= 2;
break;
}
printf("%d %d %d", a, b, c);
return 0;
}
1049:晶晶赴约会
【题目描述】
晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。注意YES和NO都是大写字母!
【输入】
输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。
【输出】
输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都是大写字母!
【输入样例】
2
【输出样例】
YES
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
if (n == 1 || n == 3 || n == 5)
printf("NO");
else
printf("YES");
return 0;
}
1050:骑车与走路
【题目描述】
在清华校园里,没有自行车,上课办事会很不方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
【输入】
输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。
【输出】
输出一行,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
【输入样例】
120
【输出样例】
Bike
#include<stdio.h>
int main(void)
{
double x;
scanf("%lf", &x);
if ((x / 3.0 + 50) > (x / 1.2))
printf("Walk");
else
printf("Bike");
return 0;
}
1051:分段函数
【题目描述】
编写程序,计算下列分段函数y=f(x)的值。结果保留到小数点后三位。
y=−x+2.5;0≤x<5
y=2−1.5(x−3)(x−3);5≤x<10
y=x2−1.5;10≤x<20
【输入】
一个浮点数N(0≤N<20)。
【输出】
输出 NN 对应的分段函数值:f(N)。结果保留到小数点后三位。
【输入样例】
1.0
【输出样例】
1.500
#include<stdio.h>
int main(void)
{
double N;
scanf("%lf", &N);
if (N >= 0 && N < 5)
printf("%.3lf", 2.5 - N);
if (N >= 5 && N < 10)
printf("%.3lf", 2 - 1.5 * (N - 3) * (N - 3));
if (N >= 10 && N < 20)
printf("%.3lf", N / 2 - 1.5);
return 0;
}
1052:计算邮资
【题目描述】
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
【输入】
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。
【输出】
输出一行,包含一个整数,表示邮费。
【输入样例】
1200 y
【输出样例】
17
#include<stdio.h>
int main(void)
{
int a, s;
char c;
scanf("%d %c", &a, &c);
if (a <= 1000)
s = 8;
else
{
if ((a - 1000) % 500 == 0)
s = 8 + (a - 1000) / 500 * 4;
else
s = 8 + ((a - 1000) / 500 + 1) * 4;
}
if (c == 'y')
printf("%d", s + 5);
else
printf("%d", s);
return 0;
}
1053:最大数输出
【题目描述】
输入三个整数,数与数之间以一个空格分开。 输出一个整数,即最大的整数。
【输入】
输入为一行,包含三个整数,数与数之间以一个空格分开。
【输出】
输出一行,包含一个整数,即最大的整数。
【输入样例】
10 20 56
【输出样例】
56
#include<stdio.h>
int main(void)
{
int a, b, c, t;
scanf("%d %d %d", &a, &b, &c);
if (a > b)
t = a;
else
t = b;
if (a > c)
t = a;
else
{
if (b > c)
t = b;
else
t = c;
}
printf("%d", t);
return 0;
}
1054:三角形判断
【题目描述】
给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。如果能构成三角形,则输出“yes”,否则输出“no”。
【输入】
输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。
【输出】
如果能构成三角形,则输出“yes” ,否则输出“no”。
【输入样例】
3 4 5
【输出样例】
yes
#include<stdio.h>
int main(void)
{
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;
}
1055:判断闰年
【题目描述】
判断某年是否是闰年。如果公元a年是闰年输出Y,否则输出N。
【输入】
输入只有一行,包含一个整数a(0 < a < 3000)。
【输出】
一行,如果公元a年是闰年输出Y,否则输出N。
【输入样例】
2006
【输出样例】
N
#include<stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
printf("Y");
else
printf("N");
return 0;
}
1056:点和正方形的关系
【题目描述】
有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。如果点在正方形内,则输出yes,否则输出no。
【输入】
输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。
【输出】
输出一行,如果点在正方形内,则输出yes,否则输出no。
【输入样例】
1 1
【输出样例】
yes
#include<stdio.h>
int main(void)
{
int x, y;
scanf("%d %d", &x, &y);
if ((x >= -1 && x <= 1) && (y >= -1 && y <= 1))
printf("yes");
else
printf("no");
return 0;
}
1057:简单计算器
【题目描述】
一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而:
1. 如果出现除数为0的情况,则输出:Divided by zero!
2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
【输入】
输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
【输出】
输出只有一行,一个整数,为运算结果。然而:
1.如果出现除数为0的情况,则输出:Divided by zero!
2.如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
【输入样例】
1 2 +
【输出样例】
3
#include<stdio.h>
int main(void)
{
int m, n;
char c;
scanf("%d %d %c", &m, &n, &c);
if (c != '+' && c != '-' && c != '*' && c != '/')
printf("Invalid operator!");
else
{
if (c == '+')
printf("%d", m + n);
else if (c == '-')
printf("%d", m - n);
else if (c == '*')
printf("%d", m * n);
else
{
if (n == 0)
printf("Divided by zero!");
else
printf("%d", m / n);
}
}
return 0;
}
1058:求一元二次方程
【题目描述】
利用公式x1=−b+√b^2−4ac/2a,x2=−b-√b^2−4ac/2a,求一元二次方程ax^2+bx+c=0的根,其中a不等于0。结果要求精确到小数点后55位。
【输入】
输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程ax^2+bx+c=0的系数。
【输出】
输出一行,表示方程的解。
若两个实根相等,则输出形式为:“x1=x2=...”;
若两个实根不等,在满足根小者在前的原则,则输出形式为:“x1=...;x2=...“;
若无实根输出“No answer!”。
所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。
【输入样例】
-15.97 19.69 12.02
【输出样例】
x1=-0.44781;x2=1.68075
#include<stdio.h>
#include<math.h>
int main(void)
{
double a, b, c, d, e, f;
scanf("%lf %lf %lf", &a, &b, &c);
if (b * b - 4 * a * c < 0)
printf("No answer!");
else
{
d = sqrt(b * b - 4 * a * c);
if (d == 0)
printf("x1=x2=%.5lf", -b / (2 * a));
else
{
e = (-b + d) / (2 * a);
f = (-b - d) / (2 * a);
if (e < f)
printf("x1=%.5lf;x2=%.5lf", e, f);
else
printf("x1=%.5lf;x2=%.5lf", f, e);
}
}
return 0;
}
2016:【例4.1】for循环求和
【题目描述】
利用for循环。计算输出1+2+3+...+n的和。
【输入】
输入n。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
55
【提示】
【数据规模及约定】
对于100%的数据,1≤n≤100。
#include<stdio.h>
int main(void)
{
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum = sum + i;
}
printf("%d", sum);
return 0;
}
2017:【例4.2】输出偶数
【题目描述】
按照由小到大的顺序,输出1∼n之间的所有偶数。
【输入】
输入n。
【输出】
输出为一行,各个偶数之间用一个空格隔开。
【输入样例】
10
【输出样例】
2 4 6 8 10
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100。
#include<stdio.h>
int main(void)
{
int n, i;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
if (i % 2 == 0)
printf("%d ", i);
}
return 0;
}
2018:【例4.3】输出奇偶数之和
【题目描述】
利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。
【输入】
输入n。
【输出】
输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。
【输入样例】
10
【输出样例】
30 25
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100。
#include<stdio.h>
int main(void)
{
int n, s1 = 0, s2 = 0, i;
scanf("%d", &n);
for (i = 1; i <= n; i ++)
{
if (i % 2 == 0)
s1 = s1 + i;
else
s2 = s2 + i;
}
printf("%d %d", s1, s2);
return 0;
}
2019:【例4.4】求阶乘
【题目描述】
利用for循环求n!的值。
提示,n!=1×2×...×n。
【输入】
输入一个正整数n。
【输出】
输出n!的值。
【输入样例】
4
【输出样例】
24
【提示】
【数据规模及约定】
对于所有数据,1≤n≤20。
#include<stdio.h>
int main(void)
{
int n, i;
long long s = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
s = s * i;
}
printf("%llu", s);
return 0;
}
1059:求平均年龄
【题目描述】
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
【输入】
第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。
【输出】
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
【输入样例】
2
18
17
【输出样例】
17.50
#include<stdio.h>
int main(void)
{
int n, i, sum = 0, g;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%d", &g);
sum = sum + g;
}
printf("%.2lf", sum * 1.00 / n);
return 0;
}
1060:均值
【题目描述】
给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。
【输入】
输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
【输出】
输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
【输入样例】
2
1.0 3.0
【输出样例】
2.0000
#include<stdio.h>
int main(void)
{
int n, i;
double g, s = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%lf", &g);
s = s + g;
}
printf("%.4lf", s / n);
return 0;
}
1061:求整数的和与均值
【题目描述】
读入n(1≤n≤10000)个整数,求它们的和与均值。
【输入】
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。
【输出】
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
【输入样例】
4
344
222
343
222
【输出样例】
1131 282.75000
#include<stdio.h>
int main(void)
{
int n, i, sum = 0, g;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%d", &g);
sum += g;
}
printf("%d %.5lf", sum, sum * 1.0 / n);
return 0;
}
1062:最高的分数
【题目描述】
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
【输入】
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
【输出】
输出一个整数,即最高的成绩。
【输入样例】
5
85 78 90 99 60
【输出样例】
99
#include<stdio.h>
int main(void)
{
int n, t = 0, i;
scanf("%d", &n);
int a[n];
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (t < a[i])
t = a[i];
}
printf("%d", t);
return 0;
}
1063:最大跨度值
【题目描述】
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
【输入】
一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
【输出】
输出一行,表示序列的最大跨度值。
【输入样例】
6
3 0 8 7 5 9
【输出样例】
9
#include<stdio.h>
int main(void)
{
int n, max, min, i;
scanf("%d", &n);
int a[n];
for (i = 0; i < n; ++i)
{
scanf("%d", &a[i]);
}
max = a[0];
min = a[0];
for (i = 1; i < n; ++i)
{
if (max < a[i])
max = a[i];
if (min > a[i])
min = a[i];
}
printf("%d", max - min);
return 0;
}
1064:奥运奖牌计数
【题目描述】
2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌总数及总奖牌数。
【输入】
输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
【输出】
输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
【输入样例】
3
1 0 3
3 1 0
0 3 0
【输出样例】
4 4 3 11
#include<stdio.h>
int main(void)
{
int n, i, k, js = 0, ys = 0, ts = 0;
scanf("%d", &n);
int num[n][3];
for (i = 0; i < n; i++)
{
int j = 0, y = 0, t = 0;
scanf("%d %d %d", &j, &y, &t);
js += j;
ys += y;
ts += t;
}
printf("%d %d %d %d", js, ys, ts, js + ys + ts);
return 0;
}
1065:奇数求和
【题目描述】
计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3,n=12, 其和则为:3+5+7+9+11=35。
【输入】
两个数 m 和 n,两个数以一个空格分开,其中 0≤m≤n≤300 。
【输出】
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和
【输入样例】
7 15
【输出样例】
55
#include<stdio.h>
int main(void)
{
int m, n, i, s = 0;
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++)
{
if (i % 2 != 0)
s += i;
}
printf("%d", s);
return 0;
}
1066:满足条件的数累加
【题目描述】
将正整数m和n之间(包括m和n)能被17整除的数累加,其中0<m<n<1000。
【输入】
一行,包含两个整数m和n,其间,以一个空格间隔。
【输出】
输出一行,包行一个整数,表示累加的结果。
【输入样例】
50 85
【输出样例】
204
#include<stdio.h>
int main(void)
{
int m, n, i, s = 0;
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++)
{
if (i % 17 == 0)
s += i;
}
printf("%d", s);
return 0;
}
1067:整数的个数
【题目描述】
给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
【输入】
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
【输出】
输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。
【输入样例】
5
1 5 8 10 5
【输出样例】
1
2
1
#include<stdio.h>
int main(void)
{
int k, num, a = 0, b = 0, c = 0, i;
scanf("%d", &k);
for (i = 1; i <= k; i++)
{
scanf("%d", &num);
if (num == 1)
a += 1;
if (num == 5)
b += 1;
if (num == 10)
c += 1;
}
printf("%d\n", a);
printf("%d\n", b);
printf("%d", c);
return 0;
}
1068:与指定数字相同的数的个数
【题目描述】
输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N<=100)和指定的数字;第2行为N个整数,整数之间以一个空格分开。输出为N个数中与m相同的数的个数。
【输入】
第1行为N和m,表示整数序列的长度(N<=100)和指定的数字, 中间用一个空格分开;
第2行为N个整数,整数之间以一个空格分开。
【输出】
输出为N个数中与m相同的数的个数。
【输入样例】
3 2
2 3 2
【输出样例】
2
#include<stdio.h>
int main(void)
{
int N, m, count = 0, num, i;
scanf("%d %d", &N, &m);
for (i = 1; i <= N; i++)
{
scanf("%d", &num);
if (num == m)
count += 1;
}
printf("%d", count);
return 0;
}
1069:乘方计算
【题目描述】
给出一个整数a和一个正整数n(−1000000≤a≤1000000,1≤n≤10000,求乘方a^n,即乘方结果。最终结果的绝对值不超过1000000。
【输入】
一行,包含两个整数a和n。−1000000≤a≤1000000,1≤n≤10000,1≤n≤10000。
【输出】
一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。
【输入样例】
2 3
【输出样例】
8
#include<stdio.h>
int main(void)
{
int a, n, i, k = 1;
scanf("%d %d", &a, &n);
for (i = 1; i <= n; i++)
{
k *= a;
}
printf("%d", k);
return 0;
}
1070:人口增长
【题目描述】
我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留小数点后四位。
【输入】
一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。
【输出】
输出最后的人口数,以亿为单位,保留到小数点后四位。1<=x<=100,1<=n<=100。
【输入样例】
13 10
【输出样例】
13.1306
#include<stdio.h>
int main(void)
{
int n, i;
double x;
scanf("%lf %d", &x, &n);
for (i = 1; i <= n; i++)
{
x = x * (1 + 0.001);
}
printf("%.4lf", x);
return 0;
}
1071:菲波那契数
【题目描述】
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。
【输入】
输入一行,包含一个正整数k。(1 ≤ k ≤ 46)
【输出】
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。
【输入样例】
19
【输出样例】
4181
#include<stdio.h>
int main(void)
{
int k, i;
scanf("%d", &k);
int a[k];
a[0] = 1;
a[1] = 1;
for (i = 2; i < k; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
printf("%d", a[k - 1]);
return 0;
}
1072:鸡尾酒疗法
【题目描述】
鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。
【输入】
第一行为整数n(1<n<=20);其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。
【输出】
有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;否则输出same。
【输入样例】
5
125 99
112 89
145 99
99 97
123 98
【输出样例】
same
worse
better
same
#include<stdio.h>
int main(void)
{
int n, i;
scanf("%d", &n);
double x, y, j, k;
int flag[n+1];
flag[0] = 1;
flag[1] = 1;
scanf("%lf %lf", &j, &k);
x = k / j;
printf("%lf", k);
for (i = 2; i <= n; i++)
{
double a, b;
scanf("%lf %lf", &a, &b);
y = b / a;
if (y - x > 0.05)
flag[i] = 2;
else if (x - y > 0.05)
flag[i] = 0;
else
flag[i] = 1;
}
for (i = 2; i <= n; i++)
{
if (flag[i] == 2)
printf("better\n");
if (flag[i] == 0)
printf("worse\n");
if (flag[i] == 1)
printf("same\n");
}
return 0;
}