Zczytwywanie znaków z wejścia

0

Witam, mam problem z funkcją wczytującą znaki z wejścia, ma ona rozróżniać liczby i symbole działań na liczbach

 
int menu() {

    char s[100];
    int i, c;
    
    while ((s[0] = c = getchar()) == ' ' || c == '\t')
        ;
    s[1] = '\0';
    if (! isdigit(c) && c!= '.') 
      return c;      
    i = 0; 
    if (isdigit(c))    
        while (isdigit(s[++i] = c = getchar()))
            ;
    s[i] = '\0';
    if (c != EOF)
       putchar(c);
    

return NUMBER;
}

Czy jest ona stworzona dobrze?

0

Ma to być dwie liczby i jedno działanie na nich czy normalne wyrażenie matematyczne typu:
(1+3)*(4+1)+5*8^2 ?

0

3 4 + 2 *
odwrócona notacja polska :)

1
int main()
  {
   for(;;)
     {
      double v;
      char op[2];
      if(scanf(" %[+-*/]s",op)==1) printf("operacja: %c\n",op[0]);
      else if(scanf(" %lf",&v)==1) printf("liczba: %lf\n",v);
      else break;
     }
   return 0;
  }

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