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');
    }

0 ответов

Другие вопросы по тегам