![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 11.08.2011
Сообщений: 23
|
![]() Код:
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
И никакая и не куча, а всего парочка )).
Первая - не описана переменная x - ерунда, можно и не считать ошибкой )). Вторая существенная. Даже очень. Я скажу про нее подробнее.. То, что ты делаешь вот в этой строке Код:
"Я хочу использовать вот этот участок памяти не так, как он описан, а иначе. Я понимаю возможные последствия этого и прошу мне не препятствовать. Если в результате получится чушь, я не буду тянуть на тебя, уважаемый Компилятор, я буду упрекать только себя. Спасибо." Вещественное число и целое число предствалены в памяти абсолютно по-разному. Даже если их значения совпадают - тут 2 и там 2, например - содержимое памяти не совпадает ни в коей мере. Если ты хочешь перевести действительное число в целое, тебе надо использовать специальную функцию. Какую именно - решаешь сама. Вот, почему.. Если ты переделываешь целое в вещественное, то не возникает никакой неоднозначности, целая двойка становится действительной. Это можно сделать простым перекладыванием: a = i; Это потому, что множество вещественным чисел ШИРЕ, чем множество целых. А если ты переводишь, скажем, 2.5 в целые, то возникает законный вопрос: ты хочешь получить 2 или 3? Еще понятнее это становится, если нужно перевести 2.99. Можно переводить с недостатком, можно с избытком, а можно округлять (куда ближе). А для этого нужны определенные ДЕЙСТВИЯ (в отличие от приведения типов). Для твоих целей тут лучше всего подходит функция floor() - она возвращает максимальное целое, не превосходящее аргумента. Я не буду исправлять твой код - я приведу свой, который я запас для тебя вчера. Обрати внимание, что я не поленился написать слова (в приглажениях на ввод и в печати результата). Это нужно делать обязательно. И старайся значимые числа задавать именованными константами. Код:
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 03.10.2011 в 04:25. |
![]() |
![]() |
![]() |
#13 | ||
Пользователь
Регистрация: 11.08.2011
Сообщений: 23
|
![]() Цитата:
Я писала код по памяти, поэтому и забыла про х, сорри)) Цитата:
И еще, можно один вопрос? stdlib.h подключается для #define hour 60 #define circle 720 да? |
||
![]() |
![]() |
![]() |
#14 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Нет.
Вообще-то, stdlib.h тут вообще не нужна.. Она попала по недосмотру (-1 мне). Правильно было бы делать так: Цитата:
А что касается define - для них не нужна никакая библиотека, их ты можешь сама делать, какие хочешь. Это просто кусочек текста, который будет подставлен в код ниже. Если у тебя есть в задаче числа, которые повторяются несколько раз, то лучше их предствалять такими вот "дефайнами". Впоследствии, если понадобится изменить число, тебе не надо будет лазить по всему коду и выискивать его вхождения (их может быть много). Автоматически менять тоже нехорошо, потому что если у тебя в коде некоторые числа 60 представляют длину часа И пенсионный возраст, то если тебе потребуется перейти с минут на секунды и ты заменишь автоматом 60 на 3600 (секунд в часе) - то бедные ветераны труда все получат инфаркт, увидев, что им еще до пенсии больше трех тысяч лет работать.. ![]() define - это очень мощное средство. Можно заменять не только СВОИ переменные, но вообще, что угодно. Вот, посмотри, как я изуродовал ту нашу с тобой программулину с помощью define Код:
#define привет пока привет! ))
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 04.10.2011 в 00:55. Причина: изменил по мелочи для благозвучия )) |
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 11.08.2011
Сообщений: 23
|
![]()
#define привет!
Не знаю как препаду, но мне такая интерпретация очччееень понравилась))) Такого я еще нигде не видела!!! |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 10.02.2012
Сообщений: 44
|
![]()
программа не прокатит, если ввести время, например, 11ч 55мин.выдает 70мин.
я добавила одно условие перед выводом х: if (x>65) x=x-65; и вроде сработало. но наверное так нельзя было делать.не знаю.я в этом чайник. |
![]() |
![]() |
![]() |
#17 |
Новичок
Джуниор
Регистрация: 15.10.2013
Сообщений: 1
|
![]() Код:
|
![]() |
![]() |
![]() |
#18 | |
Пользователь
Регистрация: 02.01.2015
Сообщений: 85
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 02.01.2015
Сообщений: 85
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
коды стрелок | Lapo4ka | Общие вопросы C/C++ | 9 | 16.04.2017 22:53 |
Проверка стрелок | Ковалёв Александр | Общие вопросы C/C++ | 4 | 04.01.2011 09:01 |
Врашение стрелок | ddeman666 | Помощь студентам | 3 | 16.05.2010 22:37 |
Коды стрелок (Delphi) | VadEr | Помощь студентам | 6 | 13.06.2009 12:57 |
Borland C, перхват нажатий стрелок | Arion | Помощь студентам | 3 | 30.04.2008 12:33 |