Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Funkcja zamieniająca tablicę char na float

Ostatnio zmodyfikowano 2016-01-24 21:21
Autor Wiadomość
pzet
Temat założony przez niniejszego użytkownika
[C] Funkcja zamieniająca tablicę char na float
» 2016-01-23 16:40:25
Mam problem z fragmentem kodu, który ma pobierać dane z pliku (imię i nazwisko studenta oraz jego oceny), przy czym oceny mogą być zapisane w formie "-5" bądź "4.25" i mają być przekonwertowane z typu char na float tak, aby dało się policzyć z nich średnią.
C/C++
float konwertuj( char tablica[] )
{
    int i;
    for( i = 0; i <= strlen( tablica[] ); i++ )
    {
       
        switch( tablica[] )
        {
        case '-5': return 4.75;
        case '5-': return 4.75;
        case '-4': return 3.75;
        case '4-': return 3.75;
        case '-3': return 2.75;
        case '3-': return 2.75;
        default: return strtod( tablica[], NULL ); break; /* strtof(ocena), strtod(ocena) */
        }
    }
}

Oczywiście dostaję komunikat


main.c:42:9: warning: multi-character character constant [-Wmultichar]
    case '-5': return 4.75; break;

Niestety nie umiem obejść problemu. Mogę prosić o wskazówki?
P-143922
Gibas11
» 2016-01-24 11:48:50
Switch działa tylko na pojedynczych zmiennych, tablice nie przejdą. Poza tym podałeś kilka znaków w apostrofach.
P-143950
Pawlo3
» 2016-01-24 20:44:47
Tak poza tym: minus obniża ocenę o 0.1, nie 0.25 (przynajmniej w Polsce).
P-143966
Gibas11
» 2016-01-24 21:21:10
Mój e-dziennik (xxx.wizja.net) twierdzi inaczej i 3- = 2.75.
P-143970
« 1 »
  Strona 1 z 1