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

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

Δημοσ.

Θα έλεγα καμία.Αλλά δεν ειμαι και πολύ σίγουρος γιατί δεν έχω καταλάβει αν στην πράξη ελέγχου το i και το j έχουν τιμές από τις θέσεις 12 και 10 του πίνακα ή απλά έχουν τιμές 12 και 10 που 12+10=22 και 22>16 οπότε καμία.

Δημοσ.

Θα έλεγα καμία.Αλλά δεν ειμαι και πολύ σίγουρος γιατί δεν έχω καταλάβει αν στην πράξη ελέγχου το i και το j έχουν τιμές από τις θέσεις 12 και 10 του πίνακα ή απλά έχουν τιμές 12 και 10 που 12+10=22 και 22>16 οπότε καμία.

 

Καμιά. Τα i και j θα έχουν τις τιμές 12 και 10, οι οποίες θα αυξανονται. Με Α + A[j] > 16 θα έλεγχες τις τιμές του πίνακα στις αντίστοιχες θέσεις.

Για πες μου για τον επόμενο έλεγχο...

Δημοσ.

else if ( i-j>0) {  printf("%.2f ",A[i-j]); }

 

Εδώ ελέγχει αν το i - j ειναι μεγαλύτερο του μηδενός κάτι που ισχύει γιατί 12-10=2,13-11=2,14-12=2 κλπ.

Η printf θα εμφανίσει τις θέσεις που παίρνει το i μείον τις θέσεις που παίρνει το j σε κάθε επανάληψη του βρόγχου?

Δημοσ.

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"

Είδες που δεν ισχύει σε όλες τις περιπτώσεις. Θα σε βοηθήσει πολύ να εκτελείς τα προγράμματά σου στο χαρτί όσο είναι αρχή.

Δημοσ.

Δε το πολυκατάλαβα το σχήμα που έφτιαξες..Το 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 παίρνει πολλές τιμές!Ευχαριστω πάρα πολύ για τη βοήθεια!

Δημοσ.

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 και η επανάληψη τερματίζει.

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

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

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

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

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

Σύνδεση

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

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