Отношение четырехзначного числа к сумме его цифр - C (СИ)

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

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

Здравствуйте. Дана задача составить алгоритм, который находит наибольшее значение отношения четырехзначного числа к сумме его цифр, т.е. среди всех чисел от 1000 до 9999. Вроде бы простая задача, но не работает:
#include<stdio.h>
#include<conio.h>
#include<locale.h>
int main()
{
setlocale(LC_ALL, "Russian");
int n=1000,c,m,s;
float d,max;
d=0;c=0;max=0;
for(;n<10000;n++)
    {
    m=n;s=0;
    while(n>0)
        {
        s=s+n%10;
        n/=10;
        }
    d=m/s;
    if(max<d)
        {
        max=d;
        c=m;
        }
    }
printf("максимальное отношение числа = %5.1f \n",max);
printf("число %d \n",c);
getch();
}
Заранее спасибо за помощь.

Решение задачи: «Отношение четырехзначного числа к сумме его цифр»

textual
Листинг программы
int main()
{
setlocale(LC_ALL, "Russian");
int n,s,m,c;
float d,max;
n=1000;max=0;d=0;
for(;n<10000;n++)
    {
    s=0;m=n;
        while(n>0)
        {
        s+=n%10;
        n/=10;
        }
    d=m/s;
        if(max<d)
            {
            max=d;
            c=m;
            }
    n=m;
    }
printf("  отношение = %6.3f\n",max);
//для проверки
printf("  число m = %d\n",m);
printf("  число d = %d\n",d);
printf("  число s = %d\n",s);
getch();
}

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

  1. Вводится значение переменной n равное 1000 и инициализируется переменная max равная 0.
  2. Выполняется цикл for, который выполняется 9999 раз (от 1000 до 9999).
  3. Внутри цикла переменной s присваивается значение 0, переменной m присваивается значение n, а переменной n присваивается значение 0.
  4. Затем выполняется внутренний цикл while, который выполняется до тех пор, пока n больше 0.
  5. Внутри внутреннего цикла значение n делится на 10 (получение последней цифры числа), а затем прибавляется к s (сумма цифр числа).
  6. После завершения внутреннего цикла переменной d присваивается значение m деленное на s (отношение числа к сумме его цифр).
  7. Если значение max меньше текущего значения d, то максимальное значение max заменяется на текущее значение d, а переменная c заменяется на значение m.
  8. После завершения цикла for выводится значение переменной max и для проверки выводятся значения переменных m, d и s.
  9. Программа ждет нажатия клавиши с помощью функции getch().

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


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

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

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