Как мне сделать чтоб переменая а тоже увеличивалась?
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
float a = 2.0;
float y;
float x = 1.0;
for (; x < 8; x += 0.5)
{
while (a < 10)
{
a++;
}
if (a > x)
{
float y = pow(a, 2) + x;
printf("y=%f a=%f\t x=%f \n", y, a, x);
}
else if (a == x)
{
float y = a * a;
printf("y=%f a=%f\t x=%f \n", y, a, x);
}
else if (a < x)
{
float y = (a * a) - x;
printf("y=%f a=%f x=%f \n", y, a, x);
}
}
}
Ответы (1 шт):
Автор решения: Юрий Козлов
→ Ссылка
Я немного изменю Ваш код:
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
float y;
for (float x = 1.0; x <= 8; x += 0.5)
{
for (float a = 2.0; a <= 10; a +=1)
{
if (a > x)
{
float y = pow(a, 2) + x;
printf("y=%f a=%f\t x=%f \n", y, a, x);
}
else if (a == x)
{
float y = a * a;
printf("y=%f a=%f\t x=%f \n", y, a, x);
}
else if (a < x)
{
float y = (a * a) - x;
printf("y=%f a=%f x=%f \n", y, a, x);
}
}
}
}
Что я сделал:
- убрал объявления
x,aв заголовки циклов. НЕ обязательное изменение. - Заменил
while, который здесь не удобен, наfor, и убрал все вычисления в тело этого нового цикла. - Присвоение
a=2.0в заголовке цикла гарантирует, что для каждогоxпараметрaбудет проходить, как и положено, весь свой диапазон.
UPD.
То, как написано у Вас по ссылке в онлайн-компиляторе работать нормально не будет, так как переменная a единожды (при первом проходе внешнего цикла) дойдет до 10, а после этого, на следующих проходах она при начале цикла while уже будет >10, и цикл выполняться не будет.
