RISOLTO funzione random

Stato
Discussione chiusa ad ulteriori risposte.

sare1234

Nuovo Utente
125
1
Buongiorno ho un array di stringhe che contengono città come posso generare una città in questo array in modo random?
 

rctimelines

Utente Èlite
5,121
1,984
CPU
Ryzen 7 2700X | i5-6600k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Internet
fibra 1000
Sistema Operativo
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Genera un numero casuale entro la lunghezza dell' Array e usalo come indice

Inviato dal mio Nexus 6P utilizzando Tapatalk
 

rctimelines

Utente Èlite
5,121
1,984
CPU
Ryzen 7 2700X | i5-6600k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Internet
fibra 1000
Sistema Operativo
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
No. Non ho detto così..

Ma piuttosto qualcosa tipo questo:

Array_citta[ random (0, lenghth(Array_citta) ]

Inviato dal mio Nexus 6P utilizzando Tapatalk
 

rctimelines

Utente Èlite
5,121
1,984
CPU
Ryzen 7 2700X | i5-6600k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Internet
fibra 1000
Sistema Operativo
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
A cosa serve il for??? Non credo nemmeno che la dichiarazione/definizione dell"'array che hai fatto, sia corretta.

Inviato dal mio Nexus 6P utilizzando Tapatalk
 

sare1234

Nuovo Utente
125
1
senza il for?
io ho una matrice chiamata nomiCitta quindi metto nel main direttamente:
nomiCitta[random (0, lenghth(nomiCitta)]
Post automaticamente unito:

io ho una matrice chiamata nomiCitta quindi metto nel main direttamente:
nomiCitta[random (0, lenghth(nomiCitta)]
ho definito cosi la matrice:
char** nomiCitta = (char**) calloc(9, sizeof(char*));


for(int i=0; i<9; i++) nomiCitta = (char*) calloc(256, sizeof(char));


strcpy(nomiCitta[0], "Napoli");


strcpy(nomiCitta[1], "Roma");


strcpy(nomiCitta[2], "Milano");


strcpy(nomiCitta[3], "Torino");


strcpy(nomiCitta[4], "Salerno");


strcpy(nomiCitta[5], "Praga");


strcpy(nomiCitta[6], "Albuquerque");


strcpy(nomiCitta[7], "Londra");


strcpy(nomiCitta[8], "San Pietroburgo");
 

rctimelines

Utente Èlite
5,121
1,984
CPU
Ryzen 7 2700X | i5-6600k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Internet
fibra 1000
Sistema Operativo
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
random e lenghth non sono funzioni C, ho scritto una specie di pseudo-codice per farti capire. Vai a cercarti cosa sono, in che libreria sono contenute e te le studi un po' così impari a cosa servono

Inviato dal mio Nexus 6P utilizzando Tapatalk
 

sare1234

Nuovo Utente
125
1
Ignorati richiami dello Staff
random e lenghth non sono funzioni C, ho scritto una specie di pseudo-codice per farti capire. Vai a cercarti cosa sono, in che libreria sono contenute e te le studi un po' così impari a cosa servono

Inviato dal mio Nexus 6P utilizzando Tapatalk
ah ok
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>


int main() {
    char** nomiCitta = (char**) calloc(9, sizeof(char*));
     for(int i=0; i<9; i++) nomiCitta[i] = (char*) calloc(256, sizeof(char));
     strcpy(nomiCitta[0], "Napoli");
     strcpy(nomiCitta[1], "Roma");
     strcpy(nomiCitta[2], "Milano");
     strcpy(nomiCitta[3], "Torino");
     strcpy(nomiCitta[4], "Salerno");
     strcpy(nomiCitta[5], "Praga");
     strcpy(nomiCitta[6], "Albuquerque");
     strcpy(nomiCitta[7], "Londra");
     strcpy(nomiCitta[8], "San Pietroburgo");

    nomiCitta = rand();
    
    nomiCitta = 9 +rand()% 9;
    
    return 0;
 
}
 
Ultima modifica:

theprogrammer.99

Nuovo Utente
68
20
Vedo che hai trovato la funzione rand() ma evidentemente neanche questa ti è chiara. La rand() restituisce un valore intero compreso tra 0 e RAND_MAX. Per limitare il range si usa l'operatore % ma tu

a) nella linea

nomiCitta = rand();

hai usato nomiCitta che non è un intero, anzi, è il doppio puntatore alla tua matrice (ma che c'entra??); e questa linea non ha alcun senso;

b) nella linea

nomiCitta = 9 +rand()% 9;

sempre la nomiCitta al posto di un intero e adesso il valore non è compreso tra 0 e 8 ma tra 9 e 17; e perchè??

c) non hai usato la srand per inizializzare il generatore di numeri casuali.

Scusa sara, ma come fai a scrivere codice (banale) che non ha alcun senso e lavorare con grafi e liste di adiacenza?
Non sai cosa sia una strlen, non sai come usare un valore intero restituito da una funzione come la rand ...

Non capisco ...
Post automaticamente unito:

Comunque ... vedo che nel frattempo hai risolto in


Questo crossposting/multiposting è una rovina ... :-(

Ho perso un po' di tempo a risponderti ...
 
Ultima modifica:
  • Mi piace
Reactions: _Achille

rctimelines

Utente Èlite
5,121
1,984
CPU
Ryzen 7 2700X | i5-6600k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Internet
fibra 1000
Sistema Operativo
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
@sare1234 sei proprio un tipo curioso.. ho l'impressione che tu faccia un sacco di fatica per non imparare una c...!
To suggerisco di mantenere la calma e studiare con un po' di attenzione i suggerimenti che ti vengono dati, senza postare codice a caso nella speranza che ti venga data una soluzione funzionante (che evidentemente poi non ti sforzi di capire). In tal caso, evidentemente, la soluzione te l'hanno fornita in un altro forum.. complimenti!

Inviato dal mio Nexus 6P utilizzando Tapatalk
 

theprogrammer.99

Nuovo Utente
68
20
Capisco ma non è certo vietato chiedere aiuto su altri forum.
Mah ... veramente avevo letto dal regolamento


"Al fine di garantire una tranquilla permanenza agli utenti è necessario che tutti seguano le norme comportamentali indicate nel seguente paragrafo:
...
2.16 E’ vietato il multiposting/crossposting."


ma sicuramente mi sbaglierò ... sei tu il moderatore...
 

DispatchCode

Utente Attivo
692
427
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Internet
30Mbps/3Mbps con Eolo
Sistema Operativo
Windows 10 64bit
Mah ... veramente avevo letto dal regolamento


"Al fine di garantire una tranquilla permanenza agli utenti è necessario che tutti seguano le norme comportamentali indicate nel seguente paragrafo:
...
2.16 E’ vietato il multiposting/crossposting."


ma sicuramente mi sbaglierò ... sei tu il moderatore...
Mi permetto di risponderti io, poi verrò corretto da @Mursey se mi sbaglio.
Il punto 2.16 si riferisce al crossposting/multiposting sullo stesso forum (eg. aprire topic in diverse sezioni dello stesso forum), e non su forum diversi.
Post automaticamente unito:

Di solito non lo si fa per netiquette, e per "rispetto" verso chi ti sta rispondendo su un determinato forum.
Chiaro che quando si è interessati solo all'help desk non ci si pone nemmeno questo dilemma...
 

theprogrammer.99

Nuovo Utente
68
20
Grazie della precisazione, io chiedevo perché quella regola è - almeno - ambigua dato che in altri forum viene intesa con divieto di crossposting tra forum nello stesso momento. Ed è ambiguo perché il termine multipost è

"To post several copies of (a message) to different newsgroups. "

almeno nel mondo dei newsgroup e da questo ampliato ai forum


E l'utente sara ne sa qualcosa perché per questo motivo le hanno chiuso dei thread in altri forum in cui questa regola vige.

In ogni caso, è un comportamento poco rispettoso di chi risponde.

OT chiuso, scusate
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot del momento