c++ - 序列和最大,最小与向量
问题描述
问题是显示该序列的最高和最低数量以及它们出现的次数。我现在需要显示这个序列出现了多少个数字,它们也需要小于 2000:
#include <iostream>
int main()
{
int v[11], i, b, l;
for (i = 0; i < 11; i++) {
scanf("%d", &v[i]);
}
b = v[0];
for (i = 0; i < 11; i++) {
if (v[i] > b)
b = v[i];
i++;
}
l = v[0];
for (i = 0; i < 11; i++) {
if (v[i] < l)
l = v[i];
i++;
}
printf("%d\n", b);
printf("%d\n", l);
return 0;
}
并查看输入和输出它们应该如何出现
Input:
20
40
39
120
2
200
2
360
780
7
2
Output:
biggest:780 Shows 1 time(s)
lowest:2 Shows 3 time(s)
解决方案
这是最大整数的代码。对最小整数使用类似的方法。
#include <iostream>
int main()
{
int v[11]; // gets the input array
for (i = 0; i < 11; i++) {
scanf("%d", &v[i]);
}
int max = 0;
int count = 0;
for (int i = 0; i < 11; i++)
{
if (v[i] > max)
{
max = v[i];
count = 1;
} else if (v[i] == max)
{
count++;
}
}
}
解释
第一个 for 循环从用户那里获取输入。我没有更改这部分代码。
第二个 for 循环是魔法发生的地方。首先,我们定义一个最大值变量和一个计数变量。两个变量都设置为零。
当 for 循环遍历数组时,我们会执行一些 if 语句。首先,我们检查当前元素是否大于我们的最大变量。如果这是真的,我们找到了一个新的最大值变量,所以我们设置 max = 当前元素。我们还将 count 的值更改为 1,因为到目前为止我们只找到了一个新最大值的实例。
我们还检查当前元素是否等于最大值。在这种情况下,我们找到了最大元素的另一个实例,因此我们将 count 加 1。
这是我们必须检查的仅有的两种情况。对最小元素应用类似的逻辑很简单。
推荐阅读
- javascript - Discord:你怎么会发现错误?
- python - 有条件地合并 pd.DataFrames
- c# - 根据静态值更改精灵
- javascript - 如何在 React 中停止 for 循环直到异步操作完成?
- python - requests.post 返回 isSuccess:false 即使 Postman 返回 true
- c# - 如何在 ITextSharp 中设置文本位置?
- arrays - parsing two multi-line grep results to a single bash asociative array
- python - 分组匹配键:字典列表中的值,并放入没有 PANDAS 的新字典列表
- ruby - 带参数的 Ruby Proc
- python - 用不同表中的另一列替换数据框中的值