I@n15 Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Παιδια καλημερα.Θα θελα να ρωτησω το εξης. 1)Δινω στοιχει σ εναν πινακα 2)Κανω ταξινομηση απο το μεγαλυτερο στοιχειο προς το μικροτερο 3)Βρισκω το μεγαλυτερο στοιχειο 4)Βρισκω το 2ο μεγαλυτερο στοιχειο του πινακα. Τι γινεται ομως στην περιπτωση που π.χ Α[0] = 100 Α[1] = 100 εχουμε δηλαδη 2 στοιχεια τα ιδια?δηλαδη 2 max,πως θα κανω τον ελεγχο γι αυτο και πως θα τα εμφανισω? >#include <stdio.h> int main() { int A[6]; int i,j,temp; for(i = 0; i <= 5; i++) { printf("Dose to %io stoixeio tou pinaka:\n",i+1); scanf("%i",&A[i]); } for(i = 0; i <= 5; i++) { for(j = 0; j <= 5; j++) { if(A[i] > A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } } } int MAX = A[0]; int MAX2 = A[1]; for(i = 0; i <= 5; i++) { if(A[i] > MAX) { MAX = A[i]; } if(A[i] > MAX2 && A[i] != MAX) { MAX2 = A[i]; } } printf("to max einai to %i\n\n",MAX); printf("to max2 einai to %i\n",MAX2); }
ΠάρηςΓ Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Αυτο που εκανες δε δουλεύει; ---------- Το μήνυμα προστέθηκε στις 13:00 ---------- int MAX = A[0]; int MAX2 = A[0]; while(MAX2==MAX && i < A.length) { i++; MAX2=A; } Εφοσον ειναι ταξινομημένος ο πιναξ σου ---------- Το μήνυμα προστέθηκε στις 13:01 ---------- Α κ δε μπορω να βγαλω νοημα απο το τροπο σου
bokarinho Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Παιδια καλημερα.Θα θελα να ρωτησω το εξης.1)Δινω στοιχει σ εναν πινακα 2)Κανω ταξινομηση απο το μεγαλυτερο στοιχειο προς το μικροτερο 3)Βρισκω το μεγαλυτερο στοιχειο 4)Βρισκω το 2ο μεγαλυτερο στοιχειο του πινακα. Τι γινεται ομως στην περιπτωση που π.χ Α[0] = 100 Α[1] = 100 εχουμε δηλαδη 2 στοιχεια τα ιδια?δηλαδη 2 max,πως θα κανω τον ελεγχο γι αυτο και πως θα τα εμφανισω? >#include <stdio.h> int main() { int A[6]; int i,j,temp; for(i = 0; i <= 5; i++) { printf("Dose to %io stoixeio tou pinaka:\n",i+1); scanf("%i",&A[i]); } for(i = 0; i <= 5; i++) { for(j = 0; j <= 5; j++) { if(A[i] > A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } } } int MAX = A[0]; int MAX2 = A[1]; for(i = 0; i <= 5; i++) { if(A[i] > MAX) { MAX = A[i]; } if(A[i] > MAX2 && A[i] != MAX) { MAX2 = A[i]; } } for(int j =0; j < ArraySize-1; j++) { if(A[j] != A[j+1]) { printf("to max einai to %d\n\n",A[j]); break; } else { for(k = j; k >=0; k--) printf("Max elements are:%d ", A[k]); } } //printf("to max2 einai to %i\n",MAX2); } To έγραψα στα γρήγορα ούτε καν το έχω check. Όρισε τις μεταβλητές στα loop.
ΠάρηςΓ Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 >#include <stdio.h> int main() { int A[6]; int i,j,temp; for(i = 0; i <= 5; i++) { printf("Dose to %io stoixeio tou pinaka:\n",i+1); scanf("%i",&A[i]); } for(i = 0; i <= 5; i++) { for(j = 0; j <= 5; j++) { if(A[i] > A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } } } int MAX = A[0]; int MAX2 = A[0]; int i=0; while(MAX2==MAX && i < A.length) { i++; MAX2=A[i]; } printf("to max einai to %i\n\n",MAX); printf("to max2 einai to %i\n",MAX2); }
I@n15 Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 Α κ δε μπορω να βγαλω νοημα απο το τροπο σου Φιλε μου Παρης το καταλαβαινω,δεν ειμαι σε καποια σχολη,προσπαθω απο μονος μου να μαθω με αποτελεσμα καμια φορα να γραφω και αρλουμπες,να με συμπαθας ε? :-) Σας ευχαριστω πολυ και τους 2,θα κατσω τωρα να το κοιταξω λιγο
ΠάρηςΓ Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Απλά στο τελος το εγραψα μαζεμένο! Καλά κάνεις απλά στο είπα για να μου πεις το σκεπτικό σου . Πρέπει να προσπαθείς να τα κανεις οσο πιο απλα γινονται. Δηλαδή να σκεφτεσε την πιο απλή λύση που μπορεις να βρεις αλλιως χανεται η ουσία! Πχ η λυση που σου πρότεινα ειναι Οσο το μαξ2 ειναι ισο με το μαξ (δηλαδη το μεγαλυτερο στοιχείο) και δεν εχουμε φτασει στο τελος του πινακα τοτε το μαξ2 να παρει την τιμη του επομενου στοιχείου στη σειρά.
I@n15 Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 Απλά στο τελος το εγραψα μαζεμένο!Καλά κάνεις απλά στο είπα για να μου πεις το σκεπτικό σου . Ναι και σ ευχαριστω πολυ γι αυτο.Λοιπον το σκεπτικο μου ειναι οτι θα θελα να βρω σ εναν πινακα το μεγαλυτερο του στοιχειο αλλα επειδη μπορει το πρωτο στοιχειο να ειναι το ιδιο στις 3 πρωτες θεσεις να μπορουσα να το εμφανισω αυτο,π.χ τα μεγαλυτερα στοιχεια ειναι τα 3 πρωτα.Κατι τετοιο
aghahowa Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 scanf("%d",&A); ---------------- bubble sort for(int x=0; x<n; x++) { for(int y=0; y<n-1; y++) { if(array[y]>array[y+1]) { int temp = array[y+1]; array[y+1] = array[y]; array[y] = temp; } } }
ΠάρηςΓ Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Δοκιμασες τις λυσεις εδω; Μπορεις να κανεις κ συνάρτηση για Ν μεγαλύτερα στοιχεία !
I@n15 Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 Φιλε Παρης αυγχωρα με αλλα θα σε πρηξω λιγο ακομα για τελευταια φορα φιλε μου μπας και το πιασω,δες λιγο τι δεν καταλαβαινω Ας πουμε ο πινακας μετα την ταξινομηση Α[0] = 5 Α[1] = 5 Α[2] = 4 Α[3] = 3 Α[4] = 2 Α[5] = 1 Ας υπθεσουμε οτι εγω θελω να βρω το δευτερο μεγαλυτερο στοιχειο το οποιο ειναι το 4,δεν μου βγαινει αυτο το πραγμα
ΠάρηςΓ Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Δοκιμασες το κωδικα οπως στον εστειλα; Που εχεις κολησει ακριβως δεν καταλαβα.
aghahowa Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 μαχ2=Α[2] ι=0 όσο ι<Ν-1 και Α[ι]=Α[ι+1] μαχ2=Α[ι+1];
I@n15 Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 Οτι δεν μου βγαζει σωστο το αποτελεσμα,θα το ξανατσεκαρω να δω ισως εκανα καποιο λαθος εγω
virxen75 Δημοσ. 1 Ιουνίου 2009 Δημοσ. 1 Ιουνίου 2009 o κώδικας του ΠάρηςΓ ελαφρώς αλλαγμένος > #include <stdio.h> #include <stdlib.h> #define N 6 int main() { int A[N]; int i,j,temp; for(i = 0; i < N; i++) { printf("Dose to %do stoixeio tou pinaka:\n",i+1); scanf("\n%d",&A[i]); } for(i = 0; i <N; i++) { for(j = 0; j <N; j++) { if(A[i] > A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } } } int MAX = A[0]; int MAX2 = A[0]; i=0; while(MAX2==MAX && i < N-1){ i++; MAX2=A[i]; } printf("to max einai to %d\n\n",MAX); printf("to max2 einai to %d\n",MAX2); system("pause"); } το τέσταρα με τις αλλαγές και δουλεύει οκ
I@n15 Δημοσ. 1 Ιουνίου 2009 Μέλος Δημοσ. 1 Ιουνίου 2009 να σαι καλα αγορι μου,κ εσυ και ολα τα παιδια που βοηθανε
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.