1 / 41
Nov 2007

Na pierwszy rzut oka to zmień 1000 na 1001 ;d bo jeszcze znak '\0'.

8 months later

-- kod usunięty --

I czemu źle? Można przecież iść na łatwiznę prawda? Bo 1000 cyfr w liczbie to nie ma takiego zakresu ;|

8 months later
6 months later

Witam,
mam problem z tym zadaniem ale tylko taki, że spoj z niewyjaśnionych przyczyn mi wywala błędną odpowiedź podczas gdy ja sam go testuję to działa.

Zamieszczam kod może ktoś coś poradzi będę wdzięczny:)

-- kod usunięty --

Kierowałem się przykładowym wejściem. Tam dokładność była do części dziesiętnych. Trop chyba chybiony.

Nie ma typu dla tak dużych liczb.

Trzeba posłużyć się stringami albo tablicami.

27 days later

Mógł by mi ktoś napisać dokładnie jak powinno wyglądać na ekranie wyświetlenie danych wejściowych i wyjściowych? Otóż zrobiłem program lecz nie chce mi akceptować i nie wiem dlaczego confused Może źle wyświetlam dane nie wiem ocb confused please help smile

string a, b;
char c, d;
cin>>a>>c>>d>>c>>c>>b;
...
if(...)cout<<0<<endl;
else cout<<1<<endl;

'c' to spacja, znak '=' i spacja - są one niepotrzebne, więc można je wczytać na to samo miejsce
'd' to znak '!', '<' lub '>'
Twój błąd może polegać na tym, że wczytujesz liczby jako liczby a nie jako stringi.

Powodzenia. smile

Próbowałem już wszystkiego odczytywałem jako string i nawet jako tablice i nadal nie chce akceptować choć u mnie działa poprawnie, ograniczenie na ilość cyfr jest oczywiście. Trudno pomęczę się jeszcze. Dzięki jeszcze raz smile

Wyślij mi kod na PW, to pomyślę, co może być nie tak. smile

/Edit
adam_bak - RACJA!! Aż się zdziwiłem, że dostałem AC. smile Pewnie autorowi się nie chciało większych testów wymyślać, chociaż dał:

Więc zasugerował, że będą większe liczby. ;]
Ale mam szybszy czas tablicami się okazuje. xD

Właśnie widziałem że się strasznie z tym męczyłeś. Ten program zostanie zaakceptowany na long double, nie trzeba kombinować smile

Punkt dla Ciebie wink

27 days later

-- kod usunięty --

Czy w tym zadanku są jakieś specjalne warunki? wink Bo kod zwraca poprawne wartości confused

1.) Po kiego grzyba tablica na ponad 10000 znaków. smiley
2.) Czy 200 jest <= 10 . :mrgreen:
3.) Po kiego grzyba te dwie duże tablice ?
Podwójny papier toaletowy da radę. smiley

1 month later

Też mam problem z tym zadaniem. U mnie wszystko działa idealnie, a ciągle dostaję informację, że błędny wynik ;/
Poniżej kod programu c++:

//kod zjadl troll :P (AC)

Edit: już działa, zapomniałem uwzględnić w funkcji mniejsze(), że strlen(a) może być mniejsze niż strlen(b) smile eh, przez takie głupoty człowiek najwięcej czasu traci podczas kodzenia wink

1 month later

Na początek witam wszystkich.
Zacząłem sobie rozwiązywać tydzień temu zadania u Was no i na razie trochę rozwiązałem, ale powoli zaczyna mnie denerwować cały ten automat testujący smiley Problem ma z zadaniem KC015 i nie mam pojęcia dlaczego mi nie przyjmuje sprawdzarka tego.
Chciałem sobie ogarnąć trochę wyższa matematykę, interpolacje te sprawy z zadań trudnych, ale kurcze postanowiłem robić po kolei.
Napisałem najpierw w C, to mówi, ze źle, to napisałem w Perlu to tez nie pasuje.
Poniżej zamieszczam oba kody może ktoś by mnie nakierował, bo nie wydaje mi się żebym nie umiał tego zadania zrobić.
[bbone=perl,3137]#!/usr/bin/perl

while($line = ) {
@dane = split(/\s+/, $line);
$l1 = @dane[0];
$l2 = @dane[2];
$znak = @dane[1];

if($znak eq "==") {
	if($l1 == $l2) {
		print "1\n";
	} else {
		print "0\n";
	}
} elsif($znak eq "!=") {
   	        if($l1 != $l2) {
           	        print "1\n";
            } else {
   	                print "0\n";
           	}
    } elsif($znak eq "<=") {
   	        if($l1 <= $l2) {
           	        print "1\n";
            } else {
   	                print "0\n";
           	}
    } elsif($znak eq ">=") {
   	        if($l1 >= $l2) {
           	        print "1\n";
        } else {
                    print "0\n";
           	}
}

}
[/bbone]
Perl ma to do siebie, ze jak dostaje liczbę to jeśli jest ogromna to wyświetlą w notacji wykładniczej, wiec z porównywaniem nie powinno być problemu, chyba ze nie rozbija split na liczby tylko na stringi.

Teraz kod w C:
[bbone=c,3138]

include

include

int i;

int nierowne(char *l1, char *l2) {
for(i = 0; l1[i]; i++)
if(l1[i] != l2[i])
return 1;
return 0;
}

int rowne(char *l1, char *l2) {
for(i = 0; l1[i]; i++)
if(l1[i] != l2[i])
return 0;
return 1;
}

int mniejsze(char *l1, char *l2) {
for(i = 0; l1[i]; i++) {
if(l1[i] < l2[i])
return 1;
else if(l1[i] > l2[i])
return 0;
}
return 1;
}

int wieksze(char *l1, char *l2) {
for(i = 0; l1[i]; i++) {
if(l1[i] > l2[i])
return 1;
else if(l1[i] < l2[i])
return 0;
}
return 1;
}

int main(void)
{
char l1[1024] = {0}, l2[1024] = {0}, z1, z2;

while(fscanf(stdin, "%s %c%c %s", l1, &z1, &z2, l2) != EOF) {
	if(z1 == '!')
		printf("%d\n", nierowne(l1, l2));
	else if(z1 == '=')
		printf("%d\n", rowne(l1, l2));
	else if(z1 == '<')
		printf("%d\n", mniejsze(l1, l2));
	else if(z1 == '>')
		printf("%d\n", wieksze(l1, l2));
	memset(l1, 0, 1024 * sizeof(char));
	memset(l2, 0, 1024 * sizeof(char));
}

return 0;

}
[/bbone]
Będę wdzięczny jakby ktoś na to zerknął.