Προς το περιεχόμενο

Hi All...turbo C++ problem...


PaniC_GR

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα σας...βασικα θα ηθελα μια μικρη help για την λυση ενος προβληματος που υπαρχει σαν ασκηση...ειμαι newbie στην c αλλα οχι κ πακετο...

περναω στο problem...

λοιπον μου ζητανε να δυνετε ενας integer πχ 5 κ να εμφανιζεται στην οθονη

*

* *

* * *

* * * *

* * * * *

ενα πραγμα σαν δεντρακι δλδ οπου ο αριθμος να εκφραζει τα καθετα αστερακια κ τα οριζοντια ελπιζω να καταλαβατετι παιζει...δεν θελω καμια τρελη λυση (printf,while,do while,switch)...αυτα ειναι μεχρι στιγμης τα λιγα που μαθαινω...thx all...

Δημοσ.

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;?

Δημοσ.

Ο κώδικας του GrMikeD είναι σχεδόν σωστός. Απλά η αλλαγή γραμμής πρέπει να γίνεται στο loop του i και όχι του j:

 

for (i=1;i<=k;i++)

{

for (j=1;j<=i;j++)

{

printf("* ");

}

printf("\n");

}

 

Το k το διαβάζεις στην αρχή με scanf. Και δεν χρειάζεται να δηλώσεις το '*' σαν char.

Δημοσ.

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");
}

Δημοσ.

Τα brackets τα έβαλα για να δείξω σε ποιο loop πρέπει να πάει η αλλαγή γραμμής :)

Έχεις δίκιο στο ότι δεν κατάλαβα πως έπρεπε να είναι στοιχισμένα στο κέντρο.

Ο κώδικάς σου είναι σωστός.

Δημοσ.

Μόνο για πλάκα, μια απάντηση με ένα μόνο 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 αστεράκια ;-)

Δημοσ.

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...

Δημοσ.

Ο αριθμός που θα δίνεις από το πληκτρολόγιο, στους κώδικες του GrMikeD πρέπει να καταχωρείται στη μεταβλητή k, δίνεις δλδ. scanf("%d",&k);

(Τη μεταβλητή m την πρόσθεσε στον τελευταίο κώδικα για να αφήνει κενά και να τυπώνει το δεντράκι προς το κέντρο).

Δημοσ.

ok gerontas alla kati akoma exw tin exeis paratirisei

Η ι-οστή γραμμή έχει Ν-ι κενά και 2*ι-1 αστεράκια...

ayto den to vlepw sto kwdika to grmiked alla stou alkisg...

Δημοσ.

PaniC_GR τον δικό μου κώδικα μην τον "μετράς", κανονικά αυτή η άσκηση χρειάζεται for μέσα σε for, αλλά εγώ έκανα "κολπάκι" για να αποφύγω το ένα for περνώντας μερικές ειδικές παραμέτρους στην printf. Γι' αυτό είπα "μόνο για πλάκα", δεν είναι αποδεκτή λύση για κάποιον που κάνει τα πρώτα βήματά του σε C.

 

O GrMikeD έβαλε printf("* "), δηλαδή να τυπώνει και κενά ανάμεσα στα αστεράκια, επειδή κι εσύ στο αρχικό δεντράκι που σχεδίασες είχες βάλει κενά.

Τελικά πώς το θες, με κενά ή όχι;

Δημοσ.

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...

:) ;)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...