Torna indietro   Hardware Upgrade Forum > Software > Programmazione

La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
Abbiamo visto ancora una volta la Formula E da vicino, ospiti di Jaguar TCS Racing. In questa occasione però curve e rettilinei erano quelli di un circuito permanente, molto diverso dagli stretti passaggi delle strade di Roma
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo ha puntato forte sul gaming negli ultimi anni e lo testimoniano i marchi LEGION e LOQ, il primo per gli amanti delle massime prestazioni e dell'assenza di compromessi, il secondo per chi desidera soluzioni dal buon rapporto tra prestazioni e prezzo. Abbiamo provato due esponenti dell'offerta, così da capire l'effettiva differenza prestazionale.
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-03-2010, 15:34   #1
MarcoWesley10
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 8
[C++] Valore piu grande in un vettore

Ciao a tutti, il mio professore mi ha assegnato un compito vistochè stiamo studiando i vettori...
devo assegnare 10 valori in un vettore... e verificare qual'è il più grande...

per quanto riguarda l'assegnare i valori del vettore ho pensato al codice:

Codice:
#include <stdio.h>
#include <stdlib.h>
main ()
{
int v[10],i;
for(i=0;i<10;i++)
{
printf("Inserisci valore %d: ",i);
scanf("%d",&v[i]);
}
system("pause");
}
ora però vorrei sapere voi cosa mi consigliate per vedere qual'è il valore maggiore inserito presente nel vettore??

Grazie in anticipo, Marco.
MarcoWesley10 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2010, 15:50   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12580
Tu cosa faresti se fossi una macchina che non ha alcuna idea dei numeri che hai messo nel vettore? .

In linea di principio non è molto diverso dal metodo che hai usato per l'inserimento.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2010, 17:03   #3
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
max_element
Comunque io userei il C++ e non il C
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2010, 19:07   #4
MarcoWesley10
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 8
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Tu cosa faresti se fossi una macchina che non ha alcuna idea dei numeri che hai messo nel vettore? .

In linea di principio non è molto diverso dal metodo che hai usato per l'inserimento.
Tu dici che devo fare un for di controllo?

Quote:
Originariamente inviato da tomminno Guarda i messaggi
max_element
Comunque io userei il C++ e non il C
eh il prof ci ha insegnato solo il C e non il C++...infatti ho sbagliato nel titolo...

Comunque alla fine ho sviluppato questo:
Quote:
#include <stdio.h>
#include <stdlib.h>
main ()
{
int v[10],i,max;
for(i=0;i<10;i++)
{
printf("Inserisci valore %d: ",i);
scanf("%d",&v[i]);
}
max=v[0];
for(i=1;i<10;i++)
{
if(max<v[i])
max=v[i];
}
printf("Il valore massimo e'%d: \n",max);
system("pause");
}
e devo dire che funziona alla meraviglia!

Ultima modifica di MarcoWesley10 : 22-03-2010 alle 19:11.
MarcoWesley10 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2010, 19:58   #5
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4905
Non ti serve mica scorrerre il vettore due volte. Puoi fare il controllo subito dopo aver ricevuto i singoli valori.

PS: Per il codice usa il tag [‎CODE‎], non [‎QUOTE].
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 12:46   #6
inkSnake
Utente sospeso
 
L'Avatar di inkSnake
 
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
Codice:
#define max 10
int v[max];

int main()
{
   int i,m=0;
   printf("Ins. valori:");
   for(i=0;i<max;i++) {
                              gets(v[i]); oppure scanf("%d",&v[i]);
                              if(v[i]>m) m=v[i];
                             }
   printf("Numero piu' grande: %d",m);
}
ecco un procedimento ottimale.
__________________
System: i7 920 @ 4.2Ghz - RIIE - OCZ Plt. 1600 - HD6990 - Xonar D2X - Corsair Force II 120gb + 1TB - Enermax Rev1050W - Obsidian 800D
Periferiche: Acer GD245H - Razer BlackWidow - SteelSeries Sensei/7H - CM Storm Tactical
inkSnake è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 14:26   #7
Volutomitra
Member
 
Iscritto dal: Feb 2006
Messaggi: 134
Quote:
Originariamente inviato da inkSnake Guarda i messaggi
Codice:
#define max 10
int v[max];

