RISOLTO funzione random

Stato
Discussione chiusa ad ulteriori risposte.

sare1234

Utente Attivo
262
3
Buongiorno ho un array di stringhe che contengono città come posso generare una città in questo array in modo random?
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
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,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
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,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
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

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

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,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
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

Utente Attivo
262
3
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
96
34
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 unito automaticamente:

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
Reazioni: _Achille

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
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
96
34
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

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
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 unito automaticamente:

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
96
34
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
Discord Ufficiale Entra ora!

Discussioni Simili