2015-12-01 3 views
1
#include<iostream> 
main() 
{ 
    int limit,input; 
    int sum=0; 
    int i; 
    std::cout<<"Please Enter the limit: "; 
    std::cin>>limit; 
    for(i=0;i<limit;i++) 
    { 
     std::cout<<"Please Input values: "; 
     std::cin>>input; 
     sum+=input; 
    } 
    std::cout<<"The sum of the values is: "<<sum; 
    std::cout << std::endl; 
    std::cout<<"The average of the values is: "<<sum/1+i; 


} 

Что делать, если я хочу найти значения Max и Min из значений, введенных пользователем?Как найти значения Max и Min?

+0

Вы забыли указать 'main' тип возврата. – user2079303

+0

Я знаю, я буду прав Int позже, но на данный момент я не знаю, как определить максимальные значения n min –

+0

Возможный дубликат [найти наибольшее и наименьшее число в массиве] (http://stackoverflow.com/questions/16298906/ find-most-and-smallest-number-in-a-array) – surajsn

ответ

0

Пожалуйста, попробуйте код ниже.

int main() 
{ 
    int limit,input; 
    int sum=0; 
    int i; 
    std::cout<<"Please Enter the limit: "; 
    std::cin>>limit; 
    int min = 0; 
    int max = 0; 
    for(i=0;i<limit;i++) 
    { 
     std::cout<<"Please Input values: "; 
     std::cin>>input; 

     if(i == 0) 
     { 
      min = input; 
      max = input; 
     } 
     else 
     { 
      if(input < min) 
       min = input; 

      if(input > max) 
       max = input; 
     } 
     sum+=input; 
    } 
    std::cout<<"The sum of the values is: "<<sum<<std::endl; 
    std::cout<<"The average of the values is: "<<sum/(1+i)<<std::endl; 
    std::cout<<"Max: "<<max<<std::endl; 
    std::cout<<"Min: "<<min<<std::endl; 

    return 0; 
} 
+0

Ты, парни, потрясающий !!!! Большое вам спасибо за то, что вы научили меня новому навыку !!! и большое спасибо за то, что вы сделали для меня логику! Также вы можете дать мне советы о том, как стать лучшим программистом? –

+0

Просто практика и практика. И некоторые книги на C++ для справки: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – ldlchina

0

Вообще вам нужно сделать следующее:

  1. Объявляем переменную для хранения Max и Min значения.
  2. Инициализировать Min с очень большим значением, например. 2147483647 и Max до очень небольшого значения, например. -2147483648.
  3. Внутри цикла, сравните input с Min, если input меньше, чем Min, обновление Min. Сделайте обратное с Max.

Всё.

0
int max=0, min=0; 
for(i=0;i<limit;i++) 
    { 
     std::cout<<"Please Input values: "; 
     std::cin>>input; 
     sum+=input; 

     if(i==0){ 
     max=input; 
     min=input; 
     } 

     if(input>max) 
      max=input; 

     if(input<min) 
      min=input; 
    } 

Now, you got the max and min value. 
4

Попробуйте

int min_v = std::numeric_limits<int>::max(); 
int max_v = std::numeric_limits<int>::min(); 

for(i=0;i<limit;i++) 
{ 
    std::cout<<"Please Input values: "; 
    std::cin>>input; 
    sum+=input; 
    min_v = std::min(input, min_v); 
    max_v = std::max(input, max_v); 
} 
+0

Все ответы верны, но это более «C++-стиле» :) – Pierre

1

Есть несколько способов, Вы можете хранить все входные значения от пользователя в std::vector<int>. Используйте этот вектор, чтобы узнать сумму элементов, а затем отсортируйте его, используя std::sort, чтобы получить значения Max и Min. Просто!

vector<int> v(limits); 
for(int i = 0; i<limits; i++) 
{ 
    int input; 
    cin >> input; 

    v.push_back(input); 
} 

int sum = 0; 
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) 
{ 
    sum += *it; 
} 

cout << "sum = " << sum << endl; 


sort(v.begin(), v.end()); 

cout << "Min = " << v[0] << endl; 
cout << "Max = " << v[v.size() -1] << endl; 
+1

'std :: minmax_element' лучше, чем' std :: sort'. – Jarod42

+1

И на сумму 'std :: accumulate' может помочь. – Jarod42

+0

Вау! Благодарю. Я не знал об этом. Эти функции кажутся более чистыми, чем использование циклов. –

Смежные вопросы