PDA

Visualizza la versione completa : [C] Concatenare due array di tipi differenti


marta90
19-01-2010, 10:15
Ciao volevo sapere come si fa a collegare 2 array, senza che l'indice riparta da 0 ma continui a contare...
ho questi 2 array
char nomi [][24]={"sara","luca","sergio","elena","marco"};
float numeri[]={ 1,2,3,4,5,6,10,12,15,18,19,20,7,9,16};
è necessario che continui a contare quindi che a i =5(che sarebbe l'indice che scorre il vettore) corrisponda 1 del vettore numeri e cosi via...come si fa???
non so proprio come fare...
perchè l'indice è un numero generato casualmente da 1 a 20 e ciascun numero puo essere preso una sola volta...quindi vorrei fare se i=5 la stampa k mi scrive il numero 1 del vettore numeri, i=6 secondo ect...se i=0 il primo nome, se i=1 il secondo e cosi via....
GRAZIE IN ANTICIPOOOO

oregon
19-01-2010, 10:27
Benvenuta ... il quesito che hai posto non è molto chiaro ... magari dovresti spiegarlo un po' meglio ... considera che tu sai il tipo di problema che stai affrontando, chi ti legge no.

P.S. Leggi il regolamento prima di postare ... il titolo del thread non va bene ...

MItaly
19-01-2010, 10:45
Se ho ben capito, devi usare applicare l'operatore modulo al contatore quando accedi al primo array.

marta90
19-01-2010, 11:00
srand(time(NULL));
/*Inizializzo l'array per la ricerca casuale*/
for (j=0; j<20; j++)
premi[j]=j;//inizia da 0//

/*Cerco elemento casuale tra lim valori di premi */
lim=20;//variabile a cui viene assegnato il valore 20, è utile perchè questa variabile decrementa a ogni ciclo//
for(i=0;i<20;i++)
{
k=rand()%lim;//scelgo il numero del premio in maniera casuale//
estratto=premi[k];
printf("\tIl numero del premio e' %d \n", premi[k]);
{

if (estratto<20*1/4)

printf("stampiamo il nome: %s, nomi[estratto]);

else

printf("stampiamo il numero: %.2f, pacco numero %d\n", numeri[estratto]);

}

premi[k]=premi[lim-1];//sposto ultimo elemento al posto di quello appena estratto //
lim--; //ignoro ultimo elemento per la prossima estrazione //
}
}

non so se ora è pi chiaro quello che devo fare!!!cosi non funziona...perchè se i=5 nn mi stampa il primo numero ma il numero che si trova nella quinta posizione dell'array numeri...

MItaly
19-01-2010, 11:12
Mancano tutte le dichiarazioni delle variabili... senza non ti si può dire molto.
P.S.: usa il tag
... quando inserisci del codice in un post, altrimenti perde l'indentazione e diventa illeggibile.

marta90
19-01-2010, 11:20
le dichiarazioni sono queste


char nomi [][24]={"sara","luca","sergio","elena","marco"};
float numeri[]={ 1,2,3,4,5,6,10,12,15,18,19,20,7,9,16};
int lim,estratto;
int premi[20];//memmorizza i numeri estratti
int i,j;

non trovo il tag code...

LeleFT
19-01-2010, 13:30
Ti è stato chiesto di leggere il regolamento interno. Lo hai fatto? No, perchè al punto 6 c'è indicato esattamente come inserire il tag CODE (che tu non trovi) quando si posta del codice.

Ti fornisco il link diretto (seconda discussione in rilievo): http://forum.html.it/forum/showthread.php?s=&threadid=973887

Leggilo per bene, per il futuro.

Qui sistemo io.


Ciao. :ciauz:

Loading