Anonymní profil Kuba – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Anonymní profil Kuba – Programujte.comAnonymní profil Kuba – Programujte.com

 

Příspěvky odeslané z IP adresy 84.42.156.–

Kuba
C / C++ › Zapsání nul na začátek řetězce
18. 11. 2012   #167059

#1 Kuba
Už je to v pohodě, teď potřebuju pro změnu vypsat jiný řetězec, který má nuly na začátku, beu těch nul.

Kuba
C / C++ › Zapsání nul na začátek řetězce
18. 11. 2012   #167009

Zdravím, potřebuju porovnat dva řetězce (pole charů) ze vstupu (cin >> str1 >> str2) a před delší z nich vypsat jednu nulu a před kratší několik nul tak, aby byly oba řetězce stejně dlouhé. To se mi sice podařilo, ale za prvním řetězcem se vypisujou nějaké divné znaky a za nimi ještě ten druhý řetězec a nedokážu se jich zbavit. Kde tam mám chybu? Moc si nejsem jistý správností toho druhého cyklu for, ale druhý řetězec se narozdíl od prvního vypisuje přesně tak, jak chci. Potom mám v kódu ještě else, kde jsou jenom prohozené str1 a str2, ale tam se vypisují špatně oba řetězce.

if (strlen(str1) > strlen(str2))
{
  rozdil = strlen(str1) - strlen(str2);
  str01[0] = '0';
  for (int k=1; k<strlen(str1)+1; k++)
  {
   str01[k] = str1[k-1];
  }
  while(j<=rozdil)
  {
   str02[j] = '0';
   j++;
  }
  for (int l=rozdil+1, j=0; l<strlen(str1)+1, j<strlen(str1); l++, j++)
  {
   str02[l] = str2[j];
  }
}

Kuba
C / C++ › Lepší zápis podmínky
1. 11. 2012   #165728

#3 zlz
To vypadá líp, ale v tom "správném" řešení nemá být ^, mělo by stačit || a &&. Podle rady cvičícího z posledních minut času by to mělo být:
if (i % 3 == 0 || i % 5 == 0 && i % 3 != 0) a stačí správně dopsat závorky. Ty ale nejsem schopný napsat tak, aby to vycházelo správně.

Kuba
C / C++ › Lepší zápis podmínky
1. 11. 2012   #165720

#2 vitamin
Proč bych měl testovat index j? i je řádek a j je sloupec, hvězdičky se mají vypsat na celý řádek, takže pro všechny j

Kuba
C / C++ › Lepší zápis podmínky
1. 11. 2012   #165715

Zdravím,

ve škole jsem měl za úkol napsat podmínku (zbytek programu byl předepsaný), která do dvourozměrného pole znaků o N*N prvcích vepíše hvězdičky na řádky, jejichž index je dělitelný třemi nebo pěti, ale není dělitelný třemi i pěti zároveň. Přišel jsem na 3 způsoby řešení, které vedou ke správnému výsledku, možná i víc, ale teď si vzpomínám jenom na ty 3. Každé z těch řešení bylo označeno za špatné a dostal jsem 0 bodů z 20 možných. Co je na tom špatně a jak byste to napsali vy?

#include <iostream>
using namespace std;

const int N = 8;

char Grid[N][N];

void ClearGrid()
{
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
            Grid[i][j] = ' ';
}

void Star(const int Row, const int Column)
{
    if (0 <= Row && Row < N && 0 <= Column && Column < N)
        Grid[Row][Column] = '*';
    else
        cout << "Row or column is out of valid range!" << endl;
}

void PrintGrid()
{
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
            cout << Grid[i][j];
            cout << endl;
    }
    cout << endl;
}

void main()
{
    ClearGrid();
    for(int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            if ((i % 3 == 0 || i % 5 == 0) && (i % 3 != 0 || i % 5 != 0)) // moje 1. reseni
            // moje 2. reseni: if ((i % 3 == 0 && i % 5 != 0) || (i % 5 == 0 && i % 3 != 0))
            // moje 3. reseni: if ((i % 3 == 0 || i % 5 == 0) && i % 15 != 0)  
                Star(i, j);
        }
    }
    PrintGrid();
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý