Treść zadania 1: Wczytaj z klawiatury znak reprezentujący jeden z dwuargumentowych operatorów arytmetycznych oper (+ - * / %), a następnie dwie liczby całkowite a i b. Wypisz wynik operacji a oper b. W przypadku, gdy znak nie reprezentuje operatora arytmetycznego, zgłoś komunikat "Błędny operator". Sprawdź także, czy w przypadku operatorów / i % nie zachodzi dzielenie przez 0, jeśli tak wypisz odpowiedni komunikat. Wskazówka zastosuj instrukcje switch i if. Problem mam z zadaniem drugim.
#include <stdio.h>
int main()
{
char oper;
int a, b;
printf("Wybierz operator +-*/% lub nacisn q, aby zakonczyc: ");
scanf("%c", &oper);
printf("Podaj dwie liczby: ");
scanf("%d%d", &a, &b);
switch(oper)
{
case '+': printf("%d+%d=%d",a,b,a+b);
break;
case '-': printf("%d-%d=%d",a,b,a-b);
break;
case '*': printf("%d*%d=%d",a,b,a*b);
break;
case '/':
{
if(b!=0)
printf("%d/%d=%d",a,b,a/b);
else
printf("Nie mozna dzielić przez zero");
}
break;
case '%':
{
if(b!=0)
printf("%d%c%d=%d",a,37,b,a%b);
else
printf("Nie mozna dzielić przez zero");
}
break;
default: printf("Bledny operator");
}
}
Treść zadania 2: Zmodyfikuj program 1 tak, aby działał w pętli obliczając wyniki operacji dla kolejnych par liczb, dopóki użytkownik zamiast znaku oper wprowadzi znak q. Wskazówka: zastosuj instrukcję while. Do wczytania oper użyj getch().
Włączam program podaje +, potem na przykład 6 i 2. Program wyświetla wynik. I potem od razu przechodzi do podawania liczb, nie można podać operatora i z tego powodu potem wyświetli się komunikat błędny operator.
#include <stdio.h>
int main()
{
char oper;
int a, b;
while(oper!='q')
{
printf("\nWybierz operator + - * / %c lub nacisn q, aby zakonczyc: ",37);
scanf("%c", &oper);
printf("\nPodaj dwie liczby: ");
scanf("%d%d", &a, &b);
switch(oper)
{
case '+': printf("%d+%d=%d",a,b,a+b);
break;
case '-': printf("%d-%d=%d",a,b,a-b);
break;
case '*': printf("%d*%d=%d",a,b,a*b);
break;
case '/':
{
if(b!=0)
printf("%d/%d=%d",a,b,a/b);
else
printf("Nie mozna dzielić przez zero");
}
break;
case '%':
{
if(b!=0)
printf("%d%c%d=%d",a,37,b,a%b);
else
printf("Nie mozna dzielić przez zero");
}
case 'q': break;
break;
default: printf("Bledny operator");
}
}
}