Witam mam problem z zamianą tego programu z C na C++. Czy mogła bym prosić o pomoc
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
double *W[2],*G[2],*wynik;
int stopien1,stopien2,stopienMAX;
int max;
int menu;
for(;;)
{
printf("\n MENU\n");
printf("1.) - Dodawanie wielomianow\n");
printf("2.) - Odejmowanie wielomianow\n");
printf("3.) - Mnozenie wielomianow\n");
printf("4.) - Pochodna z wielomiana\n");
printf("5.) - Calka z wielomiana\n");
printf("0.) - Wyjscie\n\n");
scanf("%d",&menu);
switch(menu)
{
case 1 :
case 2 :
{
printf("\nPodaj stopien pierwszego wielomiana: ");
scanf("%d",&stopien1);
printf("\nPodaj stopien drugiego wielomiana: ");
scanf("%d",&stopien2);
stopien1++;
stopien2++;
if(stopien1>stopien2) {
wynik = (double*) malloc(sizeof(double)*(stopien1));
stopienMAX=stopien1;
max=0;
}else{
wynik = (double*) malloc(sizeof(double)*(stopien2));
stopienMAX=stopien2;
max=1;
}
W[0] = (double*) malloc(sizeof(double)*(stopien1));
W[1] = (double*) malloc(sizeof(double)*(stopien1));
G[0] = (double*) malloc(sizeof(double)*(stopien2));
G[1] = (double*) malloc(sizeof(double)*(stopien2));
for(unsigned int i = 0; i < stopien1 ; i++)
{
printf("\nPodaj %d wspolczynnik pierwszego wielomiana: ",i+1);
scanf("%lf",&W[0][i]);
W[1][i]=stopien1-i;
}
for(unsigned int i = 0; i < stopien2 ; i++)
{
printf("\nPodaj %d wspolczynnik drugiego wielomiana: ",i+1);
scanf("%lf",&G[0][i]);
G[1][i]=stopien2-i;
}
printf("\n\n W(x) = ");
for(unsigned int i = 0; i < stopien1 ; i++)
{
if(W[0][i]!=0)
{
if(W[0][i]>0 && i!=0)
printf("+");
if(stopien1-i-1!=0)
printf("%3.1lfx^%d ",W[0][i],stopien1-i-1);
else
printf("%3.1lf",W[0][i]);
}
}
printf("\n\n G(x) = ");
for(unsigned int i = 0; i < stopien2 ; i++)
{
if(G[0][i]!=0)
{
if(G[0][i]>0 && i!=0)
printf("+");
if(stopien2-i-1!=0)
printf("%3.1lfx^%d ",G[0][i],stopien2-i-1);
else
printf("%3.1lf",G[0][i]);
}
}
int k = 0;
int l = 0;
for(unsigned int i = 0; i < stopienMAX; i++ )
{
if(W[1][k]==G[1][l]){
if(menu == 1)
wynik[i] = W[0][k] + G[0][l];
else
wynik[i] = W[0][k] - G[0][l];
k++;
l++;
} else if(W[1][k] > G[1][l]){
wynik[i] = W[0][l];
k++;
} else if(W[1][k] < G[1][l]){
wynik[i] = G[0][l];
l++;
}
}
printf("\n\n wynik(x) = ");
for(unsigned int i = 0; i < stopienMAX ; i++)
{
if(wynik[i]!=0)
{
if(wynik[i]>0 && i!=0)
printf("+");
if(stopienMAX-i-1!=0)
printf("%3.1lfx^%d ",wynik[i],stopienMAX-i-1);
else
printf("%3.1lf",wynik[i]);
}
}
printf("\n");
_getch();
}
break;
case 3 :
{
printf("\nPodaj stopien pierwszego wielomiana: ");
scanf("%d",&stopien1);
printf("\nPodaj stopien drugiego wielomiana: ");
scanf("%d",&stopien2);
stopien1++;
stopien2++;
if(stopien1>stopien2) {
wynik = (double*) malloc(sizeof(double)*(stopien1));
stopienMAX=stopien1;
max=0;
}else{
wynik = (double*) malloc(sizeof(double)*(stopien2));
stopienMAX=stopien2;
max=1;
}
W[0] = (double*) malloc(sizeof(double)*(stopien1));
W[1] = (double*) malloc(sizeof(double)*(stopien1));
G[0] = (double*) malloc(sizeof(double)*(stopien2));
G[1] = (double*) malloc(sizeof(double)*(stopien2));
wynik = (double*) malloc(sizeof(double)*(stopien2+stopien1));
for(int i=0;i<stopien1+stopien2;i++)
{
wynik[i] = 0;
}
double *temp[2];
temp[0] = (double*)malloc(sizeof(double)*stopien1*stopien2);
temp[1] = (double*)malloc(sizeof(double)*stopien1*stopien2);
for(unsigned int i = 0; i < stopien1 ; i++)
{
printf("\nPodaj %d wspolczynnik pierwszego wielomiana: ",i+1);
scanf("%lf",&W[0][i]);
W[1][i]=stopien1-i;
}
for(unsigned int i = 0; i < stopien2 ; i++)
{
printf("\nPodaj %d wspolczynnik drugiego wielomiana: ",i+1);
scanf("%lf",&G[0][i]);
G[1][i]=stopien2-i;
}
printf("\n\n W(x) = ");
for(unsigned int i = 0; i < stopien1 ; i++)
{
if(W[0][i]!=0)
{
if(W[0][i]>0 && i!=0)
printf("+");
if(stopien1-i-1!=0)
printf("%3.1lfx^%d ",W[0][i],stopien1-i-1);
else
printf("%3.1lf",W[0][i]);
}
}
printf("\n\n G(x) = ");
for(unsigned int i = 0; i < stopien2 ; i++)
{
if(G[0][i]!=0)
{
if(G[0][i]>0 && i!=0)
printf("+");
if(stopien2-i-1!=0)
printf("%3.1lfx^%d ",G[0][i],stopien2-i-1);
else
printf("%3.1lf",G[0][i]);
}
}
int licznik=0;
for(int i=0;i<stopien1;i++)
{
for(int j=0;j<stopien2;j++)
{
temp[0][licznik]=W[0][i]*G[0][j];
temp[1][licznik]=W[1][i]+G[1][j];
licznik++;
}
}
for(int i=0;i<stopien1*stopien2;i++)
{
int cos=temp[1][i]-1;
wynik[cos] += temp[0][i];
}
printf("\n\n wynik(x) = ");
for(int i = stopien2+stopien1-1; i > 0 ; i--)
{
if(wynik[i]!=0)
{
if(wynik[i]>0 && i!=0)
printf("+");
if(i-1!=0)
printf("%3.1lfx^%d ",wynik[i],i-1);
else
printf("%3.1lf",wynik[i]);
}
}
printf("\n");
_getch();
}break;
case 4 :
printf("\nPodaj stopien pierwszego wielomiana: ");
scanf("%d",&stopien1);
stopien1++;
wynik = (double*) malloc(sizeof(double)*(stopien1));
W[0] = (double*) malloc(sizeof(double)*(stopien1));
W[1] = (double*) malloc(sizeof(double)*(stopien1));
wynik = (double*) malloc(sizeof(double)*(stopien1));
for(int i=0;i<stopien1;i++)
{
wynik[i] = 0;
}
for(unsigned int i = 0; i < stopien1 ; i++)
{
printf("\nPodaj %d wspolczynnik wielomianu: ",i+1);
scanf("%lf",&W[0][i]);
W[1][i]=stopien1-i;
}
printf("\n\n W(x) = ");
for(unsigned int i = 0; i < stopien1 ; i++)
{
if(W[0][i]!=0)
{
if(W[0][i]>0 && i!=0)
printf("+");
if(stopien1-i-1!=0)
printf("%3.1lfx^%d ",W[0][i],stopien1-i-1);
else
printf("%3.1lf",W[0][i]);
}
}
for(int i=0;i<stopien1;i++)
{
wynik[i]=W[1][i]*W[0][i];
}
printf("\n\n wynik(x) = ");
for(int i = stopien1-1; i > 0 ; i--)
{
if(wynik[stopien1-i]!=0)
{
if(wynik[stopien1-i]>0 && i!=0)
printf("+");
if(i-1!=0)
printf("%3.1lfx^%d ",wynik[stopien1-i],i-1);
else
printf("%3.1lf",wynik[stopien1-i]);
}
}
printf("\n");
_getch();
break;
case 5 :
printf("\nPodaj stopien pierwszego wielomiana: ");
scanf("%d",&stopien1);
stopien1++;
wynik = (double*) malloc(sizeof(double)*(stopien1));
W[0] = (double*) malloc(sizeof(double)*(stopien1));
W[1] = (double*) malloc(sizeof(double)*(stopien1));
wynik = (double*) malloc(sizeof(double)*(stopien1));
for(int i=0;i<stopien1;i++)
{
wynik[i] = 0;
}
for(unsigned int i = 0; i < stopien1 ; i++)
{
printf("\nPodaj %d wspolczynnik wielomianu: ",i+1);
scanf("%lf",&W[0][i]);
W[1][i]=stopien1-i;
}
printf("\n\n W(x) = ");
for(unsigned int i = 0; i < stopien1 ; i++)
{
if(W[0][i]!=0)
{
if(W[0][i]>0 && i!=0)
printf("+");
if(stopien1-i-1!=0)
printf("%3.1lfx^%d ",W[0][i],stopien1-i-1);
else
printf("%3.1lf",W[0][i]);
}
}
for(int i=0;i<stopien1;i++)
{
wynik[i]=W[0][i]/(W[1][i]);
}
printf("\n\n wynik(x) = ");
for(int i = stopien1+1; i > 0 ; i--)
{
if(i==1)
{
printf(" +C",W[0][stopien1]);
}
else if(wynik[stopien1-i+1]!=0)
{
if(wynik[stopien1+1-i]>0 && i!=0)
printf("+");
printf("%3.1lfx^%d ",wynik[stopien1+1-i],i-1);
}
}
printf("\n");
_getch();
break;
case 0 :
printf("\nZegnam !\n\n");
_getch();
return 0;
break;
default :
printf("\nERROR - Bledna wartosc !\n\n");
_getch();
}
printf("\n\n\n");
}
}