Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-09-2014, 21:31   #1
Squiddi
Bannato
 
Iscritto dal: May 2013
Messaggi: 18
[C] Aiuto sulle funzioni

Allora vi spiego, praticamente sto scrivendo un programma dove c'è una maratona con 9999 concorrenti numerati da 1 a 9999.
Allora prima di tutto di tutti sti concorrenti fra 100 e 300 concorrenti a caso vengono squalificati, e praticamente vengono esclusi, poi devo anche scrivere il numero e quanto tempo ci hanno impiegato i primi 3 classificati (che deve essere compreso tra 2 e 4 ore e devono esserci compresi i minuti e secondi).
Il tutto comunque deve essere scritto facendo delle funzioni.

Allora io sono riuscito a fare una parte di sto programma ma ci sono un pò di cose che alla fine non mi tornano:
1)Sono riuscito a far squalificare un numero compreso tra 100 e 300 persone ma non riesco ad escluderle dalla classifica finale nell' eventualità vengano di nuovo sorteggiati tra i primi 3 classificati.
2) Sono riuscito a generare 3 concorrenti a caso con il tempo compreso tra le 2 e le 4 ore solo che non riesco a metterli in ordine, cioè può capitare che c'è scritto che il primo ci ha messo più tempo del secondo e/o del terzo.

Ecco vi posto il codice che ho scritto finora:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

    void squalifica()
    {
        int s, min = 100, max = 300;
        srand((unsigned)time(NULL));
        s = rand() % (max - min) + min;
        printf("\nSono stati squalificati %d concorrenti.",s);
        int i=0;
        srand(time(NULL));
        for(i=0; i <s; i++) {
        printf("\nIl concorrente numero %d e' squalificato", rand( ) % 10000);
    }
    system("pause");
    }

    void vincitori()
    {
        int p1, min = 1, max = 9999;
        srand((unsigned)time(NULL));
        p1 = rand() % (max - min) + min;
        int p2 = rand() % (max - min) + min;

        int p3 = rand() % (max - min) + min;

        int h, min2 = 2, max2 = 4;
        srand((unsigned)time(NULL));
        h = rand() % (max2 - min2) + min2;

        int m, min3 = 0, max3 = 60;
        srand((unsigned)time(NULL));
        m = rand() % (max3 - min3) + min3;

        int s = rand() % (max3 - min3) + min3;

        int h2 = rand() % (max2 - min2) + min2;
        int m2 = rand() % (max3 - min3) + min3;
        int s2 = rand() % (max3 - min3) + min3;
        int h3 = rand() % (max2 - min2) + min2;
        int m3 = rand() % (max3 - min3) + min3;
        int s3 = rand() % (max3 - min3) + min3;


        printf("Ha vinto il concorrente %d impiegandoci %d ore %d minuti %d secondi",p1,h,m,s);
        printf("\nSecondo il concorrente %d impiegandoci %d ore %d minuti %d secondi",p2,h2,m2,s2);
        printf("\nTerzo il concorrente %d impiegandoci %d ore %d minuti %d secondi",p3,h3,m3,s3);
    }

int main() {
    vincitori();
    squalifica();

    return 0;
}
Qualcuno può aiutarmi ? Per favore
Squiddi è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2014, 00:59   #2
gianmpu
Senior Member
 
Iscritto dal: Oct 2010
Messaggi: 1609
L'approccio che hai usato per la soluzione non mi convince.
Il modo più semplice di risolvere il quesito secondo me è:
1) Usare un array in cui l'indice del singolo elemento è in pratica il numero del maratoneta (tieni conto però che gli array in C partono da 0 mentre i numeri dei corridori partono da 1)
2) Una funzione mette in ogni elemento dell'array il tempo che quel maratoneta ha impiegato
3) Quando un corridore viene squalificato puoi rappresentare questa condizione mettendo nell'array un valore del tempo "codificato" (ad esempio un valore pari a 0 oppure -1)
4) Per trovare i vincitori, basta scorrere più volte l'array cercando ogni volta l'elemento che ha il tempo di percorrenza più basso, ma che è comunque maggiore del valore che rappresenta la squalifica
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax
Utenti assolutamente DA EVITARE: devilred
"Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian
gianmpu è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2014, 16:49   #3
Squiddi
Bannato
 
Iscritto dal: May 2013
Messaggi: 18
Quote:
Originariamente inviato da gianmpu Guarda i messaggi
L'approccio che hai usato per la soluzione non mi convince.
Il modo più semplice di risolvere il quesito secondo me è:
1) Usare un array in cui l'indice del singolo elemento è in pratica il numero del maratoneta (tieni conto però che gli array in C partono da 0 mentre i numeri dei corridori partono da 1)
2) Una funzione mette in ogni elemento dell'array il tempo che quel maratoneta ha impiegato
3) Quando un corridore viene squalificato puoi rappresentare questa condizione mettendo nell'array un valore del tempo "codificato" (ad esempio un valore pari a 0 oppure -1)
4) Per trovare i vincitori, basta scorrere più volte l'array cercando ogni volta l'elemento che ha il tempo di percorrenza più basso, ma che è comunque maggiore del valore che rappresenta la squalifica
Grazie Potresti aiutarmi perché io sono in difficoltà con gli array
Squiddi è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2014, 20:32   #4
Squiddi
Bannato
 
