Jak zapakować równanie to tablicy char i je obliczyć.

0

Witam szanowne grono programistów.
Chciałbym prosić Was o pomoc, mam za zadanie odczytać z tablicy charów wyłuskać równanie oraz zwrócić jego wynik, liczby w tej tablicy są tylko typu int, a działania to +,-, dodatkowo wartości int mogą być różnej długości(Nie tylko jedno cyfrowe, ale i kilku)
Z góry dzięki za każdą podpowiedź
Pozdrawiam
Mysza

0

Odwrotna notacja polska.

0

Podziel całego stringa na trzy, a potem skorzystaj z funkcji atol() lub atoi() aby zmienić stringa na liczbę, a w zależności od znaku wykonasz na nich działanie.
Ewentualnie, możesz wykonać działanie pisemnie, ale nad funkcjami będziesz wtedy musiał pomyśleć sam, tutaj ewentualnie pomożemy.

0

strtol będzie lepsze w użyciu bo zwraca pozycję, gdzie się skończyła liczba (łatwiej parsować).

0

Dzięki za odpowiedzi.
Podszedłem do tego jak do jeża. Czyli podaję liczbę doklejam do niej wartość k, następnie wczytuję znak doklejam do niego k, i z ostatnią wartością robię tak samo.
Moje pytanie teraz brzmi w jaki sposób mogę z tych wartości przed k zrobić inta?

0

Witam zapisuje to do tablicy niestety nie wypisuje mi pierwszej liczby w czym moe by problem?

 
#include<stdlib.h>
#include<stdio.h>

main(){
int a, b;
char  znak;
char wyslij[80];
printf("Podaj rownanie A: "); scanf("%d", &a);
while(getchar()!='\n') continue;
snprintf(wyslij, 80, "%d", a);
printf("Podaj znak: "); scanf("%s", &znak);
snprintf(wyslij + strlen(wyslij), 80 - strlen(wyslij), "%c", znak);
printf("Podaj rownanie B: "); scanf("%d", &b);
snprintf(wyslij + strlen(wyslij), 80 - strlen(wyslij), "%d", b);
printf("rownanie: %s ",wyslij); 
}
0

Co ty wyprawiasz? Do jednego znaku pakujesz cały napis. Tak szczęśliwie się składa, że w okolicy masz tablicę. Kompiluj z opcją -Wall by ustrzec się głupich błędów.

#include<stdlib.h>
#include<stdio.h>
 
int main() {
    char bufor[256];
    printf("Podaj rownanie: "); 
    fgets(bufor, sizeof(bufor), stdin); // czyta całą linię

    // tu masz już wczytane dane teraz to rozłóż na części używając strtol albo atoi.
    ....
}

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