instrukcja switch zamiast if/else

0

Witam ;)
Od niedawna uczę sie programowania i jako kolejne zadanie napisac program, który pobiera liczby całkowite do momentu wpisania 0. Po zakonczeniu wczytywania program powinien wyświetlić ilość liczb parzystych i ich średnia wartosc oraz to samo dla liczb np. Napisałem takie coś:

int main(int argc, char *argv[])
{
  int a,licz_p=0, licz_np=0,suma_p=0,suma_np=0;
  
  while(a!=0)
  {
           scanf("%d",&a);
  if(a%2==0 && a!=0)
            {
            licz_p++;
            suma_p = suma_p + a;
            }
   
   if(a%2==1 && a!=0)
             {
             licz_np++;
             suma_np = suma_np+a;
             }  
                      
   }
printf("Ilosc liczb parzystych: %d\nIlosc liczb nieparzystych: %d\n",licz_p,licz_np);   
printf("Srednia wartosc liczb parzystych: %d\nSrednia wartosc liczb nieparzystych %d\n",suma_p/licz_p,suma_np/licz_np);  
  system("PAUSE");	
  return 0;
}

Teraz mam ten program przerobić, tak aby zamaist if wykorzystac switch.. I nie mam pojęcia jak to zrobić.

0

Może zaznacz czy zerknąłeś do jakiegoś kursu czy coś bo wydaje mi się, że tego nie zrobiłeś.

Ja bym zrobił tak:

Pętla do momentu aż wartość wpisana = 0, jeśli wartość 0 to program idzie dalej do case 0 a jesli nie to wykonuje się jeszcze raz. Na pierwsze skojarzenie to program będzie prawie cały jako wielka pętla (for lub do()while) chodziac zapewne do()while wybierzesz bo warunek na koncu sprawdza jaka jest wartość zwrócona.

Myślę, że trochę Ci pomogłem. Napisz "coś" i wklej kod, na pewno każdy postara Ci się pomóc lub nakierować bo nauka programowania nie polega na dawaniu gotowych rozwiązań tylko na wymuszeniu odpowiedniego toku rozumowania "co ja mogę zrobić przy użyciu tych kilku rzeczy". Jeśli to twoje początki to zrozumiesz o co mi chodzi.

Tak na końcu dodam, że czasami po prostu trzeba dać komuś gotowe rozwiązanie hehe ; ) ale to zależy od przypadku.

0

Myślę,że pomogłeś wystarczająco ;) bede mial chwile to sprobuje ;)

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