gpt4 book ai didi

c++ - "Pancake glutton"练习;如果用户输入两个或更多相等的值怎么办

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:04 25 4
gpt4 key购买 nike

好吧,这个网站上有几个类似我的问题,但由于没有人拥有与我相同的代码,所以我的问题没有得到解答。我正在尝试自学编程,并且正在做我在网上找到的名为“Pancake glutton”的练习。

所以这是我的问题:使用我的代码可以完成任务的两个部分,但前提是用户不输入两个或更多人吃了相同数量的煎饼,因为程序会输出多个人吃了最多/最少的煎饼,没有我想要的那么干净。我怎样才能解决这个问题并让我的程序为多人吃同样数量的煎饼提供额外的选择?即使只是一个微小的变化,比如“x 吃得最多,y 吃得最少,z 也吃得最少”对我来说就足够了。

这是“煎饼馋嘴”练习:“编写一个程序,要求用户输入 10 个不同的人(第 1 人、第 2 人、...、第 10 人)早餐吃的煎饼数量输入数据后,程序必须分析数据并输出哪个人早餐吃煎饼最多。

★ 修改程序,让它也输出哪个人早餐吃煎饼的数量最少。"

int main(){

cout << "Enter the number of pancakes eaten by every person." << endl;
int personNum[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i = 0;
int pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10;
int pancakeNum[]{pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10};

for(i = 0; i <= 9; i++){
cout << "Person " << personNum[i] << ": ";
cin >> pancakeNum[i];
}

int pancakeMax = *max_element(pancakeNum, pancakeNum+10);

for(i = 0; i <= 9; i++){
if(pancakeMax == pancakeNum[i]){
cout << "Person " << personNum[i] << " ate the most
pancakes (" << pancakeMax << ")." << endl;
}
}

int pancakeMin = *min_element(pancakeNum, pancakeNum+10);

for(i = 0; i <= 9; i++){
if(pancakeMin == pancakeNum[i]){
cout << "Person " << personNum[i] << " ate the least
pancakes (" << pancakeMin << ")." << endl;
}
}

return 0;
}

最佳答案

好吧,最终它不会归结为一个困难的算法或编程问题,而是您希望输出显示的复杂程度(这是通过适当级别的 if-else 函数完成的).例如。下面我展示了一个相对简单的枚举解决方案来解决你的问题 - 如果你想要你提供的语法复杂的输出,你需要检查 if-else 当有不止一个人的情况时吃得最多/最少。

关于如何修改代码的示例解决方案是(尽可能多地保留代码):

int main(){

cout << "Enter the number of pancakes eaten by every person." << endl;
int personNum[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i = 0;
int pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10;
int pancakeNum[]{pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10};

for(i = 0; i <= 9; i++){
cout << "Person " << personNum[i] << ": ";
cin >> pancakeNum[i];
}

int pancakeMax = *max_element(pancakeNum, pancakeNum+10);

cout << "The following persons ate the most amount of pancakes (" << pancakeMax << "):" << endl;
for(i = 0; i <= 9; i++){
if(pancakeMax == pancakeNum[i]){
cout << personNum[i] << endl;
}
}

int pancakeMin = *min_element(pancakeNum, pancakeNum+10);

cout << "The following persons ate the least amount of pancakes (" << pancakeMin << "):" << endl;
for(i = 0; i <= 9; i++){
if(pancakeMin == pancakeNum[i]){
cout << personNum[i] << endl;
}
}

return 0;

}

关于c++ - "Pancake glutton"练习;如果用户输入两个或更多相等的值怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com