Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для deviance

Пользователь


Сообщения: 123
Благодарности: 43

Профиль | Отправить PM | Цитировать


lerenia, Ошибка 1:
Код: Выделить весь код
if (l=0)
printf("Не введено ни одного чётного числа.\n");
Выполняется не сравнение, а присваивание. Сообщение "Не введено ни одного чётного числа" не будет показано никогда.

Ошибка 2:
Код: Выделить весь код
if ((k%2)==0)
{
    l=1;
    if (l==1)
   {
        max=k;
        l++;
    }
}
При таком алгоритме наибольшим четным всегда будет последнее четное. Проверить можно на тестовых данных:
Код: Выделить весь код
-2 -990  0
Под катом одно из решений:
читать дальше »
Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <limits.h>

int main()
{
    int max = INT_MIN; 
    int current = 0;
    const int term_value = 0;
    int at_least_one_even_got = 0;

    setlocale(LC_ALL, "");
    printf("Введите цифры (по одной в строке):\n");

    do {
        scanf("%i", ¤t);     
        if ( current == term_value){ 
            break;    
        } else if (current % 2 == 0 && max < current){
            at_least_one_even_got = 1;
            max = current;
        }
    } while (1);

    if (at_least_one_even_got == 0){
        printf("Не введено ни одного чётного числа\n",max);
    } else {
        printf("Максимальное четное число: %i\n",max);
    }
    system("pause");
    return 0;
}

Последний раз редактировалось deviance, 17-04-2013 в 15:19.


Отправлено: 15:13, 17-04-2013 | #4