Цикл While не останавливается - C (СИ)
Формулировка задачи:
Всем привет! Не судите строго за код, недавно начал учить Си. Объясните почему цикл не останавливается
Задача вот в чем, ввожу любое число например 20, и программа должна начиная от 1 до 20 подсчитать сумму квадрата этих чисел, проблема в том что когда ввожу 20 то цикл становиться бесконечным, по условии должна остановиться достигая 20. Например так:
1 1
2 4
3 9
и т.д до 20
#include <stdio.h>
int main(void)
{
setlocale(0,"");
int num = 0;
int num2;
printf("Введите число ___\b\b\b");
scanf("%d",num2);
while (num++ < num2 )
{
printf("%4d %6d\n", num, num * num);
}
return 0;
}Решение задачи: «Цикл While не останавливается»
textual
Листинг программы
int a;
char buf[88];
do
{
cout << "Salonov vsego 2! Viberete salon 1 ili salon 2!: ";
cin.getline(buf,sizeof(buf));
a=atoi(buf);
}while( a!=2 && a!=1);
Объяснение кода листинга программы
- Объявляются две переменные:
aтипаintиbufтипаcharс размером массива 88. - Запускается цикл
do-while, который будет выполняться, пока значение переменнойaне станет равным 2 или 1. - В каждой итерации цикла выводится сообщение
Salonov vsego 2! Viberete salon 1 ili salon 2!:с помощью функцииcout. - С помощью функции
cin.getlineсчитывается строка, введенная пользователем, и сохраняется в переменнойbuf. - Функция
atoiпреобразует строку в целое число и сохраняет результат в переменнойa. - Условие цикла
do-whileпроверяет, стало ли значение переменнойaравным 2 или 1, если нет - цикл продолжается.