Prosim o pomoc v c++

Sekcia: Programovanie 23.04.2007 | 16:50
Oskar   Návštevník
Zdravim Vas vsetkych programatorov, mam za ulohu spravit program, ktory odcita dve cisla na nekonecnom pocte radov. Je to realizovanie cez polia. Program som konecne spravil. Ale mam v programe pouzit vlastne funkcie.
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();

}
    • Re: Prosim o pomoc v c++ 23.04.2007 | 18:24
      Avatar Misko Kripel slackware  Používateľ
      void Menu(void)
      {
      printf ("\nZadaj velkost pola1 a pola2 - max.20:");
      }

      pouzitie:

      Menu();

      ... a funkcie mas hotove
      asdf
    • Re: Prosim o pomoc v c++ 23.04.2007 | 21:10
      stando   Návštevník
      to je ale kod :)) pracuj este
      > 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 :)