Deepak pandey Ответов: 4

Как wap в C читать число до тех пор, пока не встретится -1 и подсчитать, сколько четных и нечетных чисел введено пользователем?


в программировании на языке Си глава "управляющие операторы".

Что я уже пробовал:

/*I have done*/
int num,even=0,odd=0;

do{printf("enter number")
scanf("%d",&num);
if(num÷2==0)
even+=1;
else odd+=1;
printf("even number %d",even);
printf("odd number %d",odd);

Deepak pandey

Это просто логика, правильно ли это ??

4 Ответов

Рейтинг:
5

Dezhi Zhao

Просто изменить

num÷2==0
к
num%2==0
- тогда все будет хорошо.


Рейтинг:
34

Patrice T

Научитесь правильно делать отступы в вашем коде, это покажет его структуру, и это поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.

/*I have done*/
int num,even=0,odd=0;
do{
  printf("enter number")  // ; is missing here
  scanf("%d",&num);
  if(num÷2==0)
    even+=1;
  else 
    odd+=1;
// } is missing here
// end of loop is missing here
printf("even number %d",even);
printf("odd number %d",odd);

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]

Обратите внимание, что ваш код будет считать -1 в качестве входного значения.


Рейтинг:
25

Doug Joseph

Это должно сделать трюк:

int num = 0, even = 0, odd = 0;

do
{
    printf( "enter number (-1 exits):" );
    scanf( "%d", &num );
    if ( num != -1 )
    {    
        if ( num & 0x01 ) odd++;
        else              even++;
    };
    
} while ( num != -1 );
    
printf( "even number %d", even );
printf( "odd number %d",  odd );


Надеюсь, это вам поможет.
-Дуга


W∴ Balboos, GHB

Ваш ответ достаточно близок к моему, чтобы я не стал его давать. Вот тебе и сдача.

int counter[2]; 


Тогда для всех чисел вы могли бы просто иметь:
counter[num&0x01]++;

Просто нюанс, но я подумал, что тебе это может показаться интересным.

Doug Joseph

Чувак... отличный звонок! Мне это нравится еще больше. :)

KarstenK

Ты должен сделать его домашнюю работу. Он должен научиться кодированию. ;-)

Рейтинг:
16

KarstenK

Сначала вам нужно немного учебник о цикле do-while.

Полученный код может выглядеть следующим образом:

int count = 0;
do {
count++;
if( ... )
  break;//quick leave loop
}while( num!= -1;