C ++ использует перечисления с циклами for для заполнения массива с плавающей точкой

Мое упражнение:

Напишите программу, которая позволяет пользователю выбирать интенсивность цвета и прозрачность. Используйте одно перечисление для цветов и прозрачности — RED, GREEN, BLUE, ALPHA, Использовать for цикл, который использует набор перечислений для итерации RED вплоть до ALPHA включительно. Внутри for Цикл заставляет пользователя вводить значение для каждой перечисляемой константы (то есть значение для красного, значение для синего и т. д.), значения должны быть между 0.0 а также 1.0 и хранится в массиве.

#include <string>
#include <iostream>

enum Difficulty
{
RED,
GREEN,
BLUE,
ALPHA

};

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

char cColours[10][14] = { "RED", "GREEN", "BLUE", "ALPHA" };

float fArray[4];
int icounter = 0;

while (icounter != 5)
{

std::cout << "For colour " << cColours[icounter] << " please enter a number ranging from 0.0 - 1.0 " << std::endl;
std::cout << "press 10 to exit " << std::endl;for (int i = RED; i = ALPHA; i++)
std::cin >> fArray[i];
++icounter;

}

system("pause");
return 0;
}

-2

Решение

Согласно комментариям вы хотите получить один цветовой микс (r, g, b, a). Вы используете вложенные массивы даром.

Итак, один из возможных кодов:

#include <iostream>
#include <string>
#include <stdio.h>

enum ColorChannels {RED = 0, GREEN, BLUE, ALPHA, ALL_CHANNELS};
/*Every enumeration gives values to its elements. In default the first element is zero,
I illustrated this here. So ALL_CHANNELS (or difficulty if you want is equal with four,
which is the number of all channels - this will be useful in loop*/

int main(int argc, char* argv[])
{
std::string names[ALL_CHANNELS];
names[RED] = "RED"; //this is same to names[0]
names[1] = "GREEN";
names[BLUE] = "BLUE";
names[3] = "ALPHA";
/*I'm not sure if char sequences work. If work, use it. I prefer more the strings*/
float colorArray[ALL_CHANNELS];

for (int i = 0; i < ALL_CHANNELS; i++)
{
std::cout << "Enter " << names[i] << " value between 0.0 and 1.0: ";
//For instance "Enter RED value between 0.0 and 1.0: "
//and NOW your read one parameter. You made a nested loop for nothing
std::cin >> colorArray[i];
std::cout << "\n"; //for a new line
}
// all elements read

system("pause");
return 0;
}

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector