C читать Array с циклами while
Первый раз спрашиваю здесь, надеюсь, вы не слишком суровы со мной.
Наша задача - написать простую программу на С для нашей стажировки в университете, которая содержит простое меню с тремя пунктами меню. Первый пункт меню используется для ввода параметров: сначала длины ребер, а затем второго числа углов многоугольника для последующего расчета, которые хранятся в двух одномерных массивах. Затем введенные значения снова кратко отображаются в последовательности. Во втором пункте меню должен быть выполнен расчет, который вычисляет углы и площадь многоугольника (или нескольких многоугольников). Третий пункт меню Выход из программы.
Математические расчеты нам нужно сделать:
α = ((n-2) / n) * 180 градусов (n= количество углов)
A = ((n * a ^2) / (4 * tan (Pi / n)) (n= количество углов, a= длина ребер)
И здесь у нас есть проблема. По сути, мы должны использовать цикл while, который обрабатывает массив один за другим и выводит вычисленные значения для каждой отдельной позиции массива (разные массивы, но одинаковые позиции) (позиция 1 массива с позицией 1 массива 2 и т. Д.), Но там мы просто не может получить дальше. Это может быть глупой ошибкой, но как бы мы ни старались, мы не сможем заставить ее работать. Либо у нас есть исключения с плавающей запятой (возможно, потому что он не обрабатывает массив правильно), либо он бесконечно проходит через бессмысленные вычисления.
Я надеюсь, что кто-то может помочь нам заставить код работать правильно:)
Мы очень благодарны за любую помощь!
PS мы немного новички в более сложном программировании, поэтому, пожалуйста, будьте терпеливы с нами:)
PPS, так как здесь написано с немецкими словами, здесь есть некоторый словарь: углы - длина края ecken - угол kantenlänge - площадь винкеля (в градусах) - fläche (в м ^2)
ЗДЕСЬ КОД:
/****************************************************************
*Autor: Danjal Shafiei-Sabet
*Erstellt: 20.05.2018
*Versuch: Versuch 3
*Aufgabe: Aufgabe 10, Berechnung ausgeben
****************************************************************/
#include <stdio.h>
#include <math.h>
#define MAX 6
int i=0;
int kantenlaenge1;
int kantenlaenge2;
int ecken1;
int ecken2;
int kantenlaenge[MAX];
int ecken[MAX];
const double M_PI=3.14159265358979323846;
double winkel;
double flaeche;
int main (void)
{
char menu_option;
do{
printf ("\n\nWaehlen Sie ein Menue aus:\n\n");
printf ("1. Parameter Eingeben \n");
printf ("2. Flaecheninhalt und Winkel Berechnen \n");
printf ("3. Programm Beenden\n");
printf ("\nAuswahl: ");
scanf(" %c",&menu_option);
switch(menu_option){
case '1':
printf("->AUSWAHL 1: Parameter Eingeben<-\n\n");
for(i=0;i<MAX;i++)
{
printf("Kantenlaengen eingeben: \n");
scanf("%d",&kantenlaenge1);
if(kantenlaenge1==0)
{
i=7;
}
else
{
kantenlaenge[i]=kantenlaenge1;
}
printf("Anzahl der Ecken eingeben: \n");
scanf("%d",&ecken1);
if(ecken1==0)
{
i=7;
}
else
{
ecken[i]=ecken1;
}
}
printf("\nSie haben eingegeben(Kantenlaengen): \n\n");
for(i = 0; i < MAX; i++)
printf("%d \n", kantenlaenge[i]);
printf("\nSie haben eingegeben(Anzahl Ecken): \n\n");
for(i = 0; i < MAX; i++)
printf("%d \n", ecken[i]);
/*return;*/
break;
case '2':
printf("->AUSWAHL 2: Flaecheninhalt und Winkel Berechnen<-\n\n");
while(i<=MAX){
i=0; i<MAX;
kantenlaenge[i]=kantenlaenge2;
ecken[i]=ecken2;
winkel=((ecken2-2/ecken2)*180);
flaeche=(ecken2*(kantenlaenge2*kantenlaenge2))/(4*tan(M_PI/ecken2));
printf("\n\nWinkel: %lf Grad", winkel);
printf("\n\nFlaeche: %lf Quadratmeter", flaeche);
i++;
}
break;
case'3':
printf("->PROGRAMM BEENDEN<-\n\n");
break;
/*default:
printf("invalid input\n\n");
break;*/
}
}while(menu_option !='3');
}