Prosim o pomoc v c++
Nevedel by z Vas niekto pretransformovat tento program na program s pouzitim vlastnych funkcii? A tiez neviem priradit polu (pole[0]) znamienko minus, ked odcitavam mensie cislo od vacsieho.
Velmi pekne dakujem.
#include <stdio.h>
#include <conio.h>
main()
{
int pole1[20],pole2[20],pole[20],s,n,m,i,j,k,;
printf ("\nZadaj velkost pola1 a pola2 - max.20:");
scanf ("%d",&m);
m = m + 1;
for (i=1;i<m;i++) //nacitava prvky od 1,pretoze
{ //nulty prvok pola (pole[0]) bude obsahovat znamieko
printf ("\nZadaj %d.cislicu pola1:",i); //"-" ak je cislo v poli1 mensie ako cislo v poli2
scanf ("%d",&pole1[i]);
}
for (j=1;j<m;j++)
{
printf ("\nZadaj %d.cislicu pola2:",j);
scanf ("%d",&pole2[j]);
}
for (k=0;k<1;k++) // tu sa vynuluje nulty prvok pola,pola1 a pola2
{
pole[k]=0;
pole1[k]=0;
pole2[k]=0;
}
printf ("\nCislice pola1 su:"); //vypisanie pvkov pola1 a pola2
for (i=1;i<m;i++)
printf ("%d",pole1[i]);
printf ("\nCislice pola2 su:");
for (j=1;j<m;j++)
printf ("%d",pole2[j]);
printf ("\n\nVysledok je:");
n = m - 1;
for (i=1;i<m;i++) //no a tu je cast, kde zistujeme ake cislo v poli1 je vzhladom k cislu v poli2.
{ //Zistujeme aka velkost je tych cisel, aby sme ich potom mohli odcitat.
if (pole1[i]<pole2[i]) //v tejto casti odcitavame mensie cislo od vacsieho napr.
{ //100 - 200
for (k=n;k>0;k--)
{
if (pole1[k]>pole2[k])
{
pole2[k] = pole2[k] + 10;
pole[k] = pole2[k] - pole1[k];
s = k - 1;
pole1[s] = pole1[s] + 1;
}
else pole[k] = pole2[k] - pole1[k];
}
}
else
{ if (pole1[i]>pole2[i]) //tu odcitavame vacsie cislo od mensieho napr.
{ //215 - 115
for (k=n;k>0;k--)
{
if (pole1[k]<pole2[k])
{
pole1[k] = pole1[k] + 10;
pole[k] = pole1[k] - pole2[k];
s = k - 1;
pole2[s] = pole2[s] + 1;
}
else pole[k] = pole1[k] - pole2[k];
}
} //a tiez je to osetrene ked mame takyto pripad: napr.115 - 114,
//porovnavame tieto prvky v poliach.Podla tohto prikladu v
} //prvej casti 1.prvok pola1 nie je mensi ako 1.prvok pola2
//a zase v druhej casti 1.prvok pola1 nie je vacsi ako 1.prvok
} //pola2, takze su urcite rovne. A preto sa cyklus zopakuje pre
//2.prvok pola1 a pola2, az pokial sa nezisti ci prvok pola1
//je < alebo > ako prvok pola2 (for (i=1;i<m;i++)).
for (k=0;k<m;k++) //tu vypise vysledok, ktory je ulozeny v poli.
printf ("%d",pole[k]);
getch();
}
Pre pridávanie komentárov sa musíte prihlásiť.
{
printf ("\nZadaj velkost pola1 a pola2 - max.20:");
}
pouzitie:
Menu();
... a funkcie mas hotove
> A tiez neviem priradit polu (pole[0]) znamienko minus, ked odcitavam mensie cislo od vacsieho.
prirad "-1", alebo "1"(+1). Teda nech k=-1, alebo 1 a potom scitavaj ako:
x = a + (k*b)
potom ked zmenis +1 na -1 tak mas odcitanie :)