#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.
Příspěvky odeslané z IP adresy 84.42.156.–
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];
}
}
#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ě.
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();
}