2016-11-15 2 views
-2

Привет, я сейчас работаю над проблемой, которую я получил в своем классе Highschool C++.2 мерных массива в C++

Предполагалось написать программу, которая содержит массивы, в которых вы можете хранить максимальную месячную температуру и самую низкую. А также, программа должны иметь петлю для вычисления каждой из следующих действий:

  • среднегодовой Высокой температуры

  • среднегодовых Низкотемпературный

  • Самой высокая Среднемесячная высокая температура

    • Самая низкая месячная средняя Высокая температура

Я застрял в месячной максимальной и самой низкой средней температуре и вам может понадобиться помощь. Мой код до сих пор:

#include <iostream> 

using namespace std; 

int main() 

{ 

class location; 
int high[12]; 
int low[12]; 
int i = 1; 
int avgh, avgl; 


//set location 
std::string location; 
std::cout << "Where is the location of your data: "; 
std::getline(std::cin, location); 

cout << endl << endl; 

//initialize array high 
for (i = 1; i < 13; i++) 
{ 
    cout << "Enter temperature high of month " << i << " "; 
    cin >> high[i]; 
    avgh += high[i]; 
} 

cout << endl << endl; 

//initialize array low 
for (i = 1; i < 13; i++) 
{ 
    cout << "Enter temperature low of month " << i << " "; 
    cin >> low[i]; 
} 

cout << endl << endl; 

//adds highs together 
    for (i = 1; i < 13; i++) 
{ 
    avgh += high[i]; 
} 
cout << "The yearly average high is: " << avgh/12 << endl; 

    //adds lows together 
    for (i = 1; i < 13; i++) 
{ 
    avgl += low[i]; 
} 
cout << "The yearly average low is: " << avgl/12 << endl; 



return 0; 
} 
+1

FYI массивы с индексом 0 на C++, что означает, что действительные элементы в массиве длиной 4 будут иметь индексы 0,1,2 и 3. Возможно, вы захотите получить [хорошую книгу на C++] (http: //stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list), чтобы помочь вам с основами и классом. – jaggedSpire

+0

вы идете хорошо, просто помните, что массивы начинаются с 0, а не с 1 – Marco

+0

'for (i = 1; i <13; i ++)' - Привыкайте к использованию в качестве начального индекса '0'. Массивы в C++ начинаются с '0', а не' 1'. Попытка подделать вещи, начав массивы на '1' искусственно, может и приведет к ошибкам по очереди и переполнению буфера, когда программа становится намного больше. – PaulMcKenzie

ответ

1
for (i = 1; i < 13; i++) 

Это тоже неправильно. Это должно быть:

for (i = 0; i < 12; i++) 

Показатели в C++ основаны на нуле.


//adds highs together 
for (i = 1; i < 13; i++) 
{ 
    avgh += high[i]; 
} 

Вы уже сделали это во время инициализации сцены, так это приводит к неверным результатам. Тем не менее, вы не сделали то же самое для низких, так что вы можете сохранить низкую часть. Во всяком случае, лучше сделать их как при инициализации, так и в обоих, чтобы сохранить прямой способ.

+0

ах спасибо. Это многое объясняет. Пойми о моем невном вопросе, но я только начал изучать C++ –

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