cxmgp Δημοσ. 28 Οκτωβρίου 2010 Δημοσ. 28 Οκτωβρίου 2010 Καλησπερα, μπορειτε να με βοηθησετε στο ακολουθο προβληματακι, γιατι εχω κολλησει; εχω ενα μονοδιαστατο πινακα 10 θεσεων, πχ τον tbl[10]= 100 101 102 103 104 105 106 107 108 109 110 πως πρεπει να χρησιμοποιησω καποιο βρογχο ωστε να κανω ελεγχο αν: το πρωτο μειον το δευτερο στοιχειο ισουται με -1 το δεύτερο μειον το τριτο στοιχειο ισουται με -1 το τριτο μειον το τεταρτο στοιχειο ισουται με -1 κτλ κτλ ? Ευχαριστω πολυ εκ των προτερων!
Evgenios1 Δημοσ. 28 Οκτωβρίου 2010 Δημοσ. 28 Οκτωβρίου 2010 >int main(void) { int tb[10]={0}; int tblen = 10; for(int i = 0; i + 1 < tblen ; i++) { if( (tb[i]-tb[i+1]) == -1) printf("mpou"); else printf("tsa"); } return 0; } Το φερνεις στα μετρα σου, και εισαι οκ.
MeTaXaS4 Δημοσ. 28 Οκτωβρίου 2010 Δημοσ. 28 Οκτωβρίου 2010 for(int i=0;i<size of table/2;i++){ if (tbl-tbl[i+1]==-1) then ότι θες }
cxmgp Δημοσ. 28 Οκτωβρίου 2010 Μέλος Δημοσ. 28 Οκτωβρίου 2010 Ετσι ελεγχονται ολα τα: tbl[0]-tbl[1]=-1 tbl[1]-tbl[2]=-1 tbl[2]-tbl[3]=-1 tbl[3]-tbl[4]=-1 tbl[4]-tbl[5]=-1 ... tbl[9]-tbl[10]=-1 ??? η θελει διπλη for? ....δεν μου βγαινει σωστο αποτελεσμα
Haldol Δημοσ. 28 Οκτωβρίου 2010 Δημοσ. 28 Οκτωβρίου 2010 Και όταν φτάσεις στο δέκατο στοιχείο τι θα κάνεις; Θα το συγκρίνεις με το -ανύπαρκτο- ενδέκατο; Ή θα γυρίσεις στην αρχή να συγκρίνεις με το πρώτο; Ή θα συγκρίνεις μέχρι το ένατο στοιχείο και μετά τέρμα; ΥΓ: Στο θέμα σου λες για πίνακα 10 θέσεων ενώ έχεις παραθέσει 11 στοιχεία. Πρόσεξέ το.
virxen75 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 ο έλεγχος που ζητάς να γίνει με τα στοιχεία του πίνακα είναι (α)αυτόνομος για κάθε ζευγάρι στοιχείων του πίνακα ή (β)συνολικός για όλα τα ζευγάρια? δηλαδή α) αν tbl[0]-tbl[1]==-1 κάνε.... αν tbl[1]-tbl[2]==-1 κάνε.... ή β) αν (tbl[0]-tbl[1]==-1 και tbl[1]-tbl[2]==-1 και....και tbl[ν]-tbl[ν+1]==-1) κάνε
MeTaXaS4 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 και πότε θες να πάρεις αποτέλεσμα;; όταν ισχύει αυτή η ολόκληρη συνθήκη;; τότε if(tbl[0]-tbl[1]==-1) if (tbl[1]-tbl[2]==-1) if (tbl[2]-tbl[3]==-1) if (tbl[3]-tbl[4]==-1) if (tbl[4]-tbl[5]==-1) if (tbl[5]-tbl[6]==-1) if (tbl[6]-tbl[7]==-1) if (tbl[7]-tbl[8]==-1) if (tbl[8]-tbl[9]==-1) do.... ισούται με if(tbl[0]-tbl[1]==-1) if (tbl[1]-tbl[2]==-1 && tbl[2]-tbl[3]==-1 && tbl[3]-tbl[4]==-1 && tbl[4]-tbl[5]==-1 && tbl[5]-tbl[6]==-1 && tbl[6]-tbl[7]==-1 && tbl[7]-tbl[8]==-1 && tbl[8]-tbl[9]==-1) do....
cxmgp Δημοσ. 29 Οκτωβρίου 2010 Μέλος Δημοσ. 29 Οκτωβρίου 2010 Συμφωνώ ... απλά θελω να κανω αυτο τον ελεγχο για ενα πινακα με διαφορετικη διασταση
virxen75 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 τότε κάνε το έτσι > #include <stdio.h> int main(){ int tbl[]={100,101,102,103,104,105,106,107,108,109}; int tblen = 10; int isOk=1; for(int i = 0; i < tblen-1 ; i++){ printf("checking %d with %d\n",tbl[i],tbl[i+1]); if( (tbl[i]-tbl[i+1]) != -1){ isOk=0; break; } } if (isOk) printf("\ni sin8iki isxyei!!"); else printf("\ni sin8iki den isxyei!!"); getchar(); return 0; }
Owlman Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 Αυτή είναι κλασική άσκηση εισαγωγης στη C για πρωτοετής φοιτητές.. Στο νέτ θα βρείς κανα κατομύριο παραδείγματα.. Επίσης το πρώτο πράγμα που μαθαίνει κανείς όταν ανοίγει το κεφάλαιο arrays είναι ότι το 0 είναι το πρώτο στοιχείο σε sized arrays... μπιπ μπιπ..
MeTaXaS4 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 τότε κάνε το έτσι > #include <stdio.h> int main(){ int tbl[]={100,101,102,103,104,105,106,107,108,109}; int tblen = 10; int isOk=1; for(int i = 0; i < tblen-1 ; i++){ printf("checking %d with %d\n",tbl[i],tbl[i+1]); if( (tbl[i]-tbl[i+1]) != -1){ isOk=0; break; } } if (isOk) printf("\ni sin8iki isxyei!!"); else printf("\ni sin8iki den isxyei!!"); getchar(); return 0; } ναι αρκεί το isOk να είναι bool και δεν ξέρω αν στην C παίρνει 0,1 κ όχι μόνο true false..
Haldol Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 Δεν υπάρχει bool στη C. Αντ' αυτού χρησιμοποιείς int, όπου to 0 σημαίνει false και οποιαδήποτε άλλη τιμή true. Μόνο η C++ έχει booleans.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.