Ошибка при использовании Clrscr - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> #include<iostream> double SumD(int a) { double s=a; int i=0; while (a>0) { a/=10; i++; } a=s, s=0; while (a>0) { s+=pow(a%10,i); a/=10; } return s; } int main(void) { clrscr(); setlocale(LC_CTYPE,"Russian"); double a,b; printf("Ââåäèòå ГЈГ°Г*Г*èöû a ГЁ b: \n "); scanf("%d %d",&a,&b); int i=0; for (a=10;a<b;a++) { if (SumD(a)==a) i++; } printf("Êîëè÷åñòâî Г·ГЁГ±ГҐГ« Г*ðìñòðîГ*ГЈГ* Гў ГЁГ*òåðâГ*ëå: %d",i); return 0; }
clrscr();
Решение задачи: «Ошибка при использовании Clrscr»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <locale> double SumD(int a) { double s = a; int i = 0; while (a > 0) { a /= 10; i++; } a = s; s = 0; while (a > 0) { s += pow(a % 10, (double)i); a /= 10; } return s; } int main(void) { system("cls"); setlocale(LC_CTYPE,"Russian"); double a, b; printf("Введите границы a и b: "); scanf("%lf %lf", &a, &b); int i = 0; for (; a < b; a++) { if (SumD(a) == a) { i++; printf("%d ", (int)a); } } printf("\nКоличество чисел армстронга в интервале: %d\n", i); system("pause"); return 0; }
Объяснение кода листинга программы
- В функции
SumD
переменнаяs
инициализируется значениемa
. - Переменная
i
инициализируется значением0
. - Используется цикл
while
, чтобы разделить числоa
на сумму его цифр, увеличивая значение переменнойi
на каждой итерации. - Значение переменной
a
восстанавливается, а переменнаяs
обнуляется. - Используется цикл
while
, чтобы суммировать квадраты цифр числаa
, возведенные в степеньi
, и уменьшать значениеa
на каждой итерации. - В функции
main
вызывается функцияsystem(
cls)
, чтобы очистить консоль. - Устанавливается локальная настройка для русского языка с помощью
setlocale(LC_CTYPE,
Russian)
. - Пользователю предлагается ввести границы
a
иb
. - Переменная
i
инициализируется значением0
. - Используется цикл
for
, чтобы перебрать все числа в диапазоне отa
доb
. - Если функция
SumD
равна числуa
, то переменнаяi
увеличивается на1
, и числоa
выводится на консоль с помощьюprintf(
%d, (int)a)
. - После завершения цикла, выводится количество чисел армстронга в интервале с помощью
printf(
\nКоличество чисел армстронга в интервале: %d\n, i)
. - Вызывается функция
system(
pause)
, чтобы приостановить выполнение программы до тех пор, пока пользователь не нажмет клавишу. - Программа возвращает
0
, чтобы указать, что она успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д