Member 13586730 Ответов: 2

Что этот код показывает вывод 0 0 на codechef?


#include<stdio.h>
int main()
{
	int t,i,p1,p2,l=0,r=0;
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{	scanf("%d%d",&p1,&p2);
		if(l>(p1-p2)|| l>(p2-p1))
		{	if(p1>p2)
			{	l=p1-p2;
				r=1;}
			if(p2>p1)
			{	l=p2-p1;
				r=2;}}}
	printf("%d %d",r,l);
	return 0;
}


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

я попробовал этот код, и я думаю, что он не вводит этот 1-й оператор if.

Richard MacCutchan

Каковы значения p1 и p2?

jeron1

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

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Что этот код показывает вывод 0 0 на codechef?

Когда вы просите о помощи по поводу вызова codeChef, это хорошая идея, чтобы дать ссылку на этот вызов, просто для того, чтобы дать возможность узнать, о чем вы говорите.

Совет: никогда не упаковывайте код в одну строку, это просто затрудняет чтение кода без какой - либо пользы:
#include<stdio.h>
int main()
{
	int t,i,p1,p2,l=0,r=0;
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{
		scanf("%d%d",&p1,&p2);
		if(l>(p1-p2)|| l>(p2-p1))
		{
			if(p1>p2)
			{
				l=p1-p2;
				r=1;
			}
			if(p2>p1)
			{
				l=p2-p1;
				r=2;
			}
		}
	}
	printf("%d %d",r,l);
	return 0;
}


Цитата:
Что этот код показывает вывод 0 0 на codechef?

Единственный ответ: "потому что это то, что вы запросили в своем коде".
Чтобы получить лучший ответ, вам нужно рассказать, что должен делать этот код.


Рейтинг:
0

OriginalGriff

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

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!