#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
    int continuer = 1;
    int choixmenu = 7;
    int nbr_de_asm = 2;
    int i = 0;
    double* nombres = NULL;
    double nombre1 = 0;
    double nombre2 = 0;
    double resultat = 0;

    while(continuer == 1)
    {
        printf("                          ---------Bienvenue----------\n");
        printf("\n---<menu>---\n");
        printf("1.Addition\n");
        printf("2.Soustraction\n");
        printf("3.Multiplication\n");
        printf("4.Division\n");
        printf("5.Puissance\n");
        printf("6.Racine carree\n");
        printf("7.Quitter");
        printf("\n\nVotre choix: \n");
        scanf("%ld", &choixmenu);
        system("CLS");
        nbr_de_asm = 2;
        nombre1 = 0;
        nombre2 = 0;
        resultat = 0;
        switch(choixmenu)
        {
            case 1:
            printf("Addition\n");
            printf("Entrez le nombre de nombres que vous voulez additionner\n");
            scanf("%ld", &nbr_de_asm);

            if (nbr_de_asm > 1)
            {
                nombres = malloc(nbr_de_asm * sizeof(double)); // On alloue de la mémoire pour le tableau
                if (nombres == NULL) // On vérifie si l'allocation a marché ou pas
                {
                    exit(0); // On arrête tout
                }
                for (i = 0 ; i < nbr_de_asm ; i++)
                {
                printf("Numero %ld : ", i + 1);
                scanf("%lf", &nombres[i]);
                }
                nombre1 += nombres[0];
                for (i = 1; i < nbr_de_asm ; i++)
                {
                    nombre1 += nombres[i];
                }
                printf(" = %lf\n", nombre1);

            }
            system("PAUSE");
            system("CLS");
            break;

            case 2:
            printf("Soustraction\n");
            printf("Entrez le nombre de nombres que vous voulez soustraire\n");
            scanf("%ld", &nbr_de_asm);

            if (nbr_de_asm > 1)
            {
                nombres = malloc(nbr_de_asm * sizeof(double)); // On alloue de la mémoire pour le tableau
                if (nombres == NULL) // On vérifie si l'allocation a marché ou pas
                {
                    exit(0); // On arrête tout
                }
                for (i = 0 ; i < nbr_de_asm ; i++)
                {
                printf("Numero %ld : ", i + 1);
                scanf("%lf", &nombres[i]);
                }
                nombre1 += nombres[0];
                for (i = 1; i < nbr_de_asm ; i++)
                {
                    nombre1 -= nombres[i];
                }
                printf(" = %lf\n", nombre1);

            }
            system("PAUSE");
            system("CLS");
            break;

            case 3:
            printf("Multiplication\n");
            printf("Entrez le nombre de nombres que vous voulez multiplier\n");
            scanf("%ld", &nbr_de_asm);

            if (nbr_de_asm > 1)
            {
                nombres = malloc(nbr_de_asm * sizeof(double)); // On alloue de la mémoire pour le tableau
                if (nombres == NULL) // On vérifie si l'allocation a marché ou pas
                {
                    exit(0); // On arrête tout
                }
                for (i = 0 ; i < nbr_de_asm ; i++)
                {
                printf("Numero %ld : ", i + 1);
                scanf("%lf", &nombres[i]);
                }
                nombre1 += nombres[0];
                for (i = 1; i < nbr_de_asm ; i++)
                {
                    nombre1 *= nombres[i];
                }
                printf(" = %lf\n", nombre1);

            }
            system("PAUSE");
            system("CLS");
            break;

            case 4:
            printf("Division\n");
            printf("1er nombre:\n");
            scanf("%lf", &nombre1);
            printf("2eme nombre:\n");
            scanf("%lf", &nombre2);
            resultat = nombre1 / nombre2;
            printf("%f / %f = %f\n", nombre1, nombre2, resultat);
            system("PAUSE");
            system("CLS");
            break;

            case 5:
            printf("Puissance\n");
            printf("1er nombre:\n");
            scanf("%lf", &nombre1);
            printf("2eme nombre:\n");
            scanf("%lf", &nombre2);
            resultat = pow(nombre1, nombre2);
            printf("%lf puissance %lf = %f\n", nombre1, nombre2, resultat);
            system("PAUSE");
            system("CLS");
            break;

            case 6:
            printf("Nombre:\n");
            scanf("%lf", &nombre1);
            resultat = sqrt(nombre1);
            printf("Racine carree de %lf = %lf\n", nombre1, resultat);
            system("PAUSE");
            system("CLS");
            break;

            case 7:
            printf("Au revoir\n");
            continuer = 0;
            break;

            default:
            printf("Vous n'avez rien choisi veuillez recommencer\n");
            break;
            system("CLS");
        }
    }
}
