antonios88 Δημοσ. 16 Ιανουαρίου 2008 Share Δημοσ. 16 Ιανουαρίου 2008 παιδιά γειά σας! επειδη εγω και ο φιλος μου,εχουμε "συγκρουση απόψεων" σχετικα με μια ασκηση,μπορειτε να μου πειτε αν γινεται πιο "απλη"? ή πειτε εναν πιο "εξυπνο" τροπο! > Εκφώνηση: να αναπτυξετε μια συναρτηση η οποια να εμφανιζεται στην οθονη ενα τετραγωνο με την μορφη που φαινεται στο παρακατω σχημα.το μηκος της πλευρας του θα δινεται απο περιττο αριθμο. το μηκος της πλευρας του καθως και οι χαρακτηρες θα δινονται ως παραμετροι της συναρτησης. επισης,να γραψετε ενα ολοκληρωμενο προγραμμα το οποίο με τη βοηθεια αυτης της συναρτησης να εμφανιζει στην οθονη: * * * * * * * * * - - - - * * + * - - - * * + + * - - * * + + + * - * * + + + + * * * * * * * * * εδω ειναι αυτο που εφτιαξα εγω: > #include <stdio.h> #include <conio.h> void sunarthsh(int x,char q,char w,char e); int main(void) { int m; char a,b,c; while(0==m%2){ printf("dwse mhkos pleuras(peritto ari8mo)\t"); scanf("%d",&m); } printf("\ndwse 1o xarakthra\t"); a=getche(); printf("\ndwse 2o xarakthra\t"); b=getche(); printf("\ndwse 3o xarakthra\t"); c=getche(); printf("\n"); sunarthsh(m,a,b,c); return 0; } void sunarthsh(int x,char q,char w,char e){ int i,j; for(i=0;i<x;i++){ for(j=0;j<(x);j++){ if((i<j)&&(i!=0)&&(j!=(x-1))){ printf(" "); printf("%c",w); printf(" "); } if((i>j)&&(i!=(x-1))&&(j!=0)){ printf(" "); printf("%c",e); printf(" "); } if((i==j)||(i==0)||(i==(x-1)||(j==0)||(j==(x-1)))){ printf(" "); printf("%c",q); printf(" "); } } printf("\n"); } } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
parsifal Δημοσ. 16 Ιανουαρίου 2008 Share Δημοσ. 16 Ιανουαρίου 2008 Ο παρακάτω τρόπος δεν είναι πιο έξυπνος, αλλά πιο χαζός αφού σπάει την εκτύπωση της κάθε γραμμής i (πλην πρώτης και τελευταίας) σε πολλά βήματα. Παράγει όμως εξίσου σωστό αποτέλεσμα, χωρίς πολύπλοκες συνθήκες σε if : >void synarthsh(int x, char q, char w, char e) { int i, j, k; for(j = 0; j < x; j++) printf("%c ", q); printf("\n"); for(i = 0; i < x; i++) { printf("%c ", q); for(j = 0, k = i - 1; j < k; j++) printf("%c ", e); printf("%c ", q); for(j = 0, k = x - i - 2; j < k; j++) printf("%c ", w); printf("%c\n", q); } Επίσης, στη main δεν έχεις αρχικοποιήσεις τη μεταβλητή m... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 16 Ιανουαρίου 2008 Share Δημοσ. 16 Ιανουαρίου 2008 Μπορείς να χρησιμοποιήσεις το i*j*(i-j)*(n-1-i)*(n-1-j) Αν είναι 0, τότε μπαίνει αστεράκι (=> άκρη ή διαγώνιος). Αν είναι <0, τότε μπαίνει - (=> i-j<0). Αν είναι >0, τότε μπαίνει + (=> i-j>0). Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.