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

C arrays


Aggeluska

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

καλησπερα , ας πουμε πως εχω  τα εξης 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] ] );
    }
}
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παρακαλώ!

 

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

#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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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