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

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

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

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

2 απαντήσεις σε αυτή την ερώτηση

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

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...