Prateek Krishna Ответов: 2

Почему мой код не дает результата. Он вводит цифры, после нажатия клавиши enter он ничего не показывает...


#include<stdio.h>
int main()
{int a,b,c;
 printf("enter value of numbers ");
  scanf("%d %d %d ", &a,&b,&c);
  if((a>b)&&(a>c))
   {
   	if(b>c)
   	printf("no in descending order are %d %d %d",a,b,c);
   	else
   	printf("no in descending order are %d %d %d",a,c,b );
   	
   }
  else if((b>a)&&(b>c))
   { if(a>c)
     printf("no in descending order are %d %d %d",b,a,c);
     else
     printf("no in descending order are %d %d %d",b,c,a);
     
   }
   else if((c>a)&&(c>b))
   { if(a>b)
    printf("no in descending order are %d %d d",c,a,b);
    else
    printf("no in descending order are %d %d %d ",c,b,a);
   }
return 0;   
}


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

#include<stdio.h>
int main()
{int a,b,c;
 printf("enter value of numbers ");
  scanf("%d %d %d ", &a,&b,&c);
  if((a>b)&&(a>c))
   {
   	if(b>c)
   	printf("no in descending order are %d %d %d",a,b,c);
   	else
   	printf("no in descending order are %d %d %d",a,c,b );
   	
   }
  else if((b>a)&&(b>c))
   { if(a>c)
     printf("no in descending order are %d %d %d",b,a,c);
     else
     printf("no in descending order are %d %d %d",b,c,a);
     
   }
   else if((c>a)&&(c>b))
   { if(a>b)
    printf("no in descending order are %d %d d",c,a,b);
    else
    printf("no in descending order are %d %d %d ",c,b,a);
   }
return 0;   
}

2 Ответов

Рейтинг:
13

Richard MacCutchan

Попробуй:

scanf("%d %d %d", &a,&b,&c); // remove the extra space at the end of format string


Prateek Krishna

благодарю вас сэр
сейчас это работает...

Prateek Krishna

почему это происходит, сэр ?

Richard MacCutchan

Потому что scanf предназначен для получения токенов из входных данных на основе вашей строки формата. Поскольку у вас был пробел в конце строки формата,он ждал большего ввода. Это одна из менее дружественных функций языка Си, которую я никогда не использую.

Prateek Krishna

спасибо сэр

Рейтинг:
0

Patrice T

Ваш код не обрабатывает случай, когда у вас есть равенство.
Пример: a = b > c

Совет: используйте отладчик, чтобы увидеть, что делает ваш код, используйте его для проверки переменных и убедитесь, что все идет так, как должно.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.