Хорошо, мне также нужно рассчитать и отобразить каждую высоту после 5% увеличения, используя отдельный массив из 10 элементов. Есть идеи? Извините за все это. Я впервые использую массивы.
#include <iostream>
using namespace std;
int main()
{
int MINheight = 0;
double height[10];
for (int x = 0; x < 10; x = x + 1)
{
height[x] = 0.0;
}
cout << "You are asked to enter heights of 10 students. "<< endl;
for (int x = 0; x < 10; x = x + 1)
{
cout << "Enter height of a student: ";
cin >> height[x];
}
system("pause");
return 0;
}
Просто зациклите вот так:
MINheight = height[0];
for (int x = 1; x < 10; x++)
{
if (height[x] < MINheight)
{
MINheight = height[x];
}
}
std::cout << "minimum height " << MINheight <<std::endl;
Примечание: вы не должны называть локальную переменную, начинающуюся с заглавной буквы, используя x
так как индекс массива тоже немного странный, хотя они оба работают нормально, но не в хорошем стиле.
Вы также можете использовать std::min_element
следующее:
std::cout << *std::min_element(height,height+10) << std::endl;
//^^using default comparison
Чтобы поместить элементы в отдельный массив с увеличенной высотой и отобразить их, выполните следующие действия:
float increasedHeights[10] = {0.0};
for (int i = 0; i < 10; ++i)
{
increasedHeights[i] = height[i] * 1.05;
}
//output increased heights
for (int i = 0; i < 10; ++i)
{
std::cout << increasedHeights[i] << std::endl;
}
По сути, вы можете отслеживать минимальное значение при его вводе, поэтому:
cout << "You are asked to enter heights of 10 students. "<< endl;
MINheight = numerical_limits<int>::max
for (int x = 0; x < 10; x = x + 1)
{
cout << "Enter height of a student: ";
cin >> height[x];
if(height[x] < MINheight)MINheight = height[x];
}
cout << "Minimum value was: " << MINheight << "\n";
Это создает переменную с максимально возможным значением, а затем, когда пользователь вводит новое значение, проверяет, меньше ли оно текущего минимума, если это так, сохраняйте его. Затем распечатайте текущий минимум в конце.