Помощь с лабами |
Здравствуйте, гость ( Вход | Регистрация )
Помощь с лабами |
21.10.2007 - 22:02
Вставить ник | Быстрая цитата | Сообщение
#301
|
|
Энтузиаст Группа: Участник Сообщений: 355 Регистрация: 28.08.2005 Пользователь №: 9490 |
Написал программу на С++. Задание: "За каждый день апреля известна температура и был ли дождь. После 1ого дождя найти среднее арифметическое температур." Компилятор ошибок не находит, но программа работает неверно.
Код #include <stdio.h> void main(){ char d='n'; int den=0; float t=0; float td; while(d=='n'){ if(den==31){printf("dojda za aprel ne bilo"); break;} printf("vvedite tempiraturu: "); scanf("%f", &td); t=td+t; printf("bil li dojde? da - y, net - n "); scanf("%c", &d); den=den+1; } t=t/den; printf("srenaya temperatura %f\n", t); } Но в таком варианте прога работает. Код #include <stdio.h> void main(){ int d=0; int den=0; float t=0; float td; while(d==0){ if(den==31){printf("dojda za aprel ne bilo"); break;} printf("vvedite tempiraturu: "); scanf("%f", &td); t=td+t; printf("bil li dojde? da - 1, net - 0 "); scanf("%d", &d); den=den+1; } t=t/den; printf("srenaya temperatura %f\n", t); } Подскажите, что не так с 1 программой? Сообщение отредактировано BHYCHIK - 22.10.2007 - 21:01 |
|
|
22.10.2007 - 14:33
Вставить ник | Быстрая цитата | Сообщение
#302
|
|
void* Группа: Участник Сообщений: 1631 Регистрация: 29.09.2003 Пользователь №: 45 |
Неверно - это как? Беглое сравнение ошибок не выявляет.
|
|
|
22.10.2007 - 15:35
Вставить ник | Быстрая цитата | Сообщение
#303
|
|
Энтузиаст Группа: Участник Сообщений: 355 Регистрация: 28.08.2005 Пользователь №: 9490 |
Даже не считывая переменную n, происходит выход из цикла: выводится сообщение "bil li dojde? da - y, net - n ", затем сразу же выводится средняя темпиратура. Я работал в VS2005.
Сообщение отредактировано BHYCHIK - 22.10.2007 - 17:09 |
|
|
22.10.2007 - 16:51
Вставить ник | Быстрая цитата | Сообщение
#304
|
|
void* Группа: Участник Сообщений: 1631 Регистрация: 29.09.2003 Пользователь №: 45 |
Странно. Тогда подробнее. В каком компиляторе первый вариант НЕ работает? в каком варианте он работал?
Попробуй так. Код #include <stdio.h> void main(){ char d[2]; int den=0; float t=0; float td; d[0]='n'; while(d[0]=='n'){ if(den==31){printf("dojda za aprel ne bilo"); break;} printf("vvedite tempiraturu: "); scanf("%f", &td); t=td+t; printf("bil li dojde? da - y, net - n "); scanf("%c", d); den=den+1; } t=t/den; printf("srenaya temperatura %f\n", t); } в %c - строго малая c. Это принципиально. |
|
|
22.10.2007 - 17:13
Вставить ник | Быстрая цитата | Сообщение
#305
|
|
Энтузиаст Группа: Участник Сообщений: 355 Регистрация: 28.08.2005 Пользователь №: 9490 |
В предыдущем посте я имел ввиду, что Я работал в Визуал студии 2005. На других компиляторах не пробовал. Твоя версия работает с тем же глюком . Я так понимаю происходит какая то ошибка при сравнении символьной перемнной d с символьной константой 'n'. С другой стороны он даже не считывает значения переменной d, так что может я и не прав
|
|
|
Guest_Al Jay_* |
29.10.2007 - 01:22
| Быстрая цитата | Сообщение
#306
|
Гости |
замени цикл на for, поставь флаг, если пользователь вводит, что дождь был - циклу break, считаем среднюю температуру. Если цикл весь завершён - говорим, что дождя не было, return из функции.
Синтаксис плюсов не знаю - помог чем мог =) Тьфу, оказывается уже решили проблему =) Первая прога не работает видимо из-за особенностей сравнения типа char. И вообще, для таких случаев есть тип данных bool =)) который либо true, либо false =) ps. попробуй в первом случае объявить d константой. Сообщение отредактировано Al Jay - 29.10.2007 - 01:27 |
|
|
11.12.2007 - 16:15
Вставить ник | Быстрая цитата | Сообщение
#307
|
|
Это вам не это... Группа: Участник Сообщений: 3175 Регистрация: 16.05.2005 Пользователь №: 8054 |
Ребят! Огромная просьба помочь.. Обращаюсь сюда впервые ибо ситуация просто ужасная.. надеюсь на вас..
Вобщем ЛР по предмету ППМПС.. проще говоря по асемблеру.. Задание: Разработайте программу, которая перекрашивала бы буквы(но не фон) экрана в зависимости от нажатия на соответствущую клавишу.Предусмотреть все возможные варианты цвета букв. Как сказали,для тех кто знает, лаба очень простая.. Мне очень нужна ваша помощь Сообщение отредактировано InTestAnalWorm - 11.12.2007 - 16:24 |
|
|
11.12.2007 - 16:23
Вставить ник | Быстрая цитата | Сообщение
#308
|
|
Частый гость Группа: Участник Сообщений: 204 Регистрация: 30.05.2005 Пользователь №: 8240 |
под ДОС? винду? линь?
|
|
|
11.12.2007 - 16:49
Вставить ник | Быстрая цитата | Сообщение
#309
|
|
Это вам не это... Группа: Участник Сообщений: 3175 Регистрация: 16.05.2005 Пользователь №: 8054 |
интеловский асемблер.. Зна что делаем в программе Tasm.exe
вроде как в досе Сообщение отредактировано InTestAnalWorm - 11.12.2007 - 16:52 |
|
|
11.12.2007 - 16:58
Вставить ник | Быстрая цитата | Сообщение
#310
|
|
Частый гость Группа: Участник Сообщений: 204 Регистрация: 30.05.2005 Пользователь №: 8240 |
Ну и какие сложности?
Проверяешь видеорежим, чтобы знать количество знакомест (а можно и не проверять, а просто менять "на все деньги")... ставишь обработчик клавиатурного прерывания, чтобы ловить клавиши, по нажатию заданой клавиши прямо в видеопамяти тупо меняешь атрибуты цвета символов... не забудь сохранить начальное состояние атрибутов и восстановить по завершению программы. |
|
|
11.12.2007 - 17:02
Вставить ник | Быстрая цитата | Сообщение
#311
|
|
Это вам не это... Группа: Участник Сообщений: 3175 Регистрация: 16.05.2005 Пользователь №: 8054 |
Вот если я понимал о чём ты говоришь))
В инсте асемблер один семестр.. на лекциях совершенно другое.. Вот примерно мне и сказли что для тех кто понимает это ерунда |
|
|
11.12.2007 - 17:23
Вставить ник | Быстрая цитата | Сообщение
#312
|
|
Частый гость Группа: Участник Сообщений: 204 Регистрация: 30.05.2005 Пользователь №: 8240 |
а-а-а... ну тады сорри... оно, конечно ерунда, но некогда, да и, признаться, лениво - потому что неинтересно.
|
|
|
11.12.2007 - 17:50
Вставить ник | Быстрая цитата | Сообщение
#313
|
|
Это вам не это... Группа: Участник Сообщений: 3175 Регистрация: 16.05.2005 Пользователь №: 8054 |
А если за какое нить вознограждение?
|
|
|
11.12.2007 - 18:45
Вставить ник | Быстрая цитата | Сообщение
#314
|
|
Частый гость Группа: Участник Сообщений: 204 Регистрация: 30.05.2005 Пользователь №: 8240 |
не влияет. сорри.
|
|
|
12.12.2007 - 00:00
Вставить ник | Быстрая цитата | Сообщение
#315
|
|
Это вам не это... Группа: Участник Сообщений: 3175 Регистрация: 16.05.2005 Пользователь №: 8054 |
Может ещё кто-нить в этом понимает? Просто это правда нериально нужно... так бы постеснялся попросить...
|
|
|
18.12.2007 - 00:53
Вставить ник | Быстрая цитата | Сообщение
#316
|
|
Продвинутый новичок Группа: Участник Сообщений: 16 Регистрация: 20.06.2006 Пользователь №: 14157 |
Привет ребят! Помогите кто может, надо прогу по Java сделать. Вообщем вывести на экран все простые числа на интервале от 1 до 500.(Все числа, которые делятся ток на себя и на 1). В любом случае спасибо.
|
|
|
19.12.2007 - 16:53
Вставить ник | Быстрая цитата | Сообщение
#317
|
|
Это вам не это... Группа: Участник Сообщений: 4019 Регистрация: 17.03.2004 Пользователь №: 2796 |
|
|
|
19.12.2007 - 18:55
Вставить ник | Быстрая цитата | Сообщение
#318
|
|
Продвинутый новичок Группа: Участник Сообщений: 16 Регистрация: 20.06.2006 Пользователь №: 14157 |
Может я чего-то не поинмаю, но при такой постановке задачи нужно выводить все цифры указанного диапазона. Нет простые числа это 1, 3, 5, 7, 11, 13 и т.д. т.е. они делятся только сами на себя и на 1. Все цифры не надо вывдоить или это я не очень понимаю, что ты спросил. |
|
|
19.12.2007 - 19:04
Вставить ник | Быстрая цитата | Сообщение
#319
|
|
Частый гость Группа: Участник Сообщений: 138 Регистрация: 17.01.2005 Пользователь №: 6166 |
простые числа это 1 2 3 4 5 6 7 8 9 10 11 12...
не понятно что имеится ввиду деляться сами на себя и на 1 лучше приведи простой пример и расскажи как программа должна работать и что вывести |
|
|
19.12.2007 - 19:13
Вставить ник | Быстрая цитата | Сообщение
#320
|
|
Частый гость Группа: Участник Сообщений: 204 Регистрация: 30.05.2005 Пользователь №: 8240 |
|
|
|
Текстовая версия | Сейчас: 8.01.2025 - 06:38 |