![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Программа компилируется Если рассказать: Программа проверяет - считается ли первый элемент строки =1, если да, то выдает "бессмысленное выражение", если нет - это уже другая история.. Самое главное, что после этого в конце задается вопрос: хотите ли еще ввести число? Допустим, да, вводим число =1. НО программа не выдает "бессмысленное выражение", ПАЧЕММУУУ? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| Goganchic |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 678 Регистрация: 18.6.2004 Репутация: нет Всего: 5 |
может быть ты имел ввиду:
|
||||
|
|||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
> потому что ты этого не запрограммировал.
Конкретней |
|||
|
||||
| S.A.G. |
|
||||||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Если пытаешься считать строку, то адрес определять ненужно т.к. имя массива является адресом его первого элемента. Неправильно:
Правильно:
Условие составлено неверно:
Правильно:
Окончательный вариант работающей программы:
Это сообщение отредактировал(а) S.A.G. - 20.10.2007, 19:20 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||||||
|
|||||||||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Не забывай возвращать 0, если в определении или прототипе у тебя заявлено, что функция возвращает значение.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Тут всё правильно. А вот здесь ошибка. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
У меня второе компиллируется, а первое - нет.
В чем ошибка? Сгораю от любопытства, если честно. Это сообщение отредактировал(а) S.A.G. - 20.10.2007, 19:43 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Плохой компилятор: см. ISO/IEC 14882:2003 2.5 Alternative tokens. У меня такое тоже компилируется
Только это ещё не означает корректность. Как уже сказал Daevaorn, ошибка в том, что используешь побитовое "или", а не логическое. В частности, в случае с логическим "или" совсем не нужны скобки вокруг сравнений point == 'y'. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
А, || надо было.
Круглые скобки - это елемент стиля. Т.е. как кому удобно. -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Все равно не работает (уже исправил (k==1) ). Если повторно набираю "1", происходит выход из программы.
Почему это правильно? scanf("%s", mill); Ведь если даже я укажу адрес, ошибки не будет, компилятор ее не выдаст. А если это и правильно, я до этого создавал темы, и в коде, который я там выкладывал, где-то было scanf("%s",&mill); И почему меня до этого никто не поправил? > Не забывай возвращать 0, если в определении или прототипе у тебя заявлено, что функция возвращает значение. Стоп, к сожалению я не знаю где это заявляется. Насколько я знаю оператор && можно заменить на AND, оператор || на OR |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Компилятор не выдаст ошибки даже, если ты напишешь scanf("%s", 21, 17);
В данном конкретном случае никакой разницы нет, но если, вдруг, ты заменишь у mill тип на char *, то получишь не совсем тот результат, какой хотел бы...
Только писать их нужно маленькими буквами. Почему? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
А зачем превращать С в свой личный язык программирования, сделать так конечно можно, но это плохо с точки зрения стиля.
Почему? |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Токо все равно прога не корректно работает
|
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
if( ( point == 'y' ) | ( point == 'Y' ) )
Да, тут побитовое OR, однако ошибки нет Да, тут вычисляются обе части в OR, однако в данном случае это некритично Кстати, ветвлений не будет, так как не нужно обходить вычисление правой части OR при true в первой |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Это не свой собственный язык. Это Стандартные ключевые слова(точнее alternative tokens) и любой нормальный компилятор их понимает. Ты наверное решил, что я предлагаю использовать #define? Нет. Я даже указывал чуть выше пункт в Стандарте, где описаны эти токены(IIRC, 2.5). Ок, уточню что я имел ввиду: здесь идеологическая ошибка. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
В msvs8 это сделано через макросы объявленные в <iso646.h>, так-что разницы нет. Добавлено через 4 минуты и 36 секунд
А ничего что он на Си пишет? |
||||
|
|||||
| archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Читай внимательней стандарт!
Это во-первых. Во-вторых, эти ключевые слова работают(должны работать) без подключения каких-либо хэдеров(как, к примеру, ключевое слово for). В-третьих, даже если это будет сделано через макросы, то поведуй мне пожалуйста, чем это будет противоречить стандарту?
Если эти имена нельзя использовать в качестве идентификаторов, то никаких проблем, даже если они будут определены через макросы не будет. Добавлено через 5 минут и 27 секунд А с чего ты взял? Во-первых, он об этом нигде явно не сказал(и это его проблемы - если нужно решение на Си, то, будьте добры, указывайте это явно). Во-вторых, даже используя С-стиль написания программ он использует С++ компиялтор и делает своим модулям расширение .cpp(иначе такое не скомпилировалось). Это сообщение отредактировал(а) archimed7592 - 22.10.2007, 12:12 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
нет, они не работают без подключения заголовочного файла.. я же говорил И вообще, если даже это часть стандарта, то все равно, имхо, лучше этим не пользоваться, если конечно кто-нибудь будет читать твою программу. Я к примеру не у кого в коде не встречал and or.... Зачем плодить сущности, если есть &&, то зачем тогда and (который к тому-же многие IDE не подсвечивают). |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Глупость какая... Давай использовать только кл. слово class ибо зачем плодить сущности и использовать struct, когда это, по сути одно и то же... Добавлено через 17 секунд
Выкинуть компилятор. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
visual studio 8 - на свалку
Не надо передергивать, я не это имел ввиду. Попробуй на собеседовании при приеме на работу написать что-то вроде if (a == 0 and b)... вряд-ли тебе дадут возможность объяснить что это часть стандарта, а компилятор нужно выкинуть. В реальной работе лучше использовать то, что понятно людям, которые с тобой работают, и компилятору, который купила фирма. А в реальных проектах эти "ключевые слова" можно встретить разве что в комментариях. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
угу.
если не дадут объясниться, то нафиг таких работодателей а еще людям не понятны паттерны (зачем, легче код скопипастить), система сигнал/слотов (зачем, можно функцию напрямую вызвать) синдром покупщика... g++/gcc покупать не требуется, например. про сколько реальных проектов (в процентном соотношении) ты можешь говорить? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Именно.
Думаю, я как-нибудь переживу, если меня не возьмут туда, где не чтиться Стандарт. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Много-ли контор, где его (g++) реально используют (для программирования под Windows). В основном все используют компиляторы, которые не "чтят" стандарт.. пардон Стандарт.
в процентном отношении от чего? |
||||
|
|||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Мсье слышал про объективное мнение Объективное мнение, в отличии от субъективного учитывает всё(в данном случае все существующие проекты Конкретно я использую и не испытываю от этого никаких неудобств, а что касается контор - это их личное дело, что именно использовать. При чём тут они вообще? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Мсье не умеет читать ваши мысли. Мое мнение не может учитывать все существующие проекты, но может учитывать те, в которых я участвовал, или изучал, по работе. И я никогда с этим не сталкивался. Ты сам когданибудь использовал эти операторы? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Нет, но если встречу в коде, то не удивлюсь... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Ну чё, вы не знаете как решить проблему?
Я в буквальном ступоре Повторюсь: при повторном введении "1" происходит выход из программы Это сообщение отредактировал(а) Ufyljy - 23.10.2007, 16:19 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Нет
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| Optimus |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 1.9.2007 Репутация: 1 Всего: 14 |
а что вы хотели
вызываем функцию askQu() она вызывает функцию firstNum() firstNum() вызывает функцию howNum() вызываем функцию getch() и все, выходим из программы ИМХО, функция main() и askQu() должны быть примерно так:
P.S. Используйте отладчик Это сообщение отредактировал(а) Optimus - 25.10.2007, 14:39 --------------------
"постановка задачи наполовину решает саму задачу" |
||||||||
|
|||||||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Препод лошара полная
Добавлено через 1 минуту и 13 секунд А Optimus's двойное спасибо |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Ufyljy, тебе про эту ошибку в одном из первых постов сказали.
Даже в древнем Turbo C есть функция TraceInto и StepOver - попробуй для запуска программа нажать F7. |
|||
|
||||
| Starikan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 25.10.2007 Репутация: нет Всего: -15 |
Всё дело в подключении к Direct
Попробуй такой вариант:
|
|||
|
||||
| DjoNIK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Starikan, ты уверен, что туда отписался?
-------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
2 Lazin: Не работает
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Ufyljy, поищи в меню пункт Debug, кстати чем пользуешься?
|
|||
|
||||
| Optimus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 1.9.2007 Репутация: 1 Всего: 14 |
Я не исправлял эту ошибку, потому что
я добавил цикл do while(), для того что бы выйти из программы, когда на вопрос ответ будет 'n' --------------------
"постановка задачи наполовину решает саму задачу" |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |