programmer Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 παιδια Καλησπερα προβλημα στην if (Β[ι]>Α[ι] )δεν μου επιστρεφει 0 γιατι? #include <stdlib.h> #include <stdio.h> #include <string.h> int Mystrlen(int A[],int B[]) { int i; for(i=0;i<=5;i++) { if(A==B) { return 1; } else if(B>A) { return 0; } } } int main() { int A[5]={10,20,30,40,50}; int B[6]={10,20,30,40,50,60}; printf("%d\n",Mystrlen(A,); return 0; }
jimisvog Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Γιατι το Β[5] υπάρχει ενώ το Α[5] οχι.. Αν παρατηρησεις Α -> 0 εως 4 και Β -> 0 εως 5 κελια.. Σε κάθε προηγουμενη συγκριση τα περιεχομενα ειναι ισα.
geomagas Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Διότι κάνει return μόλις συγκρίνει το πρώτο στοιχείο (δεν συνεχίζεται το loop). Με άλλα λόγια συγκρίνει το A[0] με το B[0] (που είναι ίσα) και αμέσως επιστρέφει 1. 2
gon1332 Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Θέλεις να τους συγκρίνεις ως προς το πλήθος στοιχείων ή ως προς το περιεχόμενό τους; Γιατι το Β[5] υπάρχει ενώ το Α[5] οχι.. Αν παρατηρησεις Α -> 0 εως 4 και Β -> 0 εως 5 κελια.. Σε κάθε προηγουμενη συγκριση τα περιεχομενα ειναι ισα. Δε φτάνει ποτέ εκεί. Σταματάει στο πρώτο στοιχείο. 1
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 εαν αλλαξω τιμη στο στοιχειο του πινακα το πρωτο και το κανω μεγαλυτερο παλι επιστρεφη 1 Θέλεις να τους συγκρίνεις ως προς το πλήθος στοιχείων ή ως προς το περιεχόμενό τους; Δε φτάνει ποτέ εκεί. Σταματάει στο πρώτο στοιχείο. πρωτα με περιεχομενα και μετα ως προς το πληθος παιδια το καταφερα το λαθος μου ηταν στον for το ειχα κανει ι=1 οχι ι=0
gon1332 Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 εαν αλλαξω τιμη στο στοιχειο του πινακα το πρωτο και το κανω μεγαλυτερο παλι επιστρεφη 1 πρωτα με περιεχομενα και μετα ως προς το πληθος παιδια το καταφερα το λαθος μου ηταν στον for το ειχα κανει ι=1 οχι ι=0 Μπορείς να μας δείξεις τον κώδικα που "δουλεύει";
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 για να βρω το πληθος θα βαλω τιμες σε καθε πινακα ? Μπορείς να μας δείξεις τον κώδικα που "δουλεύει"; int Mystrlen(int A[],int B[]) { int i; for(i=0;i<B;i++) { if(A==B) { return 1; } else if(B>A) { return 0; } } } int main () { int A[]={1,2,3,4,5}; int B[]={1,2,3,4,8,}; printf("%d\n",Mystrlen(A, ); εαν αλλαξω το πρωτο στοιχειο του πινακα επιστρεφει 0 ως προς τα περιεχομενα τους return 0; }
Technology fan Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 σίγουρα το εννοείς το for(i=0;i<B[i];i++) ???
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 Ναι φυσικα! τωρα για το πληθος και των δυο πινακων λογικα θα καταχωρησω τιμες και για τους 2 πινακες ετσι?
Technology fan Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Ναι φυσικα! τωρα για το πληθος και των δυο πινακων λογικα θα καταχωρησω τιμες και για τους 2 πινακες ετσι? Πίστεψε με δεν το εννοείς, σκέψου το παρακάτω int A[]={2,5,10,11}; int B[]={1,2,7,9};
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 εννοεις για το περιεχομενο τους? αν το τρεξω το προγραμμα π.χ αν ο Α ειναι μεγαλυτερος απο τον Β τοτε επεστρεψε μου την τιμη 1 ως προς τα περιεχομενα εννοω ετσι?
Technology fan Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Τα έχεις λίγο μπερδεμένα στο μυαλό σου και καλό είναι να ξεχωρίζεις 1) τι θέλεις να κάνεις? 2) πως γίνεται αυτό που θέλεις να κάνεις με κάποιο αλγόριθμο? 3) πως θα υλοποιήσεις τον αλγόριθμο σε μια γλώσσα προγραμματισμού 4) Τι κάνει κάθε εντολή που χρησιμοποιείς Και σε ρωτώ: σίγουρα θέλεις το for(i=0;i<B[i];i++) και μου λες ναι, οπότε σε ρωτάω διαφορετικά τώρα: Ξέρεις τι σημαίνει μόνο η παραπάνω εντολή? Αν μπορείς περιέγραψε μου με λογια τι σημαίνει... 1
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 for(i=0;i<B;i++) πρωτα ελεγχη αν η πρωτη θεσει του πινακα A ειναι ισοι με την πρωτη θεση του πινακα B εαν ειναι αυξησε μου την θεση του πινακα Α κατα 1 σωστα και παει λεγοντας ετσι?
gon1332 Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 for(i=0;i<B;i++) πρωτα ελεγχη αν η πρωτη θεσει του πινακα A ειναι ισοι με την πρωτη θεση του πινακα B αυξησε μου την θεση κατα 1 σωστα και παει λεγοντας ετσι? Περιέγραψε μόνο το for. Δεν έχει κανένα πίνακα A στην γραμμή αυτή. Πως θα το διάβαζες;
programmer Δημοσ. 26 Σεπτεμβρίου 2014 Μέλος Δημοσ. 26 Σεπτεμβρίου 2014 Περιέγραψε μόνο το for. Δεν έχει κανένα πίνακα A στην γραμμή αυτή. Πως θα το διάβαζες; κανε το i =0 ειναι το i μεγαλυτερο απο τον πινακα Β? αυξησε το i κατα 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα