【发布时间】:2015-09-01 11:54:37
【问题描述】:
我正在做一些初学者练习,并且已经解决了这个问题,'Pancake Glutton'。
“编写一个程序,要求用户输入 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"
我已经成功输出了吃的最多和最少的煎饼,但我卡在了最后一点!
我可以按降序输出吃的煎饼数量,即 6、5、4、3、2 等,但我正在努力弄清楚如何将每个吃煎饼的数量分配给吃它们的用户?
我尝试使用与其他两个 for 循环相同的技术,但我知道这是不正确的,因为此方法不会将用户分配给他们吃的煎饼数量。
我觉得我在这里遗漏了一些非常简单的东西!感谢您的帮助!
#include <iostream>
using namespace std;
int main()
{
cout << "how many pancakes did you eat for breakfast?" << endl;
int person1, person2, person3, person4, person5;
cout << "Person 1: ";
cin >> person1;
cout << "Person 2: ";
cin >> person2;
cout << "Person 3: ";
cin >> person3;
cout << "Person 4: ";
cin >> person4;
cout << "Person 5: ";
cin >> person5;
int array[5] = {person1, person2, person3, person4, person5};
int temp = 0;
int res = -1;
for (int i = 0; i < 5; i++)
{
if (array[i] > temp)
{
temp = array[i];
res = i;
}
}
cout << "The most pancakes eaten was " << temp << " by Person " << (res+1) << endl;
int smallest = array[0];
int res2 = 0;
for (int i = 1; i < 5; i++)
{
if (array[i] < smallest)
{
smallest = array[i];
res2 = i;
}
}
cout << "The least pancakes eaten was " << smallest << " by Person " << (res2+1) << endl;
int temp3 = 0;
int res3 = 0;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (array[i] > array[j])
{
temp3 = array[i];
array[i] = array[j];
array[j] = temp3;
res3 = i;
}
}
}
for (int i = 0; i < 5; i++)
{
cout << "Person " << res3 << " ate " << array[i] << " pancakes" << endl;
}
}
【问题讨论】: