Portál AbcLinuxu, 16. listopadu 2025 23:18
Řešení dotazu:
for(r=0;r<radku;++r)
for(s=0;s<sloupcu;++s)
pole[r][s]=((r%2)^(s%2));
...
Pokud by ti nevyhovovalo rozložení jedniček a nul na šachovnici, zkus !((r%2)^(s%2)), zjednodušit to jen na řádky už bys měl dokázat sám
?
Potřebuji to vidět jak to je napsáno.
Díky

pole[r][s] = ((r%2) ^ (s%2)) ? -3 : 15;Za zkušeného borce mě nepovažuj, prostě si vyzkoušej co udělá to %2 s jakýmkoliv číslem a použij to. Já jsem tam dal tu složitější možnost, kde se s řádky a sloupci provádí ještě XOR, tobě stačí jen půlka toho výrazu...
Mrkněte na tohle co je v tom špatně ?
using namespace std;
int main(void)
{
int matice[15][10];
int i, j;
for (i = 0; i < 6; i++)
for (j = 0; j < 3; j++)
matice[i][j] = ((i%2)^(j%2));
}
Zkompiluje se to normalně ale na vystupu nic není :(
for (i = 0; i < vyska; i++)
{
for (j = 0; j < sirka; j++)
cout << matice[i][j];
cout << endl;
}
Snad to není moc blbě, nějak to musíš přebrat
Hlavně jestli víš proč tam přibyly ty složené závorky!
#include <iostream>

pole[r][s]=1-(výraz)aby ses nemusel jistit absolutní hodnotou. Takhle to bude fungovat samozřejmě i u té šachovnice.
Dělal to microsoftí QuickBasic, QBasic a starý GWBasic také, takže to byla "vlastnost". Zatím jsem si nic novějšího od nich nevyzkoušel, všas jsem tenhle pochybný směr vývoje opustil, takže netuším jak to funguje v jejich nástupcích: Visual Basic, C#, .NET... Každopádně bych se toho pro jistotu obával a ověřil si to předem.
.
PRINT (1=1)mi dá výsledek -1, a když jsem tenkrát v minulém tisíciletí přecházel z Didaktiku na PC a převáděl svoje prográmky do QBasicu, tak jsem se hodně trápil s podobnými "drobnostmi"
Oni redmondští mají vůbec dost divnou logiku, třeba to jejich slavné RND(0) a RND(1)...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.