|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.09.2009, 16:47 | #1 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
Выражение в С++
Мне нужно вычислить выражение в С++ 3.1
r=ch*3+(i+0.3)+(f+d)-12 где ch-char, i-int, f,d,r-float PHP код:
Но программа выдает: r = 615.299988 Null pointer assignment PS Я вот сомневаюсь что для f и d нужно было применять %d, но что если не оно %f ? Или где может быть ошибка. |
19.09.2009, 17:02 | #2 | |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Код:
Цитата:
|
|
19.09.2009, 17:15 | #3 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
Поменял код формата на %f.
Код:
scanf : floating point formats not linked Abnormal program termination ______________________________ И не пойму зачем тогда вводить символьное значение в выражение. |
19.09.2009, 17:35 | #4 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Я, вообще-то, хотел обратить ваше внимание не столько на то, что в качестве параметра можно передавать "%f", сколько на то, что неплохо бы в качестве второго параметра этой функции передавать адрес вашей переменной, а не саму переменную. Переменную типа int функция еще стерпела, но вот переменную типа float не смогла проглатить. В любом случае, если передавать не адрес, то последствия работы программы будут непредсказуемыми.
|
19.09.2009, 17:46 | #5 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
Я не так давно начал изучать С++ и очень мало понял из того что вы написали, не могли бы вы указать где у меня ошибка и что нужно сделать.
|
19.09.2009, 17:53 | #6 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
Сейчас заметил в своих лекциях что, в одном из примеров стояло ("%c",&ch)
Попробовал поставил везде & и вот что получил при вводе этих символов и цифр: t 6 7 8. r=357.299988 Только из за того что я ввожу первым символ, я не могу понять как программа высчитывает эту сумму. |
19.09.2009, 18:10 | #7 | |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Цитата:
Дело в том, что t - переменная типа char. Есть подозрения, что в арифметическом выражении участвует ее код. Программа работает правильно, я думаю. Cкорее всего код символа t есть 116. А вы уж сами посчитайте, правильно ли работает ваша программа. |
|
19.09.2009, 18:23 | #8 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
Как я понял если вводить a - английскую (97) но почему именно 97 ? И при изменении из a в b например, в ответе всегда меняется значение на 3.
Ну да ладно, это не столь важно, главное что вы помогли и на толкнули меня на ошибку, я уже аж сдался, но в ожидании ответа полистал конспект и на толкнулся. Спасибо, если тут как то можно поднять репутацию, то скажите как. |
19.09.2009, 19:02 | #9 | ||
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Цитата:
Цитата:
|
||
19.09.2009, 20:02 | #10 |
Пользователь
Регистрация: 23.05.2009
Сообщений: 21
|
И немного не по теме но все же, каким редактором можно открыть исходный код, чтобы видны были русские символы и можно было перенести в Майкрасофт ворд для распечатки.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
моульное выражение | )Игнат( | Общие вопросы Delphi | 1 | 25.08.2009 21:48 |
Логическое выражение | DaniyMilner | Общие вопросы C/C++ | 6 | 22.02.2009 19:14 |
регулярное выражение | XeN0N | Помощь студентам | 1 | 27.01.2009 15:14 |
Проверьте выражение | fosto | Помощь студентам | 2 | 15.12.2008 22:58 |
Строковое выражение | SeregaIRK | Общие вопросы C/C++ | 1 | 07.10.2008 19:20 |