gon1332 Δημοσ. 30 Μαρτίου 2014 Δημοσ. 30 Μαρτίου 2014 Πες μου πόσες φορές θα μπει εδώ: if ( i+j<16 ) { printf("%.2f ",A[i+j]); }
lockgun Δημοσ. 30 Μαρτίου 2014 Μέλος Δημοσ. 30 Μαρτίου 2014 Θα έλεγα καμία.Αλλά δεν ειμαι και πολύ σίγουρος γιατί δεν έχω καταλάβει αν στην πράξη ελέγχου το i και το j έχουν τιμές από τις θέσεις 12 και 10 του πίνακα ή απλά έχουν τιμές 12 και 10 που 12+10=22 και 22>16 οπότε καμία.
gon1332 Δημοσ. 30 Μαρτίου 2014 Δημοσ. 30 Μαρτίου 2014 Θα έλεγα καμία.Αλλά δεν ειμαι και πολύ σίγουρος γιατί δεν έχω καταλάβει αν στην πράξη ελέγχου το i και το j έχουν τιμές από τις θέσεις 12 και 10 του πίνακα ή απλά έχουν τιμές 12 και 10 που 12+10=22 και 22>16 οπότε καμία. Καμιά. Τα i και j θα έχουν τις τιμές 12 και 10, οι οποίες θα αυξανονται. Με Α + A[j] > 16 θα έλεγχες τις τιμές του πίνακα στις αντίστοιχες θέσεις. Για πες μου για τον επόμενο έλεγχο...
lockgun Δημοσ. 30 Μαρτίου 2014 Μέλος Δημοσ. 30 Μαρτίου 2014 else if ( i-j>0) { printf("%.2f ",A[i-j]); } Εδώ ελέγχει αν το i - j ειναι μεγαλύτερο του μηδενός κάτι που ισχύει γιατί 12-10=2,13-11=2,14-12=2 κλπ. Η printf θα εμφανίσει τις θέσεις που παίρνει το i μείον τις θέσεις που παίρνει το j σε κάθε επανάληψη του βρόγχου?
gon1332 Δημοσ. 30 Μαρτίου 2014 Δημοσ. 30 Μαρτίου 2014 else if ( i-j>0) { printf("%.2f ",A[i-j]); } Εδώ ελέγχει αν το i - j ειναι μεγαλύτερο του μηδενός κάτι που ισχύει γιατί 12-10=2,13-11=2,14-12=2 κλπ. Η printf θα εμφανίσει τις θέσεις που παίρνει το i μείον τις θέσεις που παίρνει το j σε κάθε επανάληψη του βρόγχου? Στην ουσία εκτυπώνει το στοιχείο A[i-j], όταν το i είναι μεγαλύτερο του j (i - j > 0 => i > j). Για ρίξε μία ματία στον παρακάτω πίνακα τιμών των i και j καθ' όλη την εκτέλεση του loop. Tα πρασινισμένα είναι οι έλεγχοι που είναι αληθείς. i j ---- -------------- loop_1 : 12 -> "10 11" 12 13 loop_2 : 13 -> "10 11 12" 13 loop_3 : 14 -> "10 11 12 13" loop_4 : 15 -> "10 11 12 13" Είδες που δεν ισχύει σε όλες τις περιπτώσεις. Θα σε βοηθήσει πολύ να εκτελείς τα προγράμματά σου στο χαρτί όσο είναι αρχή.
lockgun Δημοσ. 30 Μαρτίου 2014 Μέλος Δημοσ. 30 Μαρτίου 2014 Δε το πολυκατάλαβα το σχήμα που έφτιαξες..Το j δηλαδή δεν αυξάνεται όπως το i σε κάθε επανάληψη? Τα αποτελέσματα που βγάζει στην δεύτερη γραμμή ειναι τα εξής: 6.50 4,50 8,50 6,50 4,50 10,50 8,50 6,50 4,50 12,50 10,50 8,50 6,50 Δεν καταλαβαίνω πως προκύπτουν αυτά... Οκ το κατάλαβα πλήρως!!Είχα μπερδευτεί γιατί είμαι στον υπολογιστή από χθες το πρωί!Τώρα είδα πως για κάθε επανάληψη του πρώτου for το j παίρνει πολλές τιμές!Ευχαριστω πάρα πολύ για τη βοήθεια!
gon1332 Δημοσ. 30 Μαρτίου 2014 Δημοσ. 30 Μαρτίου 2014 To σχήμα λέει ότι: Όταν το i είναι 12, το j θα πάρει τις τιμές 10, 11, 12 και 13. Θα γίνει σύγκριση μεταξύ του 12 και των τιμών του j. Η σύγκριση θα είναι αληθής μόνο για τις τιμές του j που είναι αυστηρά μικρότερες του i (=12), δηλαδή για j = 10, 11. Στο τέλος το i θα αυξηθεί κατά ένα: Όταν το i είναι 13, το j θα πάρει τις τιμές 10, 11, 12 και 13. Θα γίνει σύγκριση μεταξύ του 13 και των τιμών του j. Η σύγκριση θα είναι αληθής μόνο για τις τιμές του j που είναι αυστηρά μικρότερες του i (=13), δηλαδή για j = 10, 11, 12. Στο τέλος το i θα αυξηθεί κατά ένα: Όταν το i είναι 14, το j θα πάρει τις τιμές 10, 11, 12 και 13. Θα γίνει σύγκριση μεταξύ του 14 και των τιμών του j. Η σύγκριση θα είναι αληθής μόνο για τις τιμές του j που είναι αυστηρά μικρότερες του i (=14), δηλαδή για j = 10, 11, 12, 13. Στο τέλος το i θα αυξηθεί κατά ένα: Όταν το i είναι 15, το j θα πάρει τις τιμές 10, 11, 12 και 13. Θα γίνει σύγκριση μεταξύ του 15 και των τιμών του j. Η σύγκριση θα είναι αληθής μόνο για τις τιμές του j που είναι αυστηρά μικρότερες του i (=15), δηλαδή για j = 10, 11, 12, 13. Στο τέλος το i θα αυξηθεί κατά ένα: i >= 16 και η επανάληψη τερματίζει.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα