![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kontaktnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 22.8.2012 Репутация: нет Всего: нет |
Не судите строго за код.Я только начинаю разбираться с основами.У меня одна проблема, в цикле while, у меня постоянно возникает бесконечность повторения.Хочу чтобы мне обьяснили мою ошибку.Выполняю по одному готовому примеру свои задачи, но в примере вроде всё проходит, а вот в задачах возникает бесконечный цикл.Поясните пожалуйста самыми простыми словами.
Задача состоит в том, чтобы с помощью контрольного значения (-1), т.е. пока его не введут, выполнялся цикл для разных заправок например.Требуется вывести км/литры по каждой конкретной заправке, и среднее кол-во км/литров по 2-3-4 заправкам #include <stdio.h> main () { float total = 0, counter = 0; int km, litr, a, itogkm, itoglitr; printf("Введите расход бензина(-1 to end): \n"); scanf("%d", &litr); printf("Введи кол-во проеденных км: \n"); scanf("%d", &km); while (counter != -1) { itoglitr += litr; itogkm += km; a = (float) km / litr; counter++; printf("Для этой заправки использовано км/литр: %f/n", a); } total = itogkm / itoglitr; printf("Среднее число км/литров: %d/n", total); return 0; } |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Так ведь counter нигде не вводится. Сначала он равен 0, потом на каждом шаге цикла увеличивается на единицу, соответственно, до значения -1 не добирается.
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Доберётся. Только ждать долго. Сначала от 0 доберётся до 0x7fffFFFF (это чуть больше 2000000000), затем столько же от -0x80000000 до -1.
Если используешь 16 разрядный компилятор, ждать поменьше - от 0 до 32767 и от -32768 до -1. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
![]() -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Да, не заметил что float - тем более без подсветки синтаксиса. Kontaktnik, используй кнопку "Код"!
С таким счётчиком даже такой цикл
будет бесконечным - из-за ошибок округления counter никогда не станет 0. Добавлено через 2 минуты и 40 секунд Кстати, total - тоже float, а печатается с помощью %d. Лажу напечатает. |
|||
|
||||
Kontaktnik |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 22.8.2012 Репутация: нет Всего: нет |
Как сделать так, чтобы при вводе -1(т.е. этого самого контр.значения)
Пробывал реализовать с помощью if/else, но никак не поддаётся. Заранее благодарен |
||||
|
|||||
NadezdaT |
|
|||
Крылья Профиль Группа: Участник Сообщений: 19 Регистрация: 4.4.2012 Репутация: нет Всего: нет |
О_о...
Это сообщение отредактировал(а) NadezdaT - 23.8.2012, 09:39 |
|||
|
||||
Kontaktnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 22.8.2012 Репутация: нет Всего: нет |
Всем спасибо, разобрался
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |