目录
成绩分析
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入描述
输入的第一行包含一个整数n(1≤n≤10^4),表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
示例
输入
7
80
92
56
74
88
99
10
输出
99
10
71.29
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
代码:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
int Score[10050];
for (int i = 0; i < n; i++) {
cin >> Score[i];
}
int min = Score[0];
int max = Score[0];
int sum = 0;
double avgscore = 0;
for (int i = 0; i < n; i++) {
sum = sum + Score[i];
if (Score[i] < min) {
min = Score[i];
}
if (Score[i] > max) {
max = Score[i];
}
}
avgscore = (double)sum / n;
avgscore = round(avgscore*100)/100;
cout << max << endl;
cout << min << endl;
printf("%.2f\n",avgscore);
return 0;
}
饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数 n(0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
示例
输入
100
输出
149
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
代码:
#include <iostream>
using namespace std;
#include<math.h>
int main()
{
// 请在此输入您的代码
int x = 0;
int n;
cin >> n;
int sum = n;
while (n >= 3) {
x = ceil(n / 3);
n = n - 2*x;
sum = sum + x;
}
cout << sum << endl;
return 0;
}
刷题统计
问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?
输入格式
输入一行包含三个整数 a,b 和 n.
输出格式
输出一个整数代表天数。
样例输入
10 20 99
样例输出
8
评测用例规模与约定
对于 50% 的评测用例, 1≤a,b,n≤10^6.
对于 100%的评测用例, 1≤a,b,n≤10^18.
代码:
#include <iostream>
using namespace std;
#include <math.h>
int main()
{
// 请在此输入您的代码
long long a;
long long b;
long long n;
cin >> a;
cin >> b;
cin >> n;
long long week, day = 0;
week = n / (5 * a + 2 * b);
int rest = n % (5 * a + 2 * b);
if (0<= rest <= 50) {
day = ceil((double)rest / a);
}
else {
day = 5 + ceil(((double)rest - 50) / b);
}
day = day + week * 7;
cout << day << endl;
return 0;
}
扫雷
题目描述
在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空。
请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。
输入描述
输入的第一行包含两个整数 n,m。
第 22 行到第 n+1 行每行包含 m 个整数,相邻整数之间用一个空格分隔。如果对应的整数为 00,表示这一格没有地雷。如果对应的整数为 11,表示这一格有地雷。
其中,1≤n,m≤100 分钟后还是在当天。
输出描述
输出 n 行,每行 m 个整数,相邻整数之间用空格分隔。
对于没有地雷的方格,输出这格周围的地雷数量。对于有地雷的方格,输出 99。
输入输出样例
示例 1
输入
3 4
0 1 0 0
1 0 1 0
0 0 1 0
输出
2 9 2 1
9 4 9 2
1 3 9 2
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
代码:
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int n, m;
cin >> n;
cin >> m;
int arr[100][100];
int brr[100][100];
int crr[102][102];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
cout << endl;
}
for (int i = 0; i <= n + 1; i++) {
for (int j = 0; j <= m + 1; j++) {
if (i == 0 | i == n + 1 | j == 0 | j == m + 1) {
crr[i][j] = 0;
}
else {
crr[i][j] = arr[i - 1][j - 1];
}
}
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
if (crr[i][j] == 1) {
brr[i - 1][j - 1] = 9;
}
else {
brr[i - 1][j - 1] = crr[i - 1][j - 1] + crr[i - 1][j] + crr[i - 1][j + 1] + crr[i][j - 1] + crr[i][j + 1] + crr[i + 1][j - 1] + crr[i + 1][j + 1]+crr[i+1][j];
}
cout << brr[i - 1][j - 1] << " ";
}
cout << endl;
}
return 0;
}