???
От: KapsOff  
Дата: 06.10.20 07:59
Оценка: -1 :)
Стоит задание : Напишите функцию с названием even, которая принимает на вход целое число. Она должна вернуть количество всех положительных четных чисел от 1 до этого числа включительно.Примените для вывода функцию printf("%d ", num), где num — это очередное четное число для вывода.

int even(int num) {
int ev = 0;
for (int counter = 1; counter <= num; counter++) {
if (counter % 2 == 0) {
ev++;
}

}

return ev;

}

На что мне выдает Задание не выполнено
Код ошибки: WA «Wrong Answer» — неверный ответ
Что я делаю не так?
Re: ???
От: Homunculus Россия  
Дата: 06.10.20 08:02
Оценка: +1
Здравствуйте, KapsOff, Вы писали:

KO>Что я делаю не так?


Да потому что функция эта будет возврат половины входного числа (ну там +-1 в зависимости от четности параметра). И все
Нафига цикл, ты что!!!
Re[2]: ???
От: KapsOff  
Дата: 06.10.20 08:16
Оценка:
Здравствуйте, Homunculus, Вы писали:
H>Да потому что функция эта будет возврат половины входного числа (ну там +-1 в зависимости от четности параметра). И все
H>Нафига цикл, ты что!!!

Переделал на это
int even(int num) {
int ev ;
if (num % 2 == 0) {
ev = num / 2;
}
else {
ev = (num — 1) / 2;
}
return ev;
}
Все равно пишет Код ошибки: WA «Wrong Answer» — неверный ответ.
Я не совсем понимаю где мне необходимо использовать Printf, обозначенный в условии, может вы подскажите ?
Re[3]: ???
От: Maniacal Россия  
Дата: 06.10.20 08:57
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Все равно пишет Код ошибки: WA «Wrong Answer» — неверный ответ.

KO>Я не совсем понимаю где мне необходимо использовать Printf, обозначенный в условии, может вы подскажите ?

int even(int num)
{
  return num / 2;
}

или
int even(int num)
{
  return int(num / 2);
}
Re: ???
От: Maniacal Россия  
Дата: 06.10.20 09:02
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Стоит задание : Напишите функцию с названием even, которая принимает на вход целое число. Она должна вернуть количество всех положительных четных чисел от 1 до этого числа включительно.Примените для вывода функцию printf("%d ", num), где num — это очередное четное число для вывода.


Вот с printf загадка. Очередное, значит их выводить на экран нужно, тогда без цикла никак

int even(int num) {
    int ev = 0;
    for (int counter = 1; counter <= num; counter++) {
        if (counter % 2 == 0) {
            ev++;
            printf("%d ", counter);
        }
    }
   return ev;

}

Так, может?
Re[2]: ???
От: KapsOff  
Дата: 06.10.20 09:50
Оценка:
Здравствуйте, Maniacal, Вы писали:
M>Так, может?

Попробовал, выдало Код ошибки: PE «Presentation Error» — формат вывода неверный, проверяющая программа не смогла проверить вывод программы. Тогда вообще не пойму куда этот printf надо поставить
Re[3]: ???
От: Maniacal Россия  
Дата: 06.10.20 09:52
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Здравствуйте, Maniacal, Вы писали:

M>>Так, может?

KO>Попробовал, выдало Код ошибки: PE «Presentation Error» — формат вывода неверный, проверяющая программа не смогла проверить вывод программы. Тогда вообще не пойму куда этот printf надо поставить


пробел в "%d " не пропущен?
Re[4]: ???
От: KapsOff  
Дата: 06.10.20 10:05
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>пробел в "%d " не пропущен?

Перепроверил, нет не пропущен
Re[5]: ???
От: Homunculus Россия  
Дата: 06.10.20 10:06
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Здравствуйте, Maniacal, Вы писали:


M>>пробел в "%d " не пропущен?

KO>Перепроверил, нет не пропущен

