Доказать, что любую денежную сумму, большую 7 руб, можно выплатить без сдачи трешками и пятерками - C (СИ)

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

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

в общем программа сделанная, но выдает такую ошибку: "function 'fdiv' should have a prototype". объясните новичку в чем проблема.
# include <stdio.h>
# include <math.h>
# include <conio.h>
# include <stdlib.h>
int a,n,b;
void main()
{
n=0;
do {(puts("write n>7"));
scanf("%f",&a); }
while (n>7);
while (fmod(a,5)!=0); {
a=a-3;
n++; }
b=fdiv(a,5);
printf("%f","3*",n,"%f","5*",b);
getch();
}

Решение задачи: «Доказать, что любую денежную сумму, большую 7 руб, можно выплатить без сдачи трешками и пятерками»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    int num5, num3, remain, x;
 
    printf("Input a number:");
    scanf("%d", &x);
 
    num5 = x/10*2;
    remain = x % 10;
    if (remain < 8)
    {
        remain += 10;
        num5 -= 2;
    }
 
    num3 = 2*remain%5;
    num5 += 2*remain%3;
    if (remain == 15)
        num5 += 3;
    printf("%d = %d*5 + %d*3\n", 3*num3+5*num5, num5, num3);
    return 0;
}

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

В этом коде:

  1. Пользователю предлагается ввести число.
  2. Введенное число делится на 10, умножается на 2 и получается сумма пятицентовых монет.
  3. Остаток от деления введенного числа на 10 (это будет количество трехцентовых монет).
  4. Если остаток от деления введенного числа на 10 меньше 8, то он округляется до 8.
  5. Прибавляется 10 к остатку от деления и убавляется 2 у пятицентовых монет.
  6. Полученное значение делится на 5 и получается количество трехцентовых монет.
  7. Полученное значение умножается на 2 и получается количество пятицентовых монет.
  8. Если остаток от деления введенного числа на 10 равен 15, то к пятицентовым монетам добавляется еще 3.
  9. Выводится выражение, по которому вычисляется результат (3num3+5num5).
  10. Возвращается 0, чтобы прекратить выполнение программы.

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

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