Дана последовательность чисел, 0 - ее конец. Определить, сохраняет ли она знак.
//---------------------------------------------------------------------------Почему, если ответ ДА то есть задержка экрана, если НЕТ то консоль закрывается сразу? Или лучше задержку экрана делать через cin или есть другой способ?
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
#pragma argsused
int _tmain()
{
int a,b;
bool y=true;
cin >>a >> b;
if (a==0 || b==0) {
cout<<"DA";
getchar();
return 0;
}
else
while (y && b!=0)
{
a=b;
cin>>b;
if (b!=0) {
y=a*b>0;
}
}
if (y) {
cout<<"DA";
}
else
{
cout<<"NET";
}
getchar();
getchar();
return 0;
}
//---------------------------------------------------------------------------
Используй
system("PAUSE");, Люк.
С помощью http://www.cplusplus.com/reference/iostream/istream/ignore/, например:
cin.ignore(numeric_limits<streamsize>::max(),'\n') ;
cin.ignore(255,'\n');?
То есть, ты на 100% уверен, что
1) в твоей реализации в поток может поместиться 255 символов
2) что все FAQ-и http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.3 и советы написаны полудурками, которые вместо того, чтобы написать 255 пишут какую-то ненужную ахинею?
В таком случае извини, это решение "будет работать и фиг с ним. КАК ОНО РАБОТАЕТ - МНЕ НЕВАЖНО". Я в таких обсуждениях участия не принимаю. Программирование - слишком серьезная вещь, чтоб так наплевательски к нему относиться.
извини, но я что-то не понял это
А можно поинтересоваться,а ты подключил билбиотеку limits ,если внимательно посмотреть,то в исходной посте она присутствует,а ты ничего про это не упомянул.И еще почему ты так упорно используеш iostream.h,когда тебе уже каждый сказал,что лучше использовать iostream.
Я, если честно, вообще не вижу смысла делать 2 точки, в которых может завершиться выполнение программы. Вот так, скажем:
//---------------------------------------------------------------------------будет более читаемо...
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <iostream>
#include <limits>
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
int _tmain()
{
int a, b;
bool y = true;
cin >> a >> b;
if(a && b) // Я перевернул условие
{
while (y && b != 0)
{
a = b;
cin >> b;
if (b != 0)
{
y = a * b > 0;
}
}
}
if (y) {
cout<<"DA";
}
else
{
cout<<"NET";
}
cin.ignore(numeric_limits<streamsize>::max(),'\n'); // Чистим поток
cin.get(); // Все-таки ждем нажатия, чтоб увидеть результат
return 0;
}
хитрая штука этот поток...
Спасибо.