Вопрос тогда кто именно проверяет что ты сделал? какой-то онлайн тестер? Может там свои правила оформления кода?
Re[6]: ???
От: KapsOff  
Дата: 06.10.20 10:10
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Вопрос тогда кто именно проверяет что ты сделал? какой-то онлайн тестер? Может там свои правила оформления кода?


https://cups.mail.ru/

Не нашел про оформление, перед этим заданием только это : https://pastebin.com/NdhyyezA
Re[7]: ???
От: Maniacal Россия  
Дата: 06.10.20 10:17
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Здравствуйте, Homunculus, Вы писали:


H>>Вопрос тогда кто именно проверяет что ты сделал? какой-то онлайн тестер? Может там свои правила оформления кода?


KO>https://cups.mail.ru/


KO>Не нашел про оформление, перед этим заданием только это : https://pastebin.com/NdhyyezA


Может, очередное чётное число это следующее за заданным?
Тогда
int even(int num)
{
  int res = num / 2;
  printf("%d ", res * 2 + 2);
  return res;
}
Re[8]: ???
От: KapsOff  
Дата: 06.10.20 10:20
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Может, очередное чётное число это следующее за заданным?

M>Тогда
M>
M>int even(int num)
M>{
M>  int res = num / 2;
M>  printf("%d ", res * 2 + 2);
M>  return res;
M>}
M>



Код ошибки: PE «Presentation Error» — формат вывода неверный, проверяющая программа не смогла проверить вывод программы.
Re[2]: ???
От: ned Австралия  
Дата: 06.10.20 10:20
Оценка: :)
Здравствуйте, Homunculus, Вы писали:

H>Нафига цикл, ты что!!!


А вдруг??!
Re: ???
От: Igore Россия  
Дата: 06.10.20 10:28
Оценка:
Здравствуйте, KapsOff, Вы писали:

KO>Стоит задание : Напишите функцию с названием even, которая принимает на вход целое число. Она должна вернуть количество всех положительных четных чисел от 1 до этого числа включительно.

int even( int number )
{
   return ( number <= 1 ) ? 0 : number / 2;
}

int main()
{
   for( int i = -10; i <= 10; ++i )
   {
      printf( "%d ", even( i ) );
   }
}

KO>Примените для вывода функцию printf("%d ", num), где num — это очередное четное число для вывода.
+Наверное нужно добавить считывание данных из входного потока.
Отредактировано 06.10.2020 10:30 Igore . Предыдущая версия .
Re[9]: ???
От: Muxa  
Дата: 06.10.20 21:07
Оценка:
KO>Код ошибки: PE «Presentation Error» — формат вывода неверный, проверяющая программа не смогла проверить вывод программы.

Дык ты спроси у составителей задания, что они хотят чтобы было напечатано.
Тут телепатов нет.
Re[2]: ???
От: AleksandrN Россия  
Дата: 07.10.20 08:31
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Здравствуйте, KapsOff, Вы писали:


KO>>Стоит задание : Напишите функцию с названием even, которая принимает на вход целое число. Она должна вернуть количество всех положительных четных чисел от 1 до этого числа включительно.Примените для вывода функцию printf("%d ", num), где num — это очередное четное число для вывода.


M>Вот с printf загадка. Очередное, значит их выводить на экран нужно, тогда без цикла никак


M>
M>int even(int num) {
M>    int ev = 0;
M>    for (int counter = 1; counter <= num; counter++) {
M>        if (counter % 2 == 0) {
M>            ev++;
M>            printf("%d ", counter);
M>        }
M>    }
M>   return ev;

M>}
M>

M>Так, может?

Зачем цикл по всем числам с проверкой на каждом шаге? Лучше — шаг цикла 2.
И добавить проверку корректности аргумента на входе.
int even(int num)
{
    if (num <= 0)
        return 0;

    for (int counter = 2; counter <= num; counter += 2)
        printf("%d ", counter);
    
    return num / 2;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.