2016-02-26 2 views
-6

Мне нужно создать программу, которая принимает 6 чисел с плавающей запятой, и в конечном итоге мне придется сортировать их от наименьшего до наибольшего в массиве и отбрасывать самое большое и наименьшее число.C++ для циклов для ввода входных данных для заполнения массива

#include <iostream> 
using namespace std; 

int main(){ 

bool flag; 
float score1, score2, score3, score4, score5, score6; 
int size; 
float scoresheet [6] = {score1, score2, score3, score4, score5, score6}; 

cout << "Pleaser enter your score for the gymnast: "; 
cin >> score1; 

while (cin.fail() || score1 > 10 || score1 < 0) 
{ 
    cout << "Invalid score!" << endl; 
    cout << "Pleaser enter your score for the gymnast: "; 
    cin >> score1; 
} 

Это то, что у меня есть до сих пор. Я знаю, что мне нужно сделать цикл for, но как это сделать, чтобы после подтверждения ввода он назначил 6 входов на свое место в массиве «scoresheet»? Заранее спасибо.

+0

Если вы собираетесь объявлять (и использовать) 'score1',' score2' и т. Д. Отдельно, зачем беспокоиться о 'scoresheet [6]'? –

+0

Возьмите цикл проверки, поместите его в цикл for. Используйте массив. –

+0

Я думал, что это правильный способ сделать массив @R_Kapp –

ответ

0
#include <iostream> 
#include <array> 
#include <algorithm> 

using namespace std; 

int main(int argc, char**argv) { 

    array<float,6> myArray;//create and array of 6 elements 
    float number;//to store the individual numbers 

    cout << "Please type 6 numbers: "; 


    for(size_t i = 0; i < myArray.size(); ++i) 
     { 
      if(i==6){ 
       break; 
      } 
      cin >> number; 
      myArray[i] = number;//adding the numbers to the array 
     } 


    cout << "\nUnsorted array:" << endl; 
    for(size_t i = 0; i < myArray.size(); ++i) 
     cout << myArray [i] << " "; 



    cout << "\n\nSorted Array:" << endl; 
    sort(myArray.begin(), myArray.end()); 
    for(size_t i = 0; i < myArray.size(); ++i) 
     cout << myArray [i] << " "; 
    cout << endl; 

    //Smallest number 
    float smallest = 1000; 
    for(size_t i = 0; i < myArray.size(); ++i) 
    { 
     if(smallest > myArray[i]) 
      smallest = myArray[i]; 
    } 
    //Biggest number 
    float biggest = 0; 
    for(size_t i = 0; i < myArray.size(); ++i) 
    { 
     if(biggest < myArray[i]) 
      biggest = myArray[i]; 
    } 

    cout << "The Smallest number is: " << smallest << endl; 
    cout << "The Biggest number is: " << biggest << endl; 
    return 0; 
} 
+0

Редактор * позволяет * написать полный код, пожалуйста, проверьте мои изменения. Кстати, почему вы используете 'decltype' на' size() '? И в чем цель «bool stop»? Кажется, вы никогда не использовали его. –

+0

Большое спасибо Fabio –

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