|
|
|
|
Strumenti |
22-03-2010, 15:34 | #1 |
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"); } Grazie in anticipo, Marco. |
22-03-2010, 15:50 | #2 |
Senior Member
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. |
22-03-2010, 17:03 | #3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
max_element
Comunque io userei il C++ e non il C |
22-03-2010, 19:07 | #4 | ||
Junior Member
Iscritto dal: Mar 2010
Messaggi: 8
|
Quote:
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:
Ultima modifica di MarcoWesley10 : 22-03-2010 alle 19:11. |
||
22-03-2010, 19:58 | #5 |
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]. |
23-03-2010, 12:46 | #6 |
Utente sospeso
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); }
__________________
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 |
23-03-2010, 14:26 | #7 |
Member
Iscritto dal: Feb 2006
Messaggi: 134
|
E se i valori inseriti fossero tutti minori di 0?
|
23-03-2010, 14:39 | #8 |
Utente sospeso
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
|
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. |
23-03-2010, 14:58 | #9 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4905
|
|
23-03-2010, 15:07 | #10 |
Utente sospeso
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
|
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 |
23-03-2010, 15:10 | #11 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4905
|
|
23-03-2010, 15:36 | #12 |
Utente sospeso
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 |
23-03-2010, 16:41 | #13 |
Senior Member
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; }
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
23-03-2010, 17:14 | #14 | |
Utente sospeso
Iscritto dal: Feb 2010
Città: FeedBack 100% positive
Messaggi: 1112
|
Quote:
__________________
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 |
|
23-03-2010, 22:47 | #15 | |
Junior Member
Iscritto dal: Mar 2010
Messaggi: 8
|
Quote:
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 |
|
24-03-2010, 15:33 | #16 |
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"); } |
24-03-2010, 15:34 | #17 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4905
|
|
24-03-2010, 15:41 | #18 |
Member
Iscritto dal: Nov 2009
Messaggi: 57
|
Ahahahha...sorry...xD
|
24-03-2010, 21:53 | #19 | |
Member
Iscritto dal: Mar 2008
Messaggi: 96
|
Quote:
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++){ .... } .... |
|
24-03-2010, 22:26 | #20 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4905
|
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:09.