C++输入2行,第1行为一个正整数n,第2行包含n个正整数,输出正整数n的平均值无小数
时间: 2023-05-28 15:01:07 浏览: 105
解法一:
可以先将所有输入的正整数累加起来,然后除以输入的正整数个数,再将结果取整即可。
示例代码:
#include <stdio.h>
int main() {
int n, sum = 0, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
int x;
scanf("%d", &x);
sum += x;
}
int avg = sum / n;
printf("%d", avg);
return 0;
}
解法二:
可以利用整数除法的特性,将正整数累加后再整除输入的正整数个数,这样就可以得到平均值的整数部分。
示例代码:
#include <stdio.h>
int main() {
int n, sum = 0, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
int x;
scanf("%d", &x);
sum += x;
}
int avg = sum / n;
printf("%d", avg);
return 0;
}
相关问题
输入 输入的第一行包含一个正整数n,表示队伍人数。 输入的第二行包含n个正整数,表示队伍中每个人的身高(单位:毫米) 输出 输出一行一个整数,表示身高相同的最多有多少个人。 c++
以下是一个使用桶计数算法的 C++ 实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> heights(n);
for (int i = 0; i < n; i++) {
cin >> heights[i];
}
const int MAX_HEIGHT = 1000000; // 最大身高
vector<int> count(MAX_HEIGHT + 1, 0); // 桶数组
for (int i = 0; i < n; i++) {
count[heights[i]]++;
}
int max_count = 0;
for (int i = 0; i <= MAX_HEIGHT; i++) {
if (count[i] > max_count) {
max_count = count[i];
}
}
cout << max_count << endl;
return 0;
}
```
这个算法的时间复杂度是 O(n),空间复杂度是 O(最大身高)。
c++题目描述 给定一个n*n的整数矩阵以及放大倍数x,将矩阵中每个整数放大x倍后输出。 输入格式 包含n+2行: 第一行为一个整数n,表示整数矩阵的长度n和宽度n; 第2行到第n+1行为n*n的整数矩阵(不超过int范围),整数之间以一个空格分开; 第2行包含一个整数(不超过int范围),为指定的整数n。 输出格式 包含n行,为一个n*n的整数矩阵
好的,下面是C++的实现代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, x;
cin >> n;
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
cin >> x;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] *= x;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
这个代码使用了二维数组来存储输入的矩阵,然后遍历每个元素并将其乘以放大倍数x,最后输出结果即可。
希望能够帮到你!
阅读全文