int main()
{
   int i,m=0;
   printf("Ins. valori:");
   for(i=0;i<max;i++) {
                              gets(v[i]); oppure scanf("%d",&v[i]);
                              if(v[i]>m) m=v[i];
                             }
   printf("Numero piu' grande: %d",m);
}
ecco un procedimento ottimale.
E se i valori inseriti fossero tutti minori di 0?
Volutomitra è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 14:39   #8
inkSnake
Utente sospeso
 
L'Avatar di inkSnake
 
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
Quote:
Originariamente inviato da Volutomitra Guarda i messaggi
E se i valori inseriti fossero tutti minori di 0?
attualmente l'utente in questione farà programmi basillari e quindi difficilmente il prof. gli fà fare una serie di controlli etc...

e cmq dubito che in un vettore di tipo int ci vai a mettere numeri minori di 0. al massimo l'unica cosa utile che si può fare,è implementare un controllo che permetta di acquisire solo numeri e non caratteri.
__________________
System: i7 920 @ 4.2Ghz - RIIE - OCZ Plt. 1600 - HD6990 - Xonar D2X - Corsair Force II 120gb + 1TB - Enermax Rev1050W - Obsidian 800D
Periferiche: Acer GD245H - Razer BlackWidow - SteelSeries Sensei/7H - CM Storm Tactical

Ultima modifica di inkSnake : 23-03-2010 alle 14:42.
inkSnake è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 14:58   #9
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4905
Quote:
Originariamente inviato da inkSnake Guarda i messaggi
e cmq dubito che in un vettore di tipo int ci vai a mettere numeri minori di 0
E perché mai?

E comunque basta inizializzare m con il valore int più basso possibile (e non è certo l'unica soluzione).
Codice:
#include <limits.h>

...

int m = INT_MIN;
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 15:07   #10
inkSnake
Utente sospeso
 
L'Avatar di inkSnake
 
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
E perché mai?

E comunque basta inizializzare m con il valore int più basso possibile (e non è certo l'unica soluzione).
Codice:
#include <limits.h>

...

int m = INT_MIN;
ma cosi come è impostato il codice se tu ci metti un bel - ,esso viene acquisito prima del numero che segue. non so se mi sono spiegato.
__________________
System: i7 920 @ 4.2Ghz - RIIE - OCZ Plt. 1600 - HD6990 - Xonar D2X - Corsair Force II 120gb + 1TB - Enermax Rev1050W - Obsidian 800D
Periferiche: Acer GD245H - Razer BlackWidow - SteelSeries Sensei/7H - CM Storm Tactical
inkSnake è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 15:10   #11
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4905
Quote:
Originariamente inviato da inkSnake Guarda i messaggi
ma cosi come è impostato il codice se tu ci metti un bel - ,esso viene acquisito prima del numero che segue. non so se mi sono spiegato.
Se passi un numero con un - o un + davanti scanf("%d", v[i]) lo interpreta come parte del numero.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 15:36   #12
inkSnake
Utente sospeso
 
L'Avatar di inkSnake
 
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
ottimo,questa non la sapevo,grazie per l'intervento.
__________________
System: i7 920 @ 4.2Ghz - RIIE - OCZ Plt. 1600 - HD6990 - Xonar D2X - Corsair Force II 120gb + 1TB - Enermax Rev1050W - Obsidian 800D
Periferiche: Acer GD245H - Razer BlackWidow - SteelSeries Sensei/7H - CM Storm Tactical
inkSnake è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 16:41   #13
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Io al professore darei una cosa tipo questa in C++, ma non credo passerei l'esame:
Codice:
#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>

int main(int argc, char** argv) {
  std::vector<int> v;
  std::copy(std::istream_iterator<int>(std::cin),
            std::istream_iterator<int>(), std::back_inserter(v));
  std::cout << *std::max_element(v.begin(), v.end()) << std::endl;
  return 0;
}
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 17:14   #14
inkSnake
Utente sospeso
 
L'Avatar di inkSnake
 
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
Quote:
Originariamente inviato da shinya Guarda i messaggi
Io al professore darei una cosa tipo questa in C++, ma non credo passerei l'esame:
Codice:
#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>

int main(int argc, char** argv) {
  std::vector<int> v;
  std::copy(std::istream_iterator<int>(std::cin),
            std::istream_iterator<int>(), std::back_inserter(v));
  std::cout << *std::max_element(v.begin(), v.end()) << std::endl;
  return 0;
}
lol tu ad uno del terzo li vai a scrivere in c++,stam bon.
__________________
System: i7 920 @ 4.2Ghz - RIIE - OCZ Plt. 1600 - HD6990 - Xonar D2X - Corsair Force II 120gb + 1TB - Enermax Rev1050W - Obsidian 800D
Periferiche: Acer GD245H - Razer BlackWidow - SteelSeries Sensei/7H - CM Storm Tactical
inkSnake è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 22:47   #15
MarcoWesley10
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 8
Quote:
Originariamente inviato da shinya Guarda i messaggi
Io al professore darei una cosa tipo questa in C++, ma non credo passerei l'esame:
Codice:
#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>

int main(int argc, char** argv) {
  std::vector<int> v;
  std::copy(std::istream_iterator<int>(std::cin),
            std::istream_iterator<int>(), std::back_inserter(v));
  std::cout << *std::max_element(v.begin(), v.end()) << std::endl;
  return 0;
}
scusami se mi permetto, ma comunque io vado al terzo anno delle superiori...non al terzo anno di univ eheh...
comunque questo credo sia c++ io ho sbagliato a scrivere nel titolo perchè intendevo C...comunque il programma che ho sviluppato e che ho postato è andato più che bene (il prof mi voleva fregare xke quando sono andato alla lavagna voleva farmi trovare il valore minimo e non il massimo, credendo che io avevo copiato il lavoro) e sono riuscito a farlo...grazie comunque per i suggerimenti
MarcoWesley10 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:33   #16
m0rix93
Member
 
Iscritto dal: Nov 2009
Messaggi: 57
Semplice e indolore

Codice:
#include <stdio.h>

main ()
{
   int v[10],i,k;

   k=0;
   
   for(i=0;i<10;i++)
   {
      printf("Inserisci valore %d: ",i);
      scanf("%i",&v[i]);
   }

   for(i=0;i<10;i++)
     if(v[i]>k)
        k=v[i];

   printf("\r\n");
   printf("Il numero max e': %i\r\n",k);

   system("pause");
}
m0rix93 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:34   #17
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4905
Quote:
Originariamente inviato da m0rix93 Guarda i messaggi
Semplice e indolore
E soprattutto inutile, visto che l'autore ha postato una soluzione uguale 2 giorni fa.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:41   #18
m0rix93
Member
 
Iscritto dal: Nov 2009
Messaggi: 57
Ahahahha...sorry...xD
m0rix93 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 21:53   #19
Gelert
Member
 
Iscritto dal: Mar 2008
Messaggi: 96
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
E perché mai?

E comunque basta inizializzare m con il valore int più basso possibile (e non è certo l'unica soluzione).
Codice:
#include <limits.h>

...

int m = INT_MIN;
scorretto, se passo un vettore senza elementi avrò come ritorno quel valore e non potrò stabilire se ho il valore perché il vettore era vuoto o perché effettivamente presente nel vettore.

personalmente inizierei m con il valore nella prima posizione del vettore e poi il for lo farei partire dal secondo


Codice:
...
int m = v[0]
for(int i = 1; i < v.lenght ; i++){
    ....
}
....
Gelert è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 22:26   #20
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4905
Quote:
Originariamente inviato da Gelert Guarda i messaggi
scorretto, se passo un vettore senza elementi avrò come ritorno quel valore
Quote:
Originariamente inviato da MarcoWesley10 Guarda i messaggi
devo assegnare 10 valori in un vettore... e verificare qual'è il più grande...
Lettura, questa sconosciuta.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
HiSolution amplia i propri servizi e pun...
F1 24 introdurrà migliorie al mod...
Arriva Omnissa, che prenderà in c...
Turista americano torna dall'Europa e si...
Larian al lavoro su due nuovi giochi, cr...
Microsoft Office LTSC 2024 disponibile i...
Fallout 4 è il gioco più v...
Razer Kishi Ultra: ecco il controller pe...
Il Dimensity 6300 di MediaTek porta il 5...
Google combina i team Android, Chrome e ...
Axiante vuole indagare come le imprese i...
Italia quinto mercato europeo per i vide...
Apple celebra la Giornata della Terra co...
La funzionalità 'AI Explorer' di ...
ASUS ROG Ally: la versione più potente c...
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: 02:09.


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