Ошибка при использовании 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, чтобы указать, что она успешно завершилась.