PaniC_GR Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 καλησπερα σας...βασικα θα ηθελα μια μικρη help για την λυση ενος προβληματος που υπαρχει σαν ασκηση...ειμαι newbie στην c αλλα οχι κ πακετο... περναω στο problem... λοιπον μου ζητανε να δυνετε ενας integer πχ 5 κ να εμφανιζεται στην οθονη * * * * * * * * * * * * * * * ενα πραγμα σαν δεντρακι δλδ οπου ο αριθμος να εκφραζει τα καθετα αστερακια κ τα οριζοντια ελπιζω να καταλαβατετι παιζει...δεν θελω καμια τρελη λυση (printf,while,do while,switch)...αυτα ειναι μεχρι στιγμης τα λιγα που μαθαινω...thx all...
GrMikeD Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 estw k o integer. for (i=1;i<=k;i++) { for (j=1;j<=i;j++) printf("* "); printf("\n"); }
PaniC_GR Δημοσ. 16 Μαρτίου 2005 Μέλος Δημοσ. 16 Μαρτίου 2005 opa man den se pira grammh dld ena mikro explain to i as poume oti einai 1 an to k einai megalhtera i iso me to i tote i++ ara erxodai ta parakatw for (j=1;j<=i;j++) printf("* "); printf("\n"); den tha prepei na yparxei ena looping wste na vlepei ton integer k analogos ta print ta asterakia...kati allo den dilonetai to * san char;?
PaniC_GR Δημοσ. 16 Μαρτίου 2005 Μέλος Δημοσ. 16 Μαρτίου 2005 aa k to dendraki den to vgazei swsta den einai orizodio giati ayto pou bgazei den einai dentro :| ...fadastite kati san dedraki
Rising1980 Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 Ο κώδικας του GrMikeD είναι σχεδόν σωστός. Απλά η αλλαγή γραμμής πρέπει να γίνεται στο loop του i και όχι του j: for (i=1;i<=k;i++) { for (j=1;j<=i;j++) { printf("* "); } printf("\n"); } Το k το διαβάζεις στην αρχή με scanf. Και δεν χρειάζεται να δηλώσεις το '*' σαν char.
GrMikeD Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 Rising1980: kai omws einai swsto. Den xreiazetai {} ena block mias entolis. Allo ennoei o Panic_GR. Ennoei ta epipeda tou dentrou na einai stoixismena sto kedro kai oxi sta aristera. Ara xreiezetai na bazei kaneis analoga kena aristera apo to *, pou den tou bgike swsta sto format tou minimatos pou esteile. Diladi kapws etsi: > for (int i=1;i<=k;i++) { for (int m=1;m<=k-i;m++) printf(" "); for (int j=1;j<=i;j++) printf("* "); printf("\n"); }
Rising1980 Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 Τα brackets τα έβαλα για να δείξω σε ποιο loop πρέπει να πάει η αλλαγή γραμμής Έχεις δίκιο στο ότι δεν κατάλαβα πως έπρεπε να είναι στοιχισμένα στο κέντρο. Ο κώδικάς σου είναι σωστός.
alkisg Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 Μόνο για πλάκα, μια απάντηση με ένα μόνο for: > #include <stdio.h> int main(void) { char stars[] = "**************"; int k = 5; int i; for (i = 0; i < k; i++) printf("%*.*s\n", k+i, 2*i+1, stars); return 0; } Και το output: > * *** ***** ******* ********* Ξαναλέω μόνο για πλάκα, γιατί το stars θα πρέπει να περιέχει τουλάχιστον 2*k+1 αστεράκια ;-)
PaniC_GR Δημοσ. 20 Μαρτίου 2005 Μέλος Δημοσ. 20 Μαρτίου 2005 hi pali k sorry gia tin kathisterisi...re c alkisg ti enwis mono gia plaka???twrra kati allo re paidia o integer pou tha dinw egw pio grama na ekfrazei to j i to m pou exeis valei mesa sthn grammh kwdika Grmiked???dld gia na dwsw ton int printf("dwse arithmo"); ti scanf ("%d",&?); tha exw? thx para poli paides...
gerontas Δημοσ. 20 Μαρτίου 2005 Δημοσ. 20 Μαρτίου 2005 Ο αριθμός που θα δίνεις από το πληκτρολόγιο, στους κώδικες του GrMikeD πρέπει να καταχωρείται στη μεταβλητή k, δίνεις δλδ. scanf("%d",&k); (Τη μεταβλητή m την πρόσθεσε στον τελευταίο κώδικα για να αφήνει κενά και να τυπώνει το δεντράκι προς το κέντρο).
PaniC_GR Δημοσ. 21 Μαρτίου 2005 Μέλος Δημοσ. 21 Μαρτίου 2005 ok gerontas alla kati akoma exw tin exeis paratirisei Η ι-οστή γραμμή έχει Ν-ι κενά και 2*ι-1 αστεράκια... ayto den to vlepw sto kwdika to grmiked alla stou alkisg...
alkisg Δημοσ. 21 Μαρτίου 2005 Δημοσ. 21 Μαρτίου 2005 PaniC_GR τον δικό μου κώδικα μην τον "μετράς", κανονικά αυτή η άσκηση χρειάζεται for μέσα σε for, αλλά εγώ έκανα "κολπάκι" για να αποφύγω το ένα for περνώντας μερικές ειδικές παραμέτρους στην printf. Γι' αυτό είπα "μόνο για πλάκα", δεν είναι αποδεκτή λύση για κάποιον που κάνει τα πρώτα βήματά του σε C. O GrMikeD έβαλε printf("* "), δηλαδή να τυπώνει και κενά ανάμεσα στα αστεράκια, επειδή κι εσύ στο αρχικό δεντράκι που σχεδίασες είχες βάλει κενά. Τελικά πώς το θες, με κενά ή όχι;
PaniC_GR Δημοσ. 24 Μαρτίου 2005 Μέλος Δημοσ. 24 Μαρτίου 2005 ok ok paides telika oloklirothike to ergo thx para pollu gia thn help tha epanelthw me kati pio new argotera...alkisg odws to diko sou itan pio proxorimeneis morfis gia emena pados thx man...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.