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

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

Δημοσ.

καλησπερα , ας πουμε πως εχω  τα εξης 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 κλπ .

 

πως μπορω να το κανω αυτο ?

 

ευχαριστω

 

 

 

Δημοσ.

Με τη προϋπόθεση πως τα μήκη των πινάκων είναι σωστά, καθώς και οι τιμές μέσα στον 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] ] );
    }
}
Δημοσ.

το πρωτο που μου εβαλες δουλευει το δευτερο οχι , δεν μου κανει εμφανιση τιποτα. ευχαριστω πολυ για την βοηθεια ! ξεμπλοκαρα λιγο :D

Δημοσ.

Παρακαλώ!

 

Σε μένα δουλεύει μια χαρά πάντως, τώρα που το δοκίμασα...

#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;
}
  • Like 1
Δημοσ.

βασικα αυτο που ακριβως θελω να κανω ειναι το εξης, να γραψω ενα 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

Δημοσ.

Δεν ξέρω τι ακριβώς έχεις κάνει, αλλά αφού τα array_1 και array_2 είναι πίνακες, στη συνάρτηση πρέπει να τους περάσεις σαν void clear_MSBs(usigned char *array_1, usigned char *array_2)

Δημοσ.

Δεν ξέρω τι ακριβώς έχεις κάνει, αλλά αφού τα 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

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

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

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

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

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

Σύνδεση

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

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