#include <stdio.h>
#define pi 3.14159
int wypis(void);
void prostokat(void);
void kolo(void);
void trojkat(void);
main()
{
float a,b,r;
int q;
do{
q=wypis();
switch(q)
{
case 1:
prostokat();
break;
case 2:
kolo();
break;
case 3:
trojkat();
break;
case 4:
printf("koniec programu");
break;
default:
printf("wybierz opcje z menu\n");
break;
} }
while(q!=4);
}
int wypis(void){
int q;
char i;
FILE* menu;
system("clear");
printf("\n\n");
menu=fopen("cw08-05.menu","r");
while(!feof(menu))
{
fscanf(menu,"%c",&i);
printf("%c",i);
}
fclose(menu);
printf("\n\n**Wybierz co chcesz zrobic**\n\n ");
scanf("%d",&q);
return q;
}
void prostokat(void)
{
float a,b,c;
printf("Podaj wartosci bokow prostakata: ");
scanf("%f %f",&a,&b);
if(a<=0 || b<=0)
printf("wartosci bokow musza byc wieksze od 0");
else{
c=a*b;
printf("Pole prostokata o bokach %.2f %.2f wynosi %.2f",a,b,c);
}}
void kolo(void)
{
float a,c;
printf("Podaj promien kola");
scanf("%f",&a);
if(a<=0)
printf("promien ma byc wiekszy od 0");
else{
c=pi*a*a;
printf("Pole kola o promieniu %.2f wynosi %.2f",a,c);
}}
void trojkat(void)
{
float a,b,c;
printf("Podaj dlugosc podstawy i wysokosc trojkata");
scanf("%f %f",&a,&b);
if(a<=0 || b<=0)
printf("dlugosc i wysokosc ma byc wieksza odd 0");
else{
c=(a*b)/2;
printf("Pole trojkata o dlugosci podstawy %.2f i wysokosci %.2f wynosi %.2f",a,b,c);
}}
mam taki problem, że wypisuje ładnie wszystko działa ale kiedy w menu nie wybiore zadnej opcji tylko wpisze np "e" zamiast 1,2,3 czy 4 to program się zapętla i wypisuje menu przez cały czas ;] myślałem, że ten default to załatwi ale niestety dalej się tak robi. Jakieś sugestie/pomysły?
Pozdrawiam!