Ошибка при использовании 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;
}

Объяснение кода листинга программы

  1. В функции SumD переменная s инициализируется значением a.
  2. Переменная i инициализируется значением 0.
  3. Используется цикл while, чтобы разделить число a на сумму его цифр, увеличивая значение переменной i на каждой итерации.
  4. Значение переменной a восстанавливается, а переменная s обнуляется.
  5. Используется цикл while, чтобы суммировать квадраты цифр числа a, возведенные в степень i, и уменьшать значение a на каждой итерации.
  6. В функции main вызывается функция system(cls), чтобы очистить консоль.
  7. Устанавливается локальная настройка для русского языка с помощью setlocale(LC_CTYPE,Russian).
  8. Пользователю предлагается ввести границы a и b.
  9. Переменная i инициализируется значением 0.
  10. Используется цикл for, чтобы перебрать все числа в диапазоне от a до b.
  11. Если функция SumD равна числу a, то переменная i увеличивается на 1, и число a выводится на консоль с помощью printf(%d , (int)a).
  12. После завершения цикла, выводится количество чисел армстронга в интервале с помощью printf(\nКоличество чисел армстронга в интервале: %d\n, i).
  13. Вызывается функция system(pause), чтобы приостановить выполнение программы до тех пор, пока пользователь не нажмет клавишу.
  14. Программа возвращает 0, чтобы указать, что она успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы