#include<stdio.h>
#include<conio.h>
#include <math.h>

main()
{
clrscr();
char level,powy;
int a,b,c,d,e,r,i,wy,cos;
float x,y,wynik;

int dodawanie(int a,int b);
int odejmowanie(int a,int b);
int dzielenie(int a, int b);
int mnozenie(int a, int b);
int potegowanie(int a,int b,int c, int d);
float pierwiastkowanie(float x, float y,float wynik);
int dodawaniewielu(int wy,int e,int r,int i);

do
{
clrscr();
printf("\n1 - Dodawanie");
printf("\n2 - Odejmowanie");
printf("\n3 - Dzielenie");
printf("\n4 - Mnozenenie");
printf("\n5 - Potegowanie");
printf("\n6 - Pierwiastkowanie");
printf("\n7 - Dodawanie wielu liczb\n\n");

scanf("%d",&cos);
if (cos == 6)
{
printf("\nPodaj podstawe: ");
scanf("%f",&x);
printf("\nPodaj wykladnik: ");
scanf("%f",&y);
}
else if (cos == 7)
 goto etykieta;
else
{
printf("\nPodaj pierwsza liczbe: ");
scanf("%d",&a);
printf("\nPodaj druga liczbe: ");
scanf("%d",&b);
}
if (cos == 1)
 level='1';
else if (cos == 2)
 level='2';
else if (cos == 3)
 level='3';
else if (cos == 4)
 level='4';
else if (cos == 5)
 level='5';
 else if (cos == 6)
 level='6';
  else if (cos == 7)
 level='7';

switch (level)
{
case '1': dodawanie(a,b);
break;
case '2': odejmowanie(a,b);
break;
case '3': dzielenie(a,b);
break;	
case '4': mnozenie(a,b);
break;
case '5': potegowanie(a,b,c,d);
break;
case '6': pierwiastkowanie(x,y,wynik);
break;
case '7': dodawaniewielu(wy,e,r,i);
{
etykieta:
	 printf("\n Ile liczb chcesz dodac(tylko liczby naturalne): ");
	 scanf("%d",&r);
	 if (r<0)
	 {
	 do
	 {
	 printf("Podaj jeszcze raz: ");
	 scanf("%d",&r);
	 }
	 while(r<0);
	 }
	 wy = 0;
	 for(i=1; i<=r; i++)
	 {
	 printf("Podaj liczbe: ");
	 scanf("%d",&e);
	 wy = wy+e;
	 }
	 printf("Wynik dodawania %d liczb wynosi %d",r,wy);
	 }
default: printf("\nWprowadzono zle dane");
}
printf("\n\nChcesz kontynuowac?");
powy = getche();
}
while( powy =='y' || powy == 'Y');
getch();
return 0;}
int dodawanie(int a,int b)
{
printf("\n Wynik dodawanie: %d",a+b);
return 0;
}
int odejmowanie(int a,int b)
{
printf("\n Wynik odejmowania: %d",a-b);
return 0;
}
int dzielenie(int a,int b)
{
 if(b==0)
 {
printf("\n\nBlad Nie dziele przez 0 !");
}
printf("\n Wynik dzielenia: %d",a/b);
return 0;
}
	
int mnozenie(int a,int b)
{
printf("\n Wynik mnozenia: %d",a*b);
return 0;
}
int potegowanie(int a,int b,int c,int d)
{
d=1;
for (c=1; c<=b; c++)
{
d=d*a;
}
printf("\n %d potega liczby %d wynoosi: %d",b,a,d);
return 0;
}
float pierwiastkowanie(float x,float y,float wynik)
{
wynik=pow(x,1/y);
	 printf("\n %.3f stopnia z liczby û%.3f to %.3f",y,x,wynik);
return 0;
}
int dodawaniewielu(int wy,int e,int r,int i)
{
etykieta:
	 printf("\n Ile liczb chcesz dodac(tylko liczby naturalne): ");
	 scanf("%d",&r);
	 if (r<0)
	 {
	 do
	 {
	 printf("Podaj jeszcze raz: ");
	 scanf("%d",&r);
	 }
	 while(r<0);
	 }
	 wy = 0;
	 for(i=1; i<=r; i++)
	 {
	 printf("Podaj liczbe: ");
	 scanf("%d",&e);
	 wy = wy+e;
	 }
	 printf("Wynik dodawania %d liczb wynosi %d",r,wy);
	 return 0;
	 }
