PDA

Просмотр полной версии : программирование на C


jid09
06.03.2009, 11:24
почему здесь действие в цикле for выолняеться 2 раза
#include<stdio.h>
/*программа должна выполнять отгадывание числа в заданом диапазоне методом деления */
main()
{
int nr,t=100,ter,i;
char n;
printf("загадайте число от 1 до 200.если ваше число меньше введите знак '<',если больше введте знак '>'\n");
printf("итак ваше число 100?\n");
for(i=1;i<10000;i*=2)
{
scanf("%c",&n);
if(n=='>')
{
t=t+100/i;
printf("ваше число равно %d?\n",t);}
if(n=='<')
{
t=t-100/i;
printf("ваше число равно %d?\n",t);}
}
}

Aleksandrr
08.04.2009, 13:27
Похоже, что scanf читает символ "конец строки". Слегка измените код, чтобы увидеть это:

if(n=='>'){
t=t+100/i;
printf("ваше число равно %d?\n",t);
}
else if(n=='<'){
t=t-100/i;
printf("ваше число равно %d?\n",t);
}
else {
printf("+++ %c +++",n);
}