@Nastyuuuushka

Почему функция не возвращает нужное значение?

// Хочу чтобы функция обнуляла введённое значение до заданного предела и выводила остаток. То есть когда мы вводим 100 , при делении на 25 остатка нет и выходит 0, а если 99, то получается остаток 1. Подскажите как оформить? Выводит всегда "0" при любом значении.
#include <stdio.h>

int main(void)
{
	int surrender = scanf_s("ENTER...");
	int coin25 = 25,
		coin10 = 10,
		coin5 = 5,
		coin1 = 1;
	int countCoin25 = 0,
		countCoin10 = 0,
		countCoin5 = 0,
		countCoin1 = 0;
	while (coin25 > 0 && surrender - coin25 >= 0) {
		surrender - coin25;
		countCoin25++;
	}
	printf("SURRENDER IS %d " , countCoin25);
	system("pause");
}
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Alexander1705
  • Обнулить можно переменную, но не значение.
  • Обнулить - значит присвоить ноль.
  • Из предыдущего вытекает, что нельзя обнулить до заданного предела, потому ноль он и в Африке ноль, и нет у него никакого предела.
  • Какой ещё остаток при обнулении?
  • Остаток от деления 99 на 25 - это 24, а не 1
  • Зачем вы создали кучу переменных, которые не используете?
  • В условии цикла вы делаете проверку coin25 > 0, но зачем, если вы никогда не изменяете эту переменную?
  • Выражение surrender - coin25 вычисляет значение, но никуда его не записывает. Если хотите отнять что-то от переменной, можно использовать foo = foo - bar; или foo -= bar;


Если я правильно понял, и нужно посчитать минимальное количество монет, то вам нужно что-то вроде этого:
#include <iostream>

int main()
{
    const int N = 4;
    const int coinsValue[N] = {25, 10, 5, 1};
    int coinsCount[N] =       { 0,  0, 0, 0};

    int sum;
    std::cin >> sum;

    for (int i = 0; i < N; ++i)
    {
        while (sum >= coinsValue[i])
        {
            coinsCount[i]++;
            sum -= coinsValue[i];
        }
        std::cout << coinsCount[i] << " (" << coinsValue[i] << 
        (coinsCount[i] == 1 ? ") coin\n" : ") coins\n");
    }


}
Ответ написан
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
int surrender = scanf_s("ENTER...");
int count25 = surrender / 25,
    remainder25 = surrender % 25;
...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы