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

δωστε αλλον τροπο λυσης!!!


antonios88

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

παιδιά γειά σας!

επειδη εγω και ο φιλος μου,εχουμε "συγκρουση απόψεων"

σχετικα με μια ασκηση,μπορειτε να μου πειτε αν γινεται πιο "απλη"?

ή πειτε εναν πιο "εξυπνο" τροπο!

>
Εκφώνηση:
να αναπτυξετε μια συναρτηση η οποια να εμφανιζεται στην οθονη ενα τετραγωνο με την μορφη
που φαινεται στο παρακατω σχημα.το μηκος της πλευρας του θα δινεται απο περιττο αριθμο.
το μηκος της πλευρας του καθως και οι χαρακτηρες θα δινονται ως παραμετροι της συναρτησης.
επισης,να γραψετε ενα ολοκληρωμενο προγραμμα το οποίο
με τη βοηθεια αυτης της συναρτησης να εμφανιζει στην οθονη:

                             * * * * * * *
                             * * - - - - *
                             * + * - - - *  
                             * + + * - - *
                             * + + + * - *
                             * + + + + * *
                             * * * * * * *

 

 

εδω ειναι αυτο που εφτιαξα εγω:

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο παρακάτω τρόπος δεν είναι πιο έξυπνος, αλλά πιο χαζός αφού σπάει την εκτύπωση της κάθε γραμμής 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...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μπορείς να χρησιμοποιήσεις το

i*j*(i-j)*(n-1-i)*(n-1-j)

Αν είναι 0, τότε μπαίνει αστεράκι (=> άκρη ή διαγώνιος).

Αν είναι <0, τότε μπαίνει - (=> i-j<0).

Αν είναι >0, τότε μπαίνει + (=> i-j>0).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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