Przekroczony czas, why?

Odpowiedz Nowy wątek
2011-07-20 01:35
GUBBI
0
#include<stdio.h>
main(){
       float a, b, c;
       while(scanf("%f %f %f", &a, &b, &c)){
       switch(int(a)){
       case 0:
       if(b==-c) printf("NWR\n");
       else printf("BR\n");
       continue;
       default:
       printf("%.2f\n", (c-b)/a);
       }
       }
}

Hmm... nie wiem dlaczego wyświetla mi się przekroczony czas?

Pozostało 580 znaków

2011-07-20 02:13
0

rofl... ale gdzie Ci wyświetla ten przekroczony czas? na SPOJ'u? Co to za zadanie?


Pozostało 580 znaków

2011-07-20 03:13
GUBBI
0

https://pl.spoj.pl/submit/JROWLIN/id=5405472

Pozostało 580 znaków

2011-07-20 03:24
0

Na razie nie przejmuj się przekroczonym czasem... Twój kod podaje błędny wynik już dla pierwszego przykładu... instrukcja switch tu się nie nadaje(ponieważ przyjmuje int, a nie float)

Dodatkowo, żeby nie dawać Ci rozwiązania(bo chyba nie o to tu chodzi): przeczytaj dokumentacje funkcji scanf, masz nie do końca poprawny warunek w while(to powoduje przekroczenie czasu)


edytowany 1x, ostatnio: byku_guzio, 2011-07-20 03:30

Pozostało 580 znaków

2011-07-20 09:18
0

Tak trudno formatować kod jak człowiek?

#include<stdio.h>
int main()
{
    float a, b, c;
    while(scanf("%f %f %f", &a, &b, &c))
    {
        switch(int(a))
        {
        case 0:
            if(b==-c) 
              printf("NWR\n");
            else 
              printf("BR\n");
            continue;
        default:
            printf("%.2f\n", (c-b)/a);
        }
    }
}

scanf() zwraca ci ilość dopasowanych argumentów...

edytowany 1x, ostatnio: Shalom, 2011-07-20 09:18

Pozostało 580 znaków

2011-07-20 11:23
GUBBI
0
#include<stdio.h>
main(){
    float a, b, c;
    while(EOF){
        scanf("%f %f %f", &a, &b, &c);
            if(a==0 && b==c) 
              printf("NWR\n");
            else if(a==0 && b!=c)
              printf("BR\n");
            else
              printf("%.2f\n", (c-b)/a);
    }
}

Wciąż przekroczony czas :?:

Pozostało 580 znaków

2011-07-20 11:33
0

A co niby ma znaczyć while(EOF) ?EOF to jest pewne makro/stała i jego wartość się nie zmieni choćby nie wiem co... Może chciałeś napisać while(STDIN) ?
Weź z łaski swojej odpalaj te kody lokalnie na swoim kompie i zobaczysz co się dzieje. Najlepiej zapoznaj sie z debuggerem, bo tylko zaśmiecasz forum...

edytowany 1x, ostatnio: Shalom, 2011-07-20 11:34

Pozostało 580 znaków

2011-07-20 11:39
0

Po kiego kilka razy sprawdzać ten sam warunek?

#include<stdio.h>
int main()
  {
   float a, b, c;
   while(scanf("%f%f%f",&a,&b,&c)==3)
     {
      if(a) printf("%.2f\n",(c-b)/a);
      else if(b==c) printf("NWR\n");
      else printf("BR\n");
     }
   return 0;
  }

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 2x, ostatnio: _13th_Dragon, 2011-07-20 11:40
Oj, bo co trzy sprawdzenia to nie jedno. Na pewno GUBBI przeczytał jakieś tajne wytyczne jakiejś nieistniejącej agencji rządowej usa :) - massther 2011-07-20 12:23

Pozostało 580 znaków

2011-07-20 12:21
GUBBI
0

Teraz już kapuje co źle zrobiłem. Dzięki serdeczne!
Nie czaje tylko jednej rzeczy scanf("%f%f%f",&a,&b,&c)==3 dlaczego to przyrównałeś do trzy?

Cytując samego siebie: "scanf() zwraca ci ilość dopasowanych argumentów..." czyli skoro argumenty są tu 3, to scanf po dopasowaniu wszystkich zwróci właśnie 3... - Shalom 2011-07-20 12:26

Pozostało 580 znaków

2011-07-20 12:31
GUBBI
0

Dzięki, juz mniej więcej kapuje. A co się dzieje kiedy nie będzie ...==3?

Pozostało 580 znaków

2011-07-20 12:49
0
GUBBI napisał(a)

Dzięki, juz mniej więcej kapuje. A co się dzieje kiedy nie będzie ...==3?

Dzieje się wtedy tyle:

return 0;
edytowany 2x, ostatnio: Sarrus, 2011-07-20 12:51
Nie, while(scanf("%f%f%f",&a,&b,&c)) jest to samo co while(scanf("%f%f%f",&a,&b,&c)!=0), co teoretycznie w tym przypadku na to samo wyjdzie. - _13th_Dragon 2011-07-20 13:14
Ja zrozumiałem, że kiedy wartość zwrócona przez funkcję nie będzie 3 przy tym warunku. Sorry, mój błąd - Sarrus 2011-07-20 14:30

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0