Программа должна вычислять введенное треугольное число и позволяя пользователю многократный ввод - C (СИ)
Формулировка задачи:
Всем привет!
Программа должна вычислять введенное треугольное число и позволяя пользователю многократный ввод.
Проблема в том что, если ввести следующее число то, она складывается с первым, например,
Треугольное число 5 = 15
Треугольное число 5 = 30 (она складывается с первым значением)
и объясните почему, если убрать второй scanf в коде то, цикл не останавливается, становиться бесконечным
#include <stdio.h>
int main ()
{
int n, number, triangularNumber, n2;
n2 = 0;
triangularNumber = 0;
printf ("What triangular number do you want? ");
scanf("%i", &number);
while (n2 <= number)
{
for (n = n2; n <= number; ++n)
triangularNumber += n;
printf("Triangular number %i is %i\n\n", number, triangularNumber);
printf ("Enter next triangular number ");
scanf("%i", &number);
}
return 0;
}Решение задачи: «Программа должна вычислять введенное треугольное число и позволяя пользователю многократный ввод»
textual
Листинг программы
int val;
do
{
scanf("%d", &val);
printf("triangular - %d\n", (val + 1) * val / 2);
} while (val > 0);
Объяснение кода листинга программы
- Введенное значение переменной
valиспользуется как параметр для вычисления треугольного числа по формуле (val + 1) * val / 2. - Результат вычисления треугольного числа выводится на экран с помощью функции
printf. - Программа продолжает запрашивать у пользователя ввод значения переменной
valи вычислять треугольное число до тех пор, пока значение переменнойvalбольше нуля.