Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите написать программу на C, которая будет о 
:(
    Опции темы
Эрик1991
Дата 23.5.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Разработать программу на C, которая будет определять, превысил ли тот или покупатель универмага предельный размер кредита на своем расчетном счете. Для каждого покупателя доступна следующая информация:
1. Номер счета
2. Баланс на начало месяца
3. Общая сумма по всем статьям расхода для данного покупателя в этом месяце
4. Общая сумма всех кредитов, отнесенный на счёт данного покупателя в этом месяце
5. Допустимый предельный размер кредита
Программа должна вводить все эти данные, вычислять новый баланс (= начальный баланс + расходы - кредит) и определять, преввышает ли новый баланс предельный размер кредита покупателя. Для тех покупателей, чей предельный размер кредита превышен, программа должна отображать на экране намер счета покупателя, предельный размер кредита, новый баланс и сообщение "Предельный размер кредита превышен".

Например:
--------------------------------------------------------------
Введите номер счета (-1, если ввод закончен): 100 |
Введите начальный баланс: 5394.78 |
Введите общую сумму расходов: 1000.00 |
Введите общую сумму кредита: 500.00 |
Введите предельный размер кредита: 5500.00 |
Счёт: 100 |
Предельный размер кредита: 5500.00 |
Баланс: 5394.78 |
Предельный размер кредита превышен. |

Введите номер счета (-1, если ввод закончен): 200 |
Введите начальный баланс: 1000.00 |
Введите общую сумму расходов: 123.45 |
Введите общую сумму кредита: 321.00 |
Введите предельный размер кредита: 1500.00 |
Счёт: 100 |
Предельный размер кредита: 5500.00 |
Баланс: 5394.78 |
Предельный размер кредита превышен. |

Введите номер счета (-1, если ввод закончен): 300 |
Введите начальный баланс: 500.00 |
Введите общую сумму расходов: 274.73 |
Введите общую сумму кредита: 100.00 |
Введите предельный размер кредита: 800 |
Счёт: 100 |
Предельный размер кредита: 5500.00 |
Баланс: 5394.78 |
Предельный размер кредита превышен. |

Введите номер счета (-1, если ввод закончен): -1 |
----------------------------------------------------------------
Вот что у меня получилось:

Код

/* Программа, которая определяет,
превысил, ли тот или иной покупатель универмага предельный размер кредита
на своем расчетном счёте */
#include <stdio.h>

/* Функция main начинает исполнение программы */
main()
{
int nomer; /* номер счета */
float balans; /* баланс на начало месяца */
float sumpokupatel; /* общая сумма расходов */
float all_kredit; /* общая сумма кредита */
float size_kredit; /* предельный размер кредита */
float resultat;

/* Этап инициализации */
balans = 0; /* инициализировать баланс нулём */
sumpokupatel = 0; /* инициализировать обущую сумму расходов */
all_kredit = 0; /* инициализировать общую сумму кредита */

/* Этап обработки */
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);

/* цикл, пока не будет прочитано контрольное значение */
while ( nomer != -1 ) {

printf ( "Введите начальный баланс: ");
scanf ( "%f", &balans);

printf ( "Введите общую сумму расходов: " );
scanf ( "%f", &sumpokupatel);

printf ( "Введите общую сумму кредита: " );
scanf ( "%f", &all_kredit);

printf ( "Введите предельный размер кредита: ");
scanf ( "%f", &size_kredit);

/* Этап завершения */

resultat = balans + sumpokupatel - all_kredit;

if ( resultat >= size_kredit ) {
printf ( "Счёт: %d\n", nomer);
printf ( "Баланс: %.2f\n", balans);
printf ( "Предельный размер кредита: %.2f\n", size_kredit);
printf ( "Предельный размер кредита превышен.\n\n");
}
}
return 0; /* успешное завершение программы */
} /* конец функции main */

PM MAIL ICQ   Вверх
zim22
Дата 23.5.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Эрик1991 @  23.5.2009,  12:30 Найти цитируемый пост)
Вот что у меня получилось:

всё у вас хорошо получается. продолжайте в том же духе  smile 


--------------------
PM MAIL   Вверх
Эрик1991
Дата 23.5.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Я не понимаю что я упустил, у меня такой вот результат после компиляции программы.

Введите номер счёта (-1, если ввод закончен): 100
Введите начальный баланс: 5394.78
Введите общую сумму расходов: 1000.00
Введите общую сумму кредита: 500.00
Введите предельный размер кредита: 5500.00
Счёт: 100
Баланс: 5394.78
Предельный размер кредита: 5500.00
Предельный размер кредита превышен.

Введите начальный баланс:

То есть он пропускает Введите номер счёта (-1, если ввод закончен):
PM MAIL ICQ   Вверх
zim22
Дата 23.5.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Код

nomer = 0;
while ( nomer != -1 ) {
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);




--------------------
PM MAIL   Вверх
Soah
Дата 23.5.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 6
Всего: 54



zim22,  smile 


Эрик1991, надо продублировать строчки
Код

printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);

а куда, попробуйте сами
PM MAIL   Вверх
Эрик1991
Дата 23.5.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Цитата(zim22 @ 23.5.2009,  12:47)
Код

nomer = 0;
while ( nomer != -1 ) {
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);


Я пробовал такой вариант, но к сожаление тогда не убдет работать выход из программы, то есть контрольное значение не будет работать (-1)
PM MAIL ICQ   Вверх
zim22
Дата 23.5.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Soah, всё, я понял.  smile 

Цитата(Эрик1991 @  23.5.2009,  12:55 Найти цитируемый пост)
Я пробовал такой вариант,

мой вариант был ошибочный. забудьте о нём. две строчки необходимо добавить в вашу немодифицированную программу.

Эрик1991, чтобы русский текст корректно в консоли отображался добавьте в начало функции main эту строчку
Код

#include <locale.h>
...
main()
...
setlocale(LC_ALL, "Russian");


Это сообщение отредактировал(а) zim22 - 23.5.2009, 13:18


--------------------
PM MAIL   Вверх
Эрик1991
Дата 23.5.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Цитата(zim22 @ 23.5.2009,  13:17)
Soah, всё, я понял.  smile 

Цитата(Эрик1991 @  23.5.2009,  12:55 Найти цитируемый пост)
Я пробовал такой вариант,

мой вариант был ошибочный. забудьте о нём. две строчки необходимо добавить в вашу немодифицированную программу.

Эрик1991, чтобы русский текст корректно в консоли отображался добавьте в начало функции main эту строчку
Код

#include <locale.h>
...
main()
...
setlocale(LC_ALL, "Russian");

Я использую Unix подобную операционную систему GNU/Linux. Компилятор GCC версии 4.3.2
И никаких проблем с отображением русского языка в консоли нет...
А вы, как я понял используете операционную систему Microsoft семейства Windows?


а насчет самого счетчика с контрольным значением нет идей?

Это сообщение отредактировал(а) Эрик1991 - 23.5.2009, 13:26
PM MAIL ICQ   Вверх
zim22
Дата 23.5.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Эрик1991 @  23.5.2009,  13:26 Найти цитируемый пост)
А вы, как я понял используете операционную систему Microsoft семейства Windows?

 smile windows vista
Цитата(Эрик1991 @  23.5.2009,  13:26 Найти цитируемый пост)
а насчет самого счетчика с контрольным значением нет идей?

есть конечно. ладно, не хотите сами думать - вот ответ:
вставьте эти две строчки в самом конце while
Код

printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);


Это сообщение отредактировал(а) zim22 - 23.5.2009, 13:36


--------------------
PM MAIL   Вверх
Эрик1991
Дата 23.5.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Цитата(zim22 @ 23.5.2009,  13:35)
Цитата(Эрик1991 @  23.5.2009,  13:26 Найти цитируемый пост)
А вы, как я понял используете операционную систему Microsoft семейства Windows?

 smile windows vista
Цитата(Эрик1991 @  23.5.2009,  13:26 Найти цитируемый пост)
а насчет самого счетчика с контрольным значением нет идей?

есть конечно. ладно, не хотите сами думать - вот ответ:
вставьте эти две строчки в самом конце while
Код

printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);

Я не совсем понял... Может быть полностью код программы напишите....
Пожалуйста, очень хочется разобраться и понять
PM MAIL ICQ   Вверх
zim22
Дата 23.5.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Код

/* Программа, которая определяет,
превысил, ли тот или иной покупатель универмага предельный размер кредита
на своем расчетном счёте */
#include <stdio.h>
#include <locale.h>

/* Функция main начинает исполнение программы */
int main()
{
  setlocale(LC_ALL, "Russian");
int nomer; /* номер счета */
float balans; /* баланс на начало месяца */
float sumpokupatel; /* общая сумма расходов */
float all_kredit; /* общая сумма кредита */
float size_kredit; /* предельный размер кредита */
float resultat;

/* Этап инициализации */
balans = 0; /* инициализировать баланс нулём */
sumpokupatel = 0; /* инициализировать обущую сумму расходов */
all_kredit = 0; /* инициализировать общую сумму кредита */

/* Этап обработки */
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);

/* цикл, пока не будет прочитано контрольное значение */
while ( nomer != -1 ) {

printf ( "Введите начальный баланс: ");
scanf ( "%f", &balans);

printf ( "Введите общую сумму расходов: " );
scanf ( "%f", &sumpokupatel);

printf ( "Введите общую сумму кредита: " );
scanf ( "%f", &all_kredit);

printf ( "Введите предельный размер кредита: ");
scanf ( "%f", &size_kredit);

/* Этап завершения */

resultat = balans + sumpokupatel - all_kredit;

if ( resultat >= size_kredit ) {
printf ( "Счёт: %d\n", nomer);
printf ( "Баланс: %.2f\n", balans);
printf ( "Предельный размер кредита: %.2f\n", size_kredit);
printf ( "Предельный размер кредита превышен.\n\n");
}
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);
}
return 0; /* успешное завершение программы */
} /* конец функции main */



--------------------
PM MAIL   Вверх
Эрик1991
Дата 23.5.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Цитата(zim22 @ 23.5.2009,  13:48)
Код

/* Программа, которая определяет,
превысил, ли тот или иной покупатель универмага предельный размер кредита
на своем расчетном счёте */
#include <stdio.h>
#include <locale.h>

/* Функция main начинает исполнение программы */
int main()
{
  setlocale(LC_ALL, "Russian");
int nomer; /* номер счета */
float balans; /* баланс на начало месяца */
float sumpokupatel; /* общая сумма расходов */
float all_kredit; /* общая сумма кредита */
float size_kredit; /* предельный размер кредита */
float resultat;

/* Этап инициализации */
balans = 0; /* инициализировать баланс нулём */
sumpokupatel = 0; /* инициализировать обущую сумму расходов */
all_kredit = 0; /* инициализировать общую сумму кредита */

/* Этап обработки */
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);

/* цикл, пока не будет прочитано контрольное значение */
while ( nomer != -1 ) {

printf ( "Введите начальный баланс: ");
scanf ( "%f", &balans);

printf ( "Введите общую сумму расходов: " );
scanf ( "%f", &sumpokupatel);

printf ( "Введите общую сумму кредита: " );
scanf ( "%f", &all_kredit);

printf ( "Введите предельный размер кредита: ");
scanf ( "%f", &size_kredit);

/* Этап завершения */

resultat = balans + sumpokupatel - all_kredit;

if ( resultat >= size_kredit ) {
printf ( "Счёт: %d\n", nomer);
printf ( "Баланс: %.2f\n", balans);
printf ( "Предельный размер кредита: %.2f\n", size_kredit);
printf ( "Предельный размер кредита превышен.\n\n");
}
printf ( "Введите номер счёта (-1, если ввод закончен): ");
scanf ( "%d", &nomer);
}
return 0; /* успешное завершение программы */
} /* конец функции main */

Спасибо большое, отдуши. Теперь понял.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.