Aggeluska Δημοσ. 24 Νοεμβρίου 2013 Δημοσ. 24 Νοεμβρίου 2013 καλησπερα , ας πουμε πως εχω τα εξης arrays #define N 8 #define M 5 array_1[N]= { 100 , 101, 102, 103, 104, 105, 106, 107}; array_2[M]= { 0, 2 , 3 , 6, 7}; θελω βαση του array_2 να περνω τον αριθμο απο το array_1 και να το εμφανιζει στην οθονη. π.χ. . to 0 του array2 αντιστχει στο 100 , το 2 στο 102 , το 3 στο 103 κλπ . πως μπορω να το κανω αυτο ? ευχαριστω
migf1 Δημοσ. 24 Νοεμβρίου 2013 Δημοσ. 24 Νοεμβρίου 2013 Με τη προϋπόθεση πως τα μήκη των πινάκων είναι σωστά, καθώς και οι τιμές μέσα στον array_2[ ], τότε... for (int i=0; i < M; i++) printf( "%d \n", array_1[ array_2[i] ] ); EDIT: Για πιο safe... for (int i=0; i < M; i++) { if ( array_2[i] < N ) { // αν είσαι τελείως υποχονδριακός: if ( array_2[i] > -1 && array_2[i] < N ) printf( "%d \n", array_1[ array_2[i] ] ); } }
Aggeluska Δημοσ. 24 Νοεμβρίου 2013 Μέλος Δημοσ. 24 Νοεμβρίου 2013 το πρωτο που μου εβαλες δουλευει το δευτερο οχι , δεν μου κανει εμφανιση τιποτα. ευχαριστω πολυ για την βοηθεια ! ξεμπλοκαρα λιγο
migf1 Δημοσ. 24 Νοεμβρίου 2013 Δημοσ. 24 Νοεμβρίου 2013 Παρακαλώ! Σε μένα δουλεύει μια χαρά πάντως, τώρα που το δοκίμασα... #include <stdio.h> #define N 8 #define M 5 int main( void ) { int n[ N ] = {100, 101, 102, 103, 104, 105, 106, 107}; int m[ M ] = {0, 2 , 3 , 6, 7}; for (int i=0; i < M; i++) { if ( m[i] < N ) { // αν είσαι τελείως υποχονδριακός: if (m[i] > -1 && m[i] < N ) printf( "%d \n", n[ m[i] ] ); } } return 0; } 1
Aggeluska Δημοσ. 24 Νοεμβρίου 2013 Μέλος Δημοσ. 24 Νοεμβρίου 2013 βασικα αυτο που ακριβως θελω να κανω ειναι το εξης, να γραψω ενα function το οποιο μεσα σε αυτο να αλλαζει τα MSB των αριθμων στο array_1, και αφου γινει αυτο να παρει τους αριθμους που αλλακτικαν που το array_2 προσδιοριζει ποιους συγεκριμενα , και να τους αποθηκευσει στο array_2. Λογικα αφου "βγαλω" τους αριθμους απο το array_1 που θελω μετα πρεπει να τους κανω XOR με εναν αλλο αριθμο που να μου δινει παντα MSB 0, και μετα να του κανω assign στο array_2? σωστα; το εκανα ετσι for (i=0; i<M; i++){ //printf( "%d \n", dest_array[array_indices]); temp[Y] = dest_array[array_indices] & 0x0F; printf( "%d \n", temp[Y]);} αλλα αυτο λογικα το κανει μονο για οσα διαλεγει ε? ενω πρεπει να το κανει για ολα και μετα να το διαλεξει .... εχω μπερδευτει λιγακι ..... επεισης δουλευει οταν το εχω στο main , αλλα οταν το βαζω μεσα στο function void clear_MSBs(usigned char array_1, usigned char array_2) Δεν δουλευει . μου βγαζει το error με αυτη την κωδικη ονομασια C2371
bird Δημοσ. 24 Νοεμβρίου 2013 Δημοσ. 24 Νοεμβρίου 2013 Δεν ξέρω τι ακριβώς έχεις κάνει, αλλά αφού τα array_1 και array_2 είναι πίνακες, στη συνάρτηση πρέπει να τους περάσεις σαν void clear_MSBs(usigned char *array_1, usigned char *array_2)
Aggeluska Δημοσ. 25 Νοεμβρίου 2013 Μέλος Δημοσ. 25 Νοεμβρίου 2013 Δεν ξέρω τι ακριβώς έχεις κάνει, αλλά αφού τα array_1 και array_2 είναι πίνακες, στη συνάρτηση πρέπει να τους περάσεις σαν void clear_MSBs(usigned char *array_1, usigned char *array_2)ετσι το κανω με την διαφορα οτι τα arrays τα βαζω σαν unsigned char , γτ μου το ζηταει η ασκηση. και οταν καλω το function μεσα στο main μου βγαζει αυτο . error C2371: 'clear_MSBs' : redefinition; different basic types
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα