C ++数组初学者

时间:2015-06-16 09:42:22

标签: c++ arrays

我有这个代码,我一直在努力工作,它是基本的,因为它是一个初学者,它工作正常,但我似乎无法弄清楚如何使它显示最少和最多的煎饼吃。非常感谢你提前。

#include <iostream>
using namespace std;

int main(){

   int pancakes[10];
   int x,i;

    cout << "Hello user!" << endl;
    cout << endl;
    cout << "Please enter how many pancakes did each of the 10 people eat:" << endl;
    cout << endl;

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

    cout  << "1st person ate" << "  " << pancakes[0] << " " << "pancakes" << endl;
    cout  << "2nd person ate" << "  " << pancakes[1] << " " << "pancakes" << endl;
    cout  << "3rd person ate" << "  " << pancakes[2] << " " << "pancakes" << endl;
    cout  << "4th person ate" << "  " << pancakes[3] << " " << "pancakes" << endl;
    cout  << "5th person ate" << "  " << pancakes[4] << " " << "pancakes" << endl;
    cout  << "6th person ate" << "  " << pancakes[5] << " " << "pancakes" << endl;
    cout  << "7th person ate" << "  " << pancakes[6] << " " << "pancakes" << endl;
    cout  << "8th person ate" << "  " << pancakes[7] << " " << "pancakes" << endl;
    cout  << "9th person ate" << "  " << pancakes[8] << " " << "pancakes" << endl;
    cout  << "10th person ate" << " " << pancakes[9] << " " << "pancakes" << endl;

    return 0;
}

4 个答案:

答案 0 :(得分:1)

您可以使用标准库中的min_elementmax_element执行此操作:

#include <algorithm>

cout << "The smallest number of pancakes was " << *min_element(pancakes, pancakes + 10) << endl;
cout << "The largest number of pancakes was "  << *max_element(pancakes, pancakes + 10) << endl;

答案 1 :(得分:1)

由于您是初学者,我将使用循环来提供一个简单的解决方案。

int max = 0;
for(i = 0; i < 10; i++) {
    if(pancakes[i] > max) max = pancakes[i];
}
cout << "Most amount of pancakes eaten by a single person: " << max << endl;

答案 2 :(得分:0)

首先,您可以使用循环打印它们,而不是大约10 cout's

for (i=0;i<10;i++ ){

    if(i==0)
        cout  <<i+1<< "st person ate" << "  " << pancakes[i] << " " << "pancakes" << endl;
    else if(i==1)
        cout  << i+1<<"nd person ate" << "  " << pancakes[i] << " " << "pancakes" << endl; 
    else if(i==2) 
        cout  << i+1<<"rd person ate" << "  " << pancakes[i] << " " << "pancakes" << endl;
    else 
        cout  <<i+1<< "th person ate" << "  " << pancakes[i] << " " << "pancakes" << endl;
 }

其次,您可以直接在数组中输入值,不需要中间变量x

for (i=0;i<10;i++ ){

    cin >> pancakes[i];
}

对于最大和最小问题,请选择两个变量,例如 - maxmin。将它们初始化为任意最小值(比如0,如果不处理负数)和最大值(比如INT_MAX)。或者,您可以将它们初始化为数组的第一个元素。

要查找max和min,您可以遍历整个数组,同时检查元素是否大于或小于max和min变量。如果是,则将它们分配给您的变量:

for (i=0;i<10;i++ ){

if(pancakes[i]>max)
  max = pancakes[i];

if(pancakes[i]<min)
  min = pancakes[i];
}

答案 3 :(得分:0)

您可以在内部添加std::cout,如下所示,

for (int i = 0; i < 10; i++ )
{
   std::cin >> pancakes[i];
   std::cout << i+1 <<"st person ate" << "  " << pancakes[i] << " " << "pancakes" << std::endl;
}

int maxpancakes = pancakes[0];
int minpancakes = pancakes[0];

for(int i = 0; i < pancakes.length(); i++ )
{
    if( pancakes[i] < minpancakes ) 
       minpancakes = pancakes[i];
    if( pancakes[i] > maxpancakes ) 
       maxpancakes = pancakes[i];
} 

std::cout << "The smallest pan cake had is :" << minpancakes << std::endl;
std::cout << "The max pan cake had is :" << maxpancakes  << std::endl;