| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
Zdravim, mam mensie trouble s podmienkov v mojom kode. Kód: #include <stdio.h> int main() { int N,i,j; scanf("%d",&N); if(N < 1 || N > 15 || N%2 == 0) printf("Zly vstup\n");
else { for(i=0;i< 2 * N-1;i++) { putchar('\n'); for(j=0;j<N;j++) { /*i+1 2*N-i-1*/ if(j <2*N-i-1) putchar('*'); else putchar('-'); } } } putchar('\n'); return 0; } Kód: ./trojuholnik 5
***** ***** ***** ***** ***** ****- ***-- **--- *----
Kód: #include <stdio.h> int main() { int N,i,j; scanf("%d",&N); if(N < 1 || N > 15 || N%2 == 0) printf("Zly vstup\n");
else { for(i=0;i< 2 * N-1;i++) { putchar('\n'); for(j=0;j<N;j++) { /*i+1 2*N-i-1*/ if(j < i+1) putchar('*'); else putchar('-'); } } } putchar('\n'); return 0; } Kód: ./trojuholnik5
*---- **--- ***-- ****- ***** ***** ***** ***** *****
obe polovice mam len neviem ako ich dat do 1 celku skusal som selico. Finalne ma vyjst toto Kód: *---- **--- ***-- ****- ***** ****- ***-- **--- *----
Dakujem za mozne navrhy napady.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 12.10.2014 1:55 | |
|
Použi v tej podmienke and (&&).
|
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 12.10.2014 2:09 | |
|
Kód: #include <stdio.h> int main() { int N,i,j; scanf("%d",&N); if(N < 1 || N > 15 || N%2 == 0) printf("Zly vstup\n");
else { for(i=0;i< 2 * N-1;i++) { putchar('\n'); for(j=0;j<N;j++) { /*i+1 2*N-i-1*/ if( (j<i+1 && i<N) || (j<2*N-i-1 && i>=N)) putchar('*'); else putchar('-'); } } } putchar('\n'); return 0; } chcel som zanechat tvoj pristup, takze len upravenie ifu, proste pridanie kontroly, ze ked idem s riadkami po N, tak sa pyta na to i+1 a ked idem s i nad N, tak sa pyta na druhe
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
Vdaka aj za vysvetlenie
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 12.10.2014 11:20 | |
|
Stačilo spojiť tie tvoje dve kontroly a použiť &&
|
|
Registrovaný: 24.08.12 Prihlásený: 09.02.19 Príspevky: 59 Témy: 0 | Napísal faraon: 12.10.2014 18:48 | |
|
Vždycky je víc způsobů jak stáhnout kočku z kůže, a tisíc programátorů napíše stejný program tisíci různými způsoby. Tak zkus u každé úlohy zapřemýšlet jestli by se nedala udělat jinak: Kód: #include <stdio.h>
void trojuhelnik(int hvezd,int sloupcu) { int i=1,j;
do { for (j=0;j<sloupcu;++j) putchar(j<hvezd?'*':'-'); putchar('\n'); if (i && hvezd<sloupcu) trojuhelnik(hvezd+1,sloupcu); } while (i-- && hvezd<sloupcu); }
int main(void) { int i,j,krok,vyska;
/******************************************* * načtení a kontrola uživatelského vstupu * *******************************************/ printf("Zadej počet sloupců: "); if (!scanf("%d",&vyska) || vyska<1 || vyska>15 || !(vyska&1)) { printf("Chybné zadání!\n!"); return 1; }
/***************************************************** * varianta 1 - naivní řešení - dva cykly tam a zpět * *****************************************************/ for (i=1;i<vyska;++i) { for (j=1;j<=vyska;++j) putchar(j<=i?'*':'-'); putchar('\n'); } for (;i;--i) { for (j=1;j<=vyska;++j) putchar(j<=i?'*':'-'); putchar('\n'); } putchar('\n');
/*********************************************************** * varianta 2 - to Pascal neudělá - cyklus se změnou kroku * ***********************************************************/ for (krok=1,i=1;i;i+=krok) { for (j=1;j<=vyska;++j) putchar(j<=i?'*':'-'); if (i==vyska) krok=-krok; putchar('\n'); } putchar('\n');
/****************************************************** * varianta 3 - trocha programátorské magie - rekurze * ******************************************************/ trojuhelnik(1,vyska);
return 0; }
_________________ "Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson) |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|