C++ pomoc

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
upir102
Používateľ
Používateľ
Príspevky: 557
Dátum registrácie: Pi 04. Jan, 2008, 14:00
Bydlisko: Vinohrady nad Váhom

C++ pomoc

Príspevok od používateľa upir102 »

Ahojte ,
dostal som úlohu naprogramovať pascalov trojuholník,ktorý bude mať v sebe na miesto párnych čisiel znak * .Už to mám hotové len
pri výpise * hážde čudné čísla a neviem si s tým rady ,nevie niekto pomôcť ?čo by som tam mal asi zle ?tá vykomentovaná časť sú tie párne čísla prevedené na hviezdičky.

Dakujem

http://uloz.to/xbkYN7g/novy-textovy-dokument-txt
marcus-16
Používateľ
Používateľ
Príspevky: 938
Dátum registrácie: Ut 18. Jan, 2011, 22:11
Bydlisko: Pezinok

Re: C++ pomoc

Príspevok od používateľa marcus-16 »

Co tak tam dat pri vypise len jednu podminenku navyse?->

if(pole[j]%2 == 0)
printf(" * ");
else
printf(" %d ",pole[j]);

Kazdopadne k tomu kodu-
- na zaciatku si ujasni, ktore datove typy tam chces pouzivat..
pouzitie char je v tvojom pripade uplne zbytocne(a okrem toho aj nespravne)
- do premennych typu char priradujes cisla, potom priradujes do integerov znaky..mas to tam cele dopletene
- este k tomu priradujes znaky aj do premennych i a j, cez ktore iterujes
- pouzivaj v takychto pripadoch radsej cyklus FOR

odobne by som to spravil takto:
(naprv si ten trojuholnik cely vyrata, potom vypisat) + to treba `sformatovat` aby to malo tvar trojuholniku :)

Kód: Vybrať všetko

#include<stdio.h>
#include<stdlib.h>

#include<math.h>

int main()
{
int n;

printf("zadaj n pocet riadkov\n");
scanf("%d",&n);

int** pole = new int*[n];
for (int i=0; i < n; i++)
    pole[i] = new int[n];

for (int i = 0; i < n; i++)
    for (int j = 0; j < i+1; j++)
        if (j == 0 || j == i) pole[i][j]=1;
        else pole[i][j]=pole[i-1][j-1]+pole[i-1][j];

for (int i = 0; i < n; i++){
    for (int j = 0; j < i+1; j++)
        if(pole[i][j]%2 == 0)
          printf(" * ");
        else
          printf("%d ",pole[i][j]);
    printf("\n");
}

system("pause");
return 0;
}
CPU: i3 2120 + Gelid Tranquillo + UCTB12P MB: ASUS P8Z77-V LX VGA: Sapphire HD 7770 GHz Edition RAM: 8GB Crucial DDR3 1600MHz HDD: Seagate Barracuda 7200.12 500GB PSU: Arctic Cooling Fusion 550W LCD: Benq G2420HDBL Case: Fractal R3 + UCTB12P
Používateľov profilový obrázok
upir102
Používateľ
Používateľ
Príspevky: 557
Dátum registrácie: Pi 04. Jan, 2008, 14:00
Bydlisko: Vinohrady nad Váhom

Re: C++ pomoc

Príspevok od používateľa upir102 »

Dakujem to z tou podmienkou ma mohlo napadnúť .Program som ešte upravil funguje už ako má len ešte mám problém s tým že ked v tom trojuholniku si čísla dvojciferné už nie je rovnoramenný ale čapatý a neviem to spraviť nevedel by si mi ešte v tom pomôcť ?
btw: a už som to prerobil aj na for ,ten tvoj cez je dobrý funguje ale vypisuje ho do pravouhlého trojuholníka a ja ho musím spraviť ako rovnoramenný .
marcus-16
Používateľ
Používateľ
Príspevky: 938
Dátum registrácie: Ut 18. Jan, 2011, 22:11
Bydlisko: Pezinok

Re: C++ pomoc

Príspevok od používateľa marcus-16 »

sak som vravel :-)
marcus-16 napísal:... + to treba `sformatovat` aby to malo tvar trojuholniku :)
to ked su tam dvojciferne cisla..tam uz by to bolo trocha komplikovanejsie, musel by si tam dat viac podmienok, pre pripad ze ze n>5(dvojciferne)..dalej n>10(trojciferne) atd.....
pride mi to dost zbytocne, podla mna ked to spravis takto nejak jednoducho:

Kód: Vybrať všetko

for (int i = 0; i < n; i++){
    for(int k = 0; k < n-i ; k++) printf(" ");
      for (int j = 0; j < i+1; j++){
        if(pole[i][j]%2 == 0)
          printf("* ");
        else
          printf("%d ",pole[i][j]);
    }
    printf("\n");
}
..tak to urcite ucitelke(alebo pre koho to kodis) bude stacit :D
CPU: i3 2120 + Gelid Tranquillo + UCTB12P MB: ASUS P8Z77-V LX VGA: Sapphire HD 7770 GHz Edition RAM: 8GB Crucial DDR3 1600MHz HDD: Seagate Barracuda 7200.12 500GB PSU: Arctic Cooling Fusion 550W LCD: Benq G2420HDBL Case: Fractal R3 + UCTB12P
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C++ pomoc

Príspevok od používateľa crux2005 »

C++?
Nie len kvôli scanf a printf ale aj stavbe by som povedal, že to je C.
O chybách, čudných konštrukciách a chýbajúcich komentároch nehovoriac.
s pozdravom, crux.
Používateľov profilový obrázok
upir102
Používateľ
Používateľ
Príspevky: 557
Dátum registrácie: Pi 04. Jan, 2008, 14:00
Bydlisko: Vinohrady nad Váhom

Re: C++ pomoc

Príspevok od používateľa upir102 »

Dakujem za rady ...viem že ten moj kod má vela chýb, som začiatočník ale už si dávam pozor na úpravu ,lebo ten môj bol dosť neprehladný . :D

Návrat na "Programovanie"