Pancake Glutton找到阵列中最大的价值

时间:2013-12-30 09:19:24

标签: c++ for-loop

#include <iostream>

using namespace std;

int main()
{
    int t;
    int temp[99];

    for (int i = 0; i < 10; i++) {
        cin >> temp[i];
    }

    for (int a = 0; a < 11; a++) {
        for (int b = 0; b < 11; b++) {
            if (temp[a] > temp[b]) {
                t = temp[a];
            }
        }
    }

    for (int a = 1; a < 11; a++) {
        if (temp[a] = t) {
            cout << "Person " << temp[a] << " ate the most pancakes\n" ;
        }
    }

    system("pause>nul");
    return 0;
}

所以我在cplusplus.com上做了一个名为pancake glutton的练习题。这个代码我只是想确定谁吃了最多的煎饼但是每次我完成程序我得到了很多数字和一个重复最后一次forloop 5次。我究竟做错了什么 ?这里是。 “Pancake Glutton 要求: 变量,数据类型和数字运算符 基本输入/输出 逻辑(if语句,switch语句) 循环(for,while,do-while) 阵列

写一个程序,要求用户输入由10个不同的人(第1人,第2人,......,第10人)吃早餐的煎饼数量 一旦输入数据,程序必须分析数据并输出哪个人吃早餐最煎饼。

★修改程序,以便输出哪个人吃早餐的煎饼数量最少。

★★★★修改程序,使其按照所有10个人吃的煎饼数量顺序输出一个列表。 即。

Person 4: ate 10 pancakes
Person 3: ate 7 pancakes
Person 8: ate 4 pancakes
...
Person 5: ate 0 pancakes"

2 个答案:

答案 0 :(得分:0)

你正在做一个赋值而不是一个相等的测试(operator =而不是operator ==):

if (temp[a] == t)

答案 1 :(得分:0)

您的代码包含多个错误。 1)。变量t未初始化。 2)。您只输入了10个元素。这意味着有效的指示是0 - 9.然后你尝试访问11个元素而不是10.所以像这样的循环

for(int a = 0;a<11;a++)

不正确。

3)这些循环毫无意义。

for(int a = 0;a<11;a++)
{
    for(int b = 0;b<11;b++)
    {
        if(temp[a]>temp[b])
        {
            t = temp[a];

        }
    }
}

4)这里使用赋值运算符而不是比较operatpr

   if (temp[a] = t)

5)您应该包含标题<cstdlib>,因为您使用标题中声明的函数系统。

据我所知,你需要的是编写一个代码,找到数组元素中的最大值。

要查找最大元素的索引,可以使用以下代码。

int theBiggest = 0;

for ( int i = 1; i < 10; i++ )
{
   if ( temp[theBiggest] < temp[i] ) theBiggest = i;
}

cout << "Person " << theBiggest << " ate the most pancakes equal to " << temp[theBiggest] << endl  ;