Portál AbcLinuxu, 10. května 2024 05:33


Dotaz: Problém s cyklem

6.5.2015 22:01 Orlando
Problém s cyklem
Přečteno: 271×
Odpovědět | Admin
Zdarec. Mám pole které obsahuje 100 číselných prvků, čili (0...99). pak mám cyklus který se chová asi jak má, ale nevím jak vypsat určitý počet prvků. Při zadání "for ((i=0 ; i<10 ; i++)) vypíše 10 prvků (O..9), když to ale dám do cyklu a budu přičítat i+1 tak budu vypisovat
for ((i=0 ; i<10 ; i++)) (0...9)
for ((i=1 ; i<11 ; i++)) (1..10)
for ((i=2 ; i<12 ; i++)) (2..11)
...
for ((i=90 ; i<100 ; i++)) (90..99)
poslední výpis vypíše už jen 9 prvků. Když změním < za <= tak poslední výpis bude ok ale všechny ostatní budou vypisovat 11 prvků. Poraďte prosím co s tím ? Dík
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.5.2015 22:17 Sten
Rozbalit Rozbalit vše Re: Problém s cyklem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chyba je na druhé straně monitoru, poslední výpis má 10 prvků:
 1: 90
 2: 91
 3: 92
 4: 93
 5: 94
 6: 95
 7: 96
 8: 97
 9: 98
10: 99
6.5.2015 22:30 Orlando
Rozbalit Rozbalit vše Re: Problém s cyklem
A proč mi vypisuješ předposlední, prvků je 100
 1: 91
 2: 92
 3: 93
 4: 94
 5: 95
 6: 96
 7: 97
 8: 98
 9: 99
10: 100 //tohle se už nevypíše
Jendа avatar 6.5.2015 22:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Problém s cyklem
No a co my s tím? Tak třeba i<101 nebo i<=100.
1: 91
To není možné, tebou ukázaný kód začíná na 90, nikoli na 91.

(nechceš to sem vložit celé, případně ještě lépe rovnou napsat o co se snažíš?)
6.5.2015 23:38 Orlando
Rozbalit Rozbalit vše Re: Problém s cyklem
Jediné co potřebuji je, vypsat jedním univerzálním foreachem 10 x 10 položek což není možné, jelikož pomocí < dostanu 9x10 a 1x9 položek a pomocí <= dostanu zase 9x11 a 1x10 položek. To je vše..
Jendа avatar 6.5.2015 23:50 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Problém s cyklem
vypsat jedním univerzálním foreachem 10 x 10 položek
V zadání byl for.
for(int i = 0; i<10; i++) {
  for(int j = 0; j<10; j++) {
    printf("%02i ", 10*i+j);
  }
  printf("\n");
}


/tmp> jcc skel.c && ./skel
00 01 02 03 04 05 06 07 08 09 
10 11 12 13 14 15 16 17 18 19 
20 21 22 23 24 25 26 27 28 29 
30 31 32 33 34 35 36 37 38 39 
40 41 42 43 44 45 46 47 48 49 
50 51 52 53 54 55 56 57 58 59 
60 61 62 63 64 65 66 67 68 69 
70 71 72 73 74 75 76 77 78 79 
80 81 82 83 84 85 86 87 88 89 
90 91 92 93 94 95 96 97 98 99 
což není možné, jelikož pomocí < dostanu 9x10 a 1x9 položek a pomocí <= dostanu zase 9x11 a 1x10 položek
Nevěřím, pošli kód (nejlépe zkompilovatelný zdroják).
xxxxxx avatar 6.5.2015 22:39 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Problém s cyklem
V otázce jste psal, že je 100 hodnot od 0 do 99. V posledním cyklu začínáte na 90 a poslední hodnota bude 99. To je 10 hodnot a podle zadání se tam hodnota 100 ani nemá nacházet. Pokud použijete <= 100, pak bude hodnot 11. Čili jinými slovy hodnota 99 není předposlední, je poslední. První hodnota není 1, ale 0.
7.5.2015 11:21 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Problém s cyklem
Tak to dopadá když programují lidé, kteří neumí napočítat do sta.
7.5.2015 12:08 Xerces
Rozbalit Rozbalit vše Re: Problém s cyklem
Holt někdy je ráno moudřejšího večera a vyplatí se jít večer spát a sednout k tomu ráno s čistou hlavou a pak s ní mlátit o stůl jakej je člověk pitomec. :-)
7.5.2015 12:40 Orlando
Rozbalit Rozbalit vše Re: Problém s cyklem
A tak to dopadá, když odpovídají lidé, kteří umí pouze napočítat do sta.
7.5.2015 13:04 Orlando
Rozbalit Rozbalit vše Re: Problém s cyklem
!!! TAK SE VŠEM OMLOUVÁM !!! JSEM ČAP. Chyba nebyla v cyklu ale v zapomenuté části kódu, který odečítal let i-- pokud byla aktuální položka > 91.
7.5.2015 00:45 Sten
Rozbalit Rozbalit vše Re: Problém s cyklem
Vypisuji ten poslední, co máte uvedený v dotazu

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.