Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 14:53   #1
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию Почему выполняется дважды?

Почему вывод на экран происходит дважды? И все операции(в цикле while) выполняются дважды. Как этот дефект убрать?

Код:
#include <stdio.h>

int main(){
	int middle,right=100,left=-1,pop=0;
	char znak;
	printf("<<< Zagadai 4islo and press any key >>>");
	getchar();
	while(right-left>1){
		middle=(right+left)/2;
		printf("%d\n",middle);
		pop++;
		scanf("%c",&znak);
		if(znak=='<') left=middle;
		if(znak=='>') right=middle;
		if(znak=='=') break;
	}
	printf("I'm super PC! It was %d\n",middle);
}
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 17.05.2009, 15:06   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

int main(){
	int middle,right=100,left=-1,pop=0;
	char znak;
	printf("<<< Zagadai 4islo and press any key >>>");
	getchar();

	while(right-left>1)
 {
		middle=(right+left)/2;
		printf("%d\n",middle);
		pop++;
		scanf("\n%c",&znak);  //  <<<----------

		if(znak=='<') left=middle;
		if(znak=='>') right=middle;
		if(znak=='=') break;
	}

	printf("I'm super PC! It was %d\n",middle);
	getch();
}
Когда вы вводите символ, то читаются 2 символа (нужный и '\n').
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, сколько чисел входит ровно дважды в последовательность а1,а2,...,аm milton Паскаль, Turbo Pascal, PascalABC.NET 4 11.11.2008 18:31
Как програмно дважды кликнуть в RichEdit? apromix Общие вопросы Delphi 10 23.05.2008 17:09
Не выполняется запрос в SQL ivp88 БД в Delphi 5 17.01.2008 10:30
Почему выполняется ложное условие? AND Помощь студентам 8 16.11.2007 16:30
Почему не выполняется запрос? chingiz БД в Delphi 2 27.05.2007 21:56