C Helpdesk
Witam serdecznie:) Dzisiaj przedstawiam kod programu wyświetlający choinkę z wprowadzonego tekstu, a dokładnie z odpowiedniej kombinacji znaków. Na początku kod programu, który wygląda następująco:
#include<stdio.h> main() { int znak; int index; int numznak; while ((znak = getchar()) != '\n') { numznak = znak % 26; index = 0; while (index++ < (30 - numznak)) putchar(' '); index = 0; while (index++ < (2 * numznak + 1)) putchar(znak); putchar('\n'); } getchar(); return 0; }
Teraz, gdy zapoznaliśmy się z kodem, pozwolę sobie przejść do krótkiej analizy. Przedstawiony program jest przykładem listingu. Odczytuje on znak, a następnie wyświetla go określoną liczbę razy, zależnie od kodu ASCII. Program wykorzystuje pętle zagnieżdżone. Zewnętrzna pętla 'while' pobiera znaki. Pierwsza wewnętrzna pętla 'while' wyświetla początkowe odstępy pozwalające wyśrodkować tekst, a druga - wyświetla odczytany znak odpowiednią ilość razy. Liczba kopii znaku jest określana na podstawie jego wartości numerycznej. Warto wypróbować różne kombinacje efekt choinki z tekstu otrzymamy po wpisaniu ciągu znaków: hijklmnopqrstuiii
That's all for now...
Offline
A to jest mój pomysł:
#include <stdio.h> #include <stdlib.h> int main() { int x, n, i, j; srand(time(0)); printf("Podaj wysokosc choinki: "); scanf("%d", &n); printf("\n\n"); if(n<=0) { printf("Blad !"); getchar(); getchar(); return(-1); } x = n; for(i=1; i<=n; i++) { for(j=1; j<=x; j++) putchar(' '); for(j=1; j<=2*i-1; j++) { if (j>=2 && rand()%(2*i-1) == j) putchar('O'); else putchar('*'); } x--; putchar('\n'); } for(i=1; i<=j/2-1; i++) putchar(' '); printf("[ ]"); getchar(); getchar(); return 0; }
Może mało eleganckie rozwiązanie, ale działa...
Oprócz wyświetlania choinki, program wstawia bombki w losowe miejsca...
Ostatnio edytowany przez mieczyk (03-20-2007 14:49:25)
Offline