|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Наибольшее четное без массива |
|
C/C++ - Наибольшее четное без массива
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать С клавиатуры вводится последовательность целых чисел. Определить наибольшее среди четных чисел. Признак конца ввода - 0
Среди положительных чисел у меня все нормально, а вот если вводить: 3,7,-4,-2 0 выводится 0(( а должно вывестись -2 [code=cpp] # include <math.h> int main() { setlocale(LC_CTYPE, ""); int k,l,max; l=0; printf("Введите цифры"); while (k!=0) { scanf("%i", &k); if ((k%2)==0) { l=1; max=k; if (l) { if (max<k) { max=k; } }} } printf("Максимальное четное число=%i",max); getch(); } [/code] |
|
Отправлено: 20:18, 16-04-2013 |
Пользователь Сообщения: 123
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:24, 16-04-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать deviance, промучаясь вчера еще часик я все таки добилась чего хотела) и кстати без break; не люблю его использовать так как всегда путаюсь с ним в цикле)
вообщем я решила проблему так: #include <stdio.h> #include <conio.h> # include <locale.h> # include <math.h> int main() { setlocale(LC_CTYPE, ""); int k,l,max; printf ("Введите цифры:\n"); scanf("%i",&k); l=0; while (k!=0) { if ((k%2)==0) { l=1; if (l==1) { max=k; l++; } else { if (k>max) max=k; } } scanf("%i",&k); } if (l=0) printf("Не введено ни одного чётного числа.\n"); else printf("Максимальное четное число=%i",max); getch(); } |
Отправлено: 14:05, 17-04-2013 | #3 |
Пользователь Сообщения: 123
|
Профиль | Отправить PM | Цитировать lerenia, Ошибка 1:
Выполняется не сравнение, а присваивание. Сообщение "Не введено ни одного чётного числа" не будет показано никогда. Ошибка 2: При таком алгоритме наибольшим четным всегда будет последнее четное. Проверить можно на тестовых данных: Под катом одно из решений: |
Последний раз редактировалось deviance, 17-04-2013 в 15:19. Отправлено: 15:13, 17-04-2013 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать deviance, решение внушительно) если честно половину из него не поняла) вроде бы задачка простенькая и такое громоздкое решение) что ж пойду разбираться
|
|
Отправлено: 18:18, 18-04-2013 | #5 |
Пользователь Сообщения: 123
|
Профиль | Отправить PM | Цитировать lerenia, у меня 33 строки, а у Вас - 35. У кого внушительнее?
|
Отправлено: 18:27, 18-04-2013 | #6 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать deviance,
я не про количество строк, а про саму логику) но я уже разобралась) |
Отправлено: 18:27, 19-04-2013 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Samsung получил наибольшее количество мобильных патентов в 2012 году | OSZone News | Новости информационных технологий | 0 | 29-03-2013 20:30 | |
2008 - Создание Raid массива без потери данных | NikiWin | Windows Server 2008/2008 R2 | 7 | 24-02-2011 07:58 | |
Вторничный патч Microsoft за август 2010: наибольшее количество бюллетеней в истории! | OSZone News | Новости и события Microsoft | 0 | 06-08-2010 01:30 | |
[решено] Ширина линии в GIMP - четное количество пикселей | Vadikan | Цифровое изображение | 4 | 03-07-2009 11:10 | |
ребут компьютера без причины, без Bsod, без ошибок | не ламер | Непонятные проблемы с Железом | 17 | 23-04-2008 13:59 |
|