Цикл 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, если нет - цикл продолжается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д