如何根据数组数据为变量赋值
How to assign a value to a variable based off array data
我是这个板的新手,老实说,我一直在努力完成这个项目的最后一部分。我把其他的都搞定了。长话短说,我需要将相关的字符串值应用于变量day。哪个字符串基于数组"hotdogs[]"中的数据和对应的值"largest"。
"Largest"是"hotdogs[]"数组中最大的数。我的想法是,如果hotdogs[]中的数组元素0不是最大的,移动到else if,以此类推,直到它找到数组hotdogs[]中哪个元素是最大的变量。
整个程序可以编译并运行,但始终给出相同的答案。那天"7"的热狗卖得最多。不管在哪里输入最大的数字。因为我需要一个10的排名来发布图片,我将复制过去的代码。
for (h=0; h<=6; h++)
{
cin >> hotdogs[h];
hdogsales = hdogsales + hotdogs[h];
}
for (int h=0; h<=6; h++)
{
if(hotdogs[h] > largest)
largest=hotdogs[h];
}
{
if (hotdogs[h] == largest)
day = "1";
else if (hotdogs[h] == largest)
day = "2";
else if (hotdogs[h] == largest)
day = "3";
else if (hotdogs[h] == largest)
day = "4";
else if (hotdogs[h] == largest)
day = "5";
else if (hotdogs[h] == largest)
day = "6";
else if (hotdogs[h] == largest);
day = "7";
}
我真的很感激在这方面的帮助。这已经快让我发疯了。我有一种感觉,我在if语句中设置的参数是罪魁祸首,但对于我的生活,我想不出在那里还能使用什么。
关于day
总是7
,这可能是你的问题。
else if (hotdogs[h] == largest);
day = "7";
对于这个,它等价于这个:
else if (hotdogs[h] == largest) {
;
}
day = "7";
这就是不使用大括号的问题;如果有一个额外的;
,它会吃掉if/else
条件,然后下一行总是执行。
你可能应该重构整个循环,使其与顶部循环同时设置:
for (int h=0; h<=6; h++)
{
if(hotdogs[h] > largest)
{
largest=hotdogs[h];
day = h;
}
}
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
int hotdogs[7] = { 12, 43, 76, 23, 98, 1, 27 };
int hdogsales = accumulate(begin(hotdogs), end(hotdogs), 0);
auto bestDay = std::distance(begin(hotdogs),
std::max_element(begin(hotdogs), end(hotdogs)));
cout << "total sales for the week: " << hdogsales << endl;
cout << "best day was day " << to_string(bestDay + 1) << " with " << hotdogs[bestDay] << " salesn";
return 0;
}
我认为你应该在第11行添加一个循环,就像这样:
for (h = 0; h <= 6; h++)
{
cin >> hotdogs[h];
hdogsales = hdogsales + hotdogs[h];
}
for (int h = 0; h <= 6; h++)
{
if (hotdogs[h] > largest)
largest = hotdogs[h];
}
for (int h = 0; h <= 6; h++)
{
if (hotdogs[h] == largest)
day = to_string(h + 1);
}
cout << day;
编辑:对不起,我误解了这个问题,这里是我认为:)
相关文章:
- 为"adjacent"变量赋值时出现问题
- 为什么我不能在返回 const 的布尔函数中为类成员变量赋值?C++
- c++问题:给一个变量赋值后,另一个变量发生了变化
- 如何在不使用赋值运算符的情况下为动态变量赋值?
- 为什么我不能为变量赋值函数?
- 可视化的c++变量赋值使代码正常工作
- 如何为结构类型变量赋值
- 使用 boost python 从 c++ 为 python 中的类成员变量赋值
- QT变量赋值,<没有这样的值>,SIGSEGV
- C++:为全局类变量赋值
- 从类外部为类中的变量赋值
- 在 c++ 中为字符串变量赋值
- 为类中的私有静态变量赋值
- 使用类为变量赋值 (C++)
- 在编译时为变量赋值
- C ++变量赋值,这是正常的方式吗
- 在C++中为类变量赋值后声明类变量
- 了解工厂方法和静态变量赋值的返回值优化 (Visual Studio)
- 如何在 c++ 中从函数获取返回值而不为其变量赋值
- 简单的引用变量赋值导致对象的全局指针出现segfault