Cześć witam serdecznie.
Mam pytanie odnośnie tablic w C. Mam napisany program, lecz potrzebuję zaimplementować tablice.
Treść zadania:
Program obliczający [pole | obwód] [kwadratu | prostokąta | koła]. (pi = 3.14) Dane figury mają być przechowywane w tablicy 'figura', a wynik w tablicy 'wynik'. Dane figury wpisywane są z klawiatury w trakcie działania programu.
Napisałem program bez tablic. Z technicznych rzeczy, to źle oblicza obwód prostokąta, oraz przy wyborze opcji powtarza się pętla. Proszę o wskazówki.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float obw_kwadrat(float x)
{
return 4*x;
}
float pole_kwadrat(float x)
{
return pow(x,2);
}
float obw_prostokat(float x, float y)
{
return x+x+y+y;
}
float pole_prostokat(float x,float y)
{
return x*y;
}
float pole_kolo(float r)
{
return M_PI*r;
}
float obw_kolo(float r)
{
return 2*M_PI*r;
}
int main(void)
{
float wynik;
float a,b,r;
char wybor;
while (1){
fflush(stdout);
printf("Wybierz operację: \n 1. Obwód kwadratu\n 2. Pole kwadratu\n 3. Obwód prostokata\n 4. Pole prostokata\n 5. Pole koła\n 6. Obwód koła\n");
getc(stdin);
scanf("%c", &wybor);
switch(wybor){
case '1':
{
printf("Obwód kwadratu. Podaj wartość a: ");
scanf("%f", &a);
wynik = obw_kwadrat(a);
printf("Wynik: %f\n", wynik);
break;
}
case '2':
{
printf("Pole kwadratu. Podaj wartość a: ");
scanf("%f", &a);
wynik = pole_kwadrat(a);
printf("Wynik: %f", wynik);
break;
}
case '3':
{
printf("Obwód prostokąta. Podaj wartość a,b: ");
scanf("%f", &a);
scanf("%f", &b);
wynik = pole_prostokat(a,b);
printf("Wynik: %f", wynik);
break;
}
case '4':
{
printf("Pole prostokąta. Podaj wartość a,b: ");
scanf("%f", &a);
scanf("%f", &b);
wynik = pole_prostokat(a,b);
printf("Wynik: %f", wynik);
break;
}
case '5':
{
printf("Obwód koła. Podaj wartość r: ");
scanf("%f", &r);
wynik = obw_kolo(r);
printf("Wynik: %f", wynik);
break;
}
case '6':
{
printf("Pole koła. Podaj wartość r: ");
scanf("%f", &r);
wynik = pole_kolo(r);
printf("Wynik: %f", wynik);
break;
}
default:
{
printf("błąd");
}
}
}
return 0;
}