Ошибка при использовании Clrscr - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include<iostream>
  4. double SumD(int a)
  5. {
  6. double s=a;
  7. int i=0;
  8. while (a>0)
  9. {
  10. a/=10;
  11. i++;
  12. }
  13. a=s, s=0;
  14. while (a>0)
  15. {
  16. s+=pow(a%10,i);
  17. a/=10;
  18. }
  19. return s;
  20. }
  21. int main(void)
  22. {
  23. clrscr();
  24. setlocale(LC_CTYPE,"Russian");
  25. double a,b;
  26. printf("Ââåäèòå ГЈГ°Г*Г*èöû a ГЁ b: \n ");
  27. scanf("%d %d",&a,&b);
  28. int i=0;
  29. for (a=10;a<b;a++)
  30. {
  31. if (SumD(a)==a) i++;
  32. }
  33. printf("Êîëè÷åñòâî Г·ГЁГ±ГҐГ« Г*ðìñòðîГ*ГЈГ* Гў ГЁГ*òåðâГ*ëå: %d",i);
  34. return 0;
  35. }
помогите найти ошибку в коде,компилятор жалуется на строку
Листинг программы
  1. clrscr();

Решение задачи: «Ошибка при использовании Clrscr»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <locale>
  4.  
  5. double SumD(int a)
  6. {
  7.     double s = a;
  8.     int i = 0;
  9.  
  10.     while (a > 0)
  11.     {
  12.         a /= 10;
  13.         i++;
  14.     }
  15.  
  16.     a = s;
  17.     s = 0;
  18.  
  19.     while (a > 0)
  20.     {
  21.         s += pow(a % 10, (double)i);
  22.         a /= 10;
  23.     }
  24.     return s;
  25. }
  26.  
  27. int main(void)
  28. {
  29.     system("cls");
  30.     setlocale(LC_CTYPE,"Russian");
  31.    
  32.     double a, b;
  33.     printf("Введите границы a и b: ");
  34.     scanf("%lf %lf", &a, &b);
  35.    
  36.     int i = 0;
  37.     for (; a < b; a++)
  38.     {
  39.         if (SumD(a) == a)
  40.         {
  41.             i++;
  42.             printf("%d ", (int)a);
  43.         }
  44.     }
  45.  
  46.     printf("\nКоличество чисел армстронга в интервале: %d\n", i);
  47.    
  48.     system("pause");
  49.     return 0;
  50. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы