saavedra29 Δημοσ. 30 Σεπτεμβρίου 2009 Δημοσ. 30 Σεπτεμβρίου 2009 Παιδιά διαβάζω ένα βιβλίο για C και λύνοντας τις ασκήσεις έχω συναντήσει ένα πρόβλημα (σε 2-3) που δε μπορώ να το λύσω. Θέλω κατά τη διάρκεια εκτέλεσης μίας printf να παρεμβάλω μία άλλη. Συγγεκριμένα: πρέπει να γράψω ένα πρόγραμμα που να διαβάζει την πλευρά ενώς τετραγώνου και να το προβάλει με αστερίσκους.Θα πρέπει να λειτουργεί για πλευρές από 1 έως 20 αστερίσκους. Ιδού τί έγραψα: #include <stdio.h> > int main() { int num , side , c , c1; char star; c = 1; c1 = 1; printf ( "enter side (1-20)\n" ); scanf ( "%d" , &side ); while ( c <= side ) { while ( c1 < side ) { printf ( "*" ); c1++; } printf ( "*\n" ); c++; } return 0; } όταν εισάγω π.χ 6 αντί για τετράγωνο με 6 πλευρές μου βγάζει: >enter side (1-20) 6 ****** * * * * * Δε μπορώ να συμπεριλάβω τη 1η printf στην 2η. Πώς γίνεται αυτό ρε παιδιά; Αν λύσω αυτό το πρόβλημα θα με βοηθήσει και σε κάτι άλλες ασκήσεις που χρησιμοποιούν το ίδιο μοτίβο. ευχαριστώ!
KingDiamond Δημοσ. 30 Σεπτεμβρίου 2009 Δημοσ. 30 Σεπτεμβρίου 2009 Καλησπέρα. Κοίταξε αυτόν τον κώδικα. Δυστυχώς δεν είμαι στο σπίτι μου ώστε να ελέγξω εαν λύνει το πρόβλημά σου. > #include <stdio.h> main () { int c,d, side; printf ("Eisagete megethos pleyras: "); scanf ("%d", &side); for (c=1 ; c==side ; c++) { for (d=1 ; d=side ; d++) { printf ("*"); } } } Ελπίζω να βοήθησα.
snowPrincess Δημοσ. 30 Σεπτεμβρίου 2009 Δημοσ. 30 Σεπτεμβρίου 2009 Παιδιά διαβάζω ένα βιβλίο για C και λύνοντας τις ασκήσεις έχω συναντήσει ένα πρόβλημα (σε 2-3) που δε μπορώ να το λύσω.Θέλω κατά τη διάρκεια εκτέλεσης μίας printf να παρεμβάλω μία άλλη. Συγγεκριμένα: πρέπει να γράψω ένα πρόγραμμα που να διαβάζει την πλευρά ενώς τετραγώνου και να το προβάλει με αστερίσκους.Θα πρέπει να λειτουργεί για πλευρές από 1 έως 20 αστερίσκους. Ιδού τί έγραψα: #include <stdio.h> > int main() { int num , side , c , c1; char star; c = 1; c1 = 1; printf ( "enter side (1-20)\n" ); scanf ( "%d" , &side ); while ( c <= side ) { while ( c1 < side ) { printf ( "*" ); c1++; } printf ( "*\n" ); c++; } return 0; } όταν εισάγω π.χ 6 αντί για τετράγωνο με 6 πλευρές μου βγάζει: >enter side (1-20) 6 ****** * * * * * Δε μπορώ να συμπεριλάβω τη 1η printf στην 2η. Πώς γίνεται αυτό ρε παιδιά; Αν λύσω αυτό το πρόβλημα θα με βοηθήσει και σε κάτι άλλες ασκήσεις που χρησιμοποιούν το ίδιο μοτίβο. ευχαριστώ! Μήπως να αρχικοποιούσες το c1; good luck
Technology fan Δημοσ. 30 Σεπτεμβρίου 2009 Δημοσ. 30 Σεπτεμβρίου 2009 Αυτό που πρέπει να κάνεις είναι να κάνεις ίσο με 1 το c1 επειδή στο εμφωλευμένο while δεν μπαίνει μέσα στο loop μετά το πρώτη φορά γι αυτό και εκτυπώνει μόνο τη πρώτη σειρά... τι εννοώ.... >#include <stdio.h> int main() { int num , side , c , c1; char star; c = 1; c1 = 1; printf ( "enter side (1-20)\n" ); scanf ( "%d" , &side ); while ( c <= side ) { while ( c1 < side ) { printf ( "*" ); c1++; } printf ( "*\n" ); c++; [color="Red"][b] c1=1;[/b][/color] } return 0; }
saavedra29 Δημοσ. 30 Σεπτεμβρίου 2009 Μέλος Δημοσ. 30 Σεπτεμβρίου 2009 παιδιά τελικά με την προσθήκη του C1=1 όντως λύθηκε το πρόβλημα. Ήταν λάθος ο τρόπος σκέψης μου να θέλω να οπωσδήποτε να εισάγω τη μία printf στην άλλη.Την αρχικοποίηση ούτε που την είχα σκεφτεί! King diamond ο κώδικάς σου δεν έδωσε τίποτα, αν και πρόσθεσα >return 0; στο τέλος.Αλλά ούτως ή άλλως δεν έχω μάθει ακόμα τη "for" και το πρόγραμμα "έπρεπε" να γίνει με "while". Παιδιά σας ευχαριστώ όλους για τη βοήθεια!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.