Iscritto dal: May 2013
Messaggi: 18
Per favore aiutatemi
Squiddi è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2014, 22:54   #5
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
usa una struct per rappresentare il tipo concorrente e crea i campi che ti servono

Codice:
typedef struct concorrente {
  ...
  bool squalificato;
  int numero;
  ...
} concorrente_t ;
e li gestisci con un array

Codice:
concorrente_t arr[9998];
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2014, 07:30   #6
gianmpu
Senior Member
 
Iscritto dal: Oct 2010
Messaggi: 1609
Freaxxx ha già proposto una soluzione. Io ti propongo la mia.
1) Dichiara un array chiamandolo ad esempio maratoneti (o simile) costituito da interi o long
2) L'indice del singolo elemento dell'array è il numero del maratoneta. Quindi l'elemento 0 dell'array è il maratoneta con il numero 1, l'elemento 1 è il maratoneta con il numero 2 e così via per tutti gli altri. Il contenuto del singolo elemento dell'array, invece, rappresenta il tempo impiegato da quel maratoneta espresso in minuti (ad es. maratoneti[0] contiene il tempo del primo corridore, maratoneti[125] contiene il tempo del corridore con numero di pettorale 126 e così via)
3) Una funzione all'inizio assegna il tempo di percorrenza ad ogni elemento dell'array (immagino tu debba inventare i tempi con una funzione che genera numeri casuali)
4) La funzione squalifica estrae un certo numero di corridori. Per ogni numero estratto setti il tempo a -1 cioè basta impostare maratoneti[numero_estratto]= -1
5) Per trovare il primo vincitore basta fare una funzione con qualcosa del tipo
for (i=0, min=maratoneti[0]; i < numero elementi array; i++)
if (maratoneti[i] < min) && (maratoneti[i] != -1)
min = maratoneti[i]
Per trovare gli altri due il sistema è lo stesso. Devi solo aggiungere, nella ricerca del secondo e del terzo vincitore, il controllo che chi ha il tempo più basso durante la ricerca non sia già stato identificato in precedenza come vincitore.
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax
Utenti assolutamente DA EVITARE: devilred
"Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian

Ultima modifica di gianmpu : 17-09-2014 alle 13:59.
gianmpu è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2014, 15:25   #7
Squiddi
Bannato
 
Iscritto dal: May 2013
Messaggi: 18
Grazie mille, ma qualcuno potrebbe scrivermi l' intero codice perché ho difficolta sugli array
Squiddi è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2014, 16:54   #8
gianmpu
Senior Member
 
Iscritto dal: Oct 2010
Messaggi: 1609
Mi dispiace, ma questo viola il regolamento del forum. Inoltre, questi esercizi di solito sono pensati per far sforzare un po' chi deve imparare. Se scrivessimo noi il codice, non servirebbe a noi perché sono ad un livello base, ma soprattutto non servirebbero a te per imparare. Se provi a buttare giù qualcosa o a spiegare cosa non ti è chiaro ti aiuteremo, ma non possiamo sostituirci a te. :-)
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax
Utenti assolutamente DA EVITARE: devilred
"Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian
gianmpu è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2014, 16:59   #9
Squiddi
Bannato
 
Iscritto dal: May 2013
Messaggi: 18
Lo so, ma intendevo solo quel pezzettino dei miei dubbi, so che non si possono fare i programma interamente, ma solo correggere o fare quel piccolo dubbio non è un problema
Squiddi è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2014, 17:11   #10
gianmpu
Senior Member
 
Iscritto dal: Oct 2010
Messaggi: 1609
Guarda, secondo me è meglio riscrivere il programma perchè in quello che hai fatto non usi gli array. Se vuoi utilizzare la traccia di freaxxx o quella che ti ho suggerito io, le modifiche si ripercuotono un po' su tutto il programma, quindi in questi casi è meglio ripartire da zero. Inoltre, se vuoi, puoi spiegare meglio quali sono i tuoi dubbi.
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax
Utenti assolutamente DA EVITARE: devilred
"Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian
gianmpu è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Addio riflessi fastidiosi? Samsung prese...
PlayStation 5, doccia fredda da Sony: i ...
Super Meat Boy 3D: annunciata la data d'...
XT View Matrix, il mid-tower Phanteks ch...
David Sacks lascia il ruolo di 'Crypto C...
LG All Stars 2026: quando l'installatore...
Addio ad Anna's Archive? Ecco la mossa l...
Addio al Mac Pro, Apple mette fine a un ...
Panasonic a MCE 2026: la rivoluzione sil...
Netflix alza la posta: il piano Premium ...
Nimbus Innovation Awards – Cloud Edition...
Wikipedia vieta i contenuti generati dal...
Niente volante, niente schermi: cos&igra...
Gli 'Avengers' di Windows sono tornati: ...
Alien Deathstorm annunciato da Rebellion...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v