好的,在这个网站上有几个和我类似的问题,但是因为没有人和我有相同的代码,所以我的问题没有得到回答。我正在尝试自学编程,我正在做这个练习,我在网上找到了一个叫“煎饼贪吃”的练习。
所以我的问题是:使用我的代码可以完成任务的两个部分,但前提是用户不输入两个或更多人吃相同数量的煎饼,因为然后程序输出多个人吃最多/最少数量的煎饼,这并不像我希望的那样干净。我如何解决这个问题,并让我的程序有一个额外的选项,让多个人吃相同数量的煎饼?即使是一个很小的变化,比如“人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;
}发布于 2019-02-11 22:33:32
归根结底,这不是一个困难的算法或编程问题,而是您希望输出看起来有多复杂(这是通过适当级别的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;
}https://stackoverflow.com/questions/54632223
复制相似问题