Przekroczony czas, why?

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?

0

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

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)

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...

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 :?:

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...

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;
  }
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?

0

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

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