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

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

Δημοσ.

Ναι εχεις δικιο,χτες διαβασα λιγο στην αρχη που εγραψες οτι δουλευει τυχαια  κ εβαλα αλλες τιμες κ εντελως τυχαια  μου εβγαλε ολες τις τιμες σωστα,μετα απο δυο ωρες ξαναειδα το κωδικα μου κ σκεφτηκα γιατι δεν μου εμφανιζει το 0 στη τελευταια γραμμη κ το καταλαβα κατευθειαν τι χαζο ηταν αυτο που εγραψα,μετα καθισα κ διαβασα αυτο που εγγραψες.

 



Αν θέλεις μπορείς ακόμη και αυτά τα if να εξαλείψεις χρησιμοποιώντας ένα εξυπνακίστικο κόλπο:
	for(i = 0; i < size; i++)
	{
		...
		for(j = 0; j < size; j++)       
		{
			...
		}
		b[i][size-1-i] = (pos > neg) * 100 - (neg > pos) * 100;
	}

τι ωραιος,απλος εξυπνος τροπος δεν θα το σκεφτομουν με τιποτα,αν η συνθηκη ειναι αληθης γινεται 1 κ γινεται 100 ή -100

αν κ οι δυο ειναι ψευδης γινεται 0,χωρις if χωρις τιποτα περιττο.

  • Απαντ. 32
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Να κλείσουμε και την εκκρεμότητα με τα ιδια στοιχεια σε γραμμές ή στηλες. Το ξανακοιταξα λιγο σήμερα το πρωι , ενας φιλος μια σελιδα πριν έβαλε μια υλοποιηση με δυναμικούς πινακες τσέκαρε και αυτήν να παιρνεις ιδέες ασχετα με το τι σου ζητάει η άσκηση.

 
/* Vriskei poies grammes exoun idia stoixeia. */
#include <stdio.h>
#define ROWS 2
#define COLS 3
     
int main(void) {
     
int arr2D[ROWS][COLS]= { {5,1,2} , {6,0,6} };
int i,j;
     
for(i=0; i<ROWS; i++){
    for(j=0; j<COLS; j++){
            if(arr2D[i][0] == arr2D[i][j] && j!=0 ){
                printf("Row %d has same values , %d" , i , arr2D[i][j] );
                    break;
            }
        }
}
     
return 0;
}

H λογική στην παραπάνω περιπτωση ειναι οτι σε κάθε γραμμή θα κινεισαι κάθε φορά στις στήλες δηλαδη οριζόντια.Τωρα για να βρεις τις ίδιες στήλες θα σκεφτεις αντιστροφα σε κάθε στήλη θα κινεισαι κάθε φορά στις γραμμές δηλαδη κάθετα.Κάθε φορά το σημειο αναφοράς ειναι το 1ο στοιχείο της γραμμής ή της στήλης αυτο θα συγκρινεται με όλα τα υπόλοιπα για να δουμε αν υπάρχουν ιδιες εμφανίσεις.

 
/* Vriskei poies sthles exoun idia stoixeia. */
#include <stdio.h>
#define ROWS 2
#define COLS 3
     
int main(void) {
     
int arr2D[ROWS][COLS]= { {5,1,2} , {5,0,2} };
int i,j;
     
for(j=0; j<COLS; j++){
    for(i=0; i<ROWS; i++){
            if(arr2D[0][j] == arr2D[i][j] && i!=0 ){
                printf("Col %d has same values , %d" , j , arr2D[i][j] );
                    break;
            }
        }
}
return 0;
}
 

Aπο οσο το τσέκαρα δουλεύει σωστά.

 

ΥΓ Οπως σου ειπε και ο ημίθεος αμα έχεις στο μυαλο σου τι ακριβως θες να κάνεις μετα δεν θα σε δυσκολέψει να το μετατρέψεις στο συντακτικό της γλώσσας.

Δημοσ.

Νομίζω ότι το να το μετατρέψεις σε στατική διαχείριση είναι παιχνιδάκι. Απλώς βάλε ένα μεγάλο άνω όριο στους πίνακές σου, βγάζοντας τα malloc, και μην αφήνεις κατά το input να το ξεπερνάει. Περισσότερο το έγραψα για δεις το τριπλό loop της solve που κάνει τις συγκρίσεις.

 

Ωραια προσπάθεια! Νομιζω όμως ότι σου ξέφυγε ένα ! στο τελευταιο διπλο loop

 

http://ideone.com/DrCRln

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...