Imam problem sa switch kontrolnom strukturom u C-u, početnik sam s C-om, do sad sam radio u Pascalu/Delphiju. Evo o čemu je spika:
Kako ću napraviti switch case grananje da poziva funkcije umjesto pojedinačnih naredbi, ono što sam do sad radio nije mi uspjelo, jer očito nije isti princip kao u Pascalu. Evo primera u kojemu mi je samo očitalo glavni program, ali nije htjelo pokrenuti funkcije unosom varijable:
#include <stdio.h>
void zbroj ()
{
float a, b, c;
printf ("\f\n Unesi vrijednosti za zbrajanje: \n");
scanf ("%f,%f", a, b);
c = a + b;
printf ("%0.2f + %0.2f = %0.4f", a, b, c);
}
void razlika ()
{
float a, b, c;
printf ("\f\n Unesi vrijednosti za oduzimanje: \n");
scanf ("%f,%f", a, b);
c = a - b;
printf ("%0.2f - %0.2f = %0.4f", a, b, c);
}
void umnozak ()
{
float a, b, c;
printf ("\f\n Unesi vrijednosti za mnozenje: \n");
scanf ("%f,%f", a, b);
c = a * b;
printf ("%0.2f x %0.2f = %0.4f", a, b, c);
}
void kolicnik ()
{
float a, b, c;
printf ("\f\n Unesi vrijednosti za dijeljenje: \n");
scanf ("%f,%f", a, b);
c = a / b;
printf ("%0.2f / %0.2f = %0.4f", a, b, c);
}
int main ()
{
char odgovor;
printf ("\n\t K A L K U L A T O R");
printf ("\n\t Izaberi radnju unosom broja: ");
printf ("\n\t 1: Zbrajanje");
printf ("\n\t 2: Oduzimanje");
printf ("\n\t 3: Mnozenje");
printf ("\n\t 4: Dijeljenje\n\n");
odgovor = getchar ();
switch (odgovor)
{
case 1: zbroj ();
case 2: razlika ();
case 3: umnozak ();
case 4: kolicnik ();
}
return 0;
}
Ako umjesto getchar () uporabim scanf ("%c", odgovor); program se sruši nakon unosa odgovora; nisam još ni u jednoj knjizi našao primjer pozivanja funkcija switch uvjetnim grananjem, pa ne znam što je pogrešno u ovom programu... Koliko znam, switch kontrola prihvaća Integer i Char kao valjane unose, stoga mislim da nisam pogriješio s tipom podatka (isto mi se dogadjalo i s intom), ne znam u čemu drugom sam mogao pogriješit... U čemu je problem... pomoć?