|
|
|
|
Strumenti |
21-02-2005, 18:59 | #1 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2950
|
[C++]AIUTO!!: Programma che calcola il massimo e il minimo tra N numeri!
Non riesco a fare questo programma, sono riuscito solo a far trovare il massimo tra N numeri ma il minimo non so come fare, il tutto deve avvenire nello stesso programma, ecco il codice per calcolare il massimo, ma per calcolare anche il minimo che devo aggiungere??
#include<stdio.h> int a, max, i, n; void main() { printf("inserisci i numeri da controllare:"); scanf("%d", & n); i=0; max=0; do { printf("inserisci un numero:"); scanf("%d", &a); if(a>max) { max =a; } i=i+1; } while(i<n); printf("il massimo e': %d \n", max); }
__________________
ASRock 939Dual-Sata2 (305mhz ) l Venice 3000+@2466mhz (274x9)vcore default l Vdata -5B 2x512mb DC PC3200@ 260mhz 3-4-4-8-1T 2,7v Rock Solid l 9700pro@460/760 l Enermax 485W l TRATTATIVE CONCLUSE |
21-02-2005, 19:26 | #2 |
Bannato
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
|
Re: [C++]AIUTO!!: Programma che calcola il massimo e il minimo tra N numeri!
Codice:
#include<stdio.h> int a, max = -32000, min = +32000, i = 0, n; void main(void) { printf("inserisci i numeri da controllare:"); scanf("%d", &n); do { printf("inserisci un numero:"); scanf("%d", &a); if(a > max) max = a; if(a < min) min = a; i++; } while( i < n); printf("il massimo e': %d \n", max); printf("il minimo e': %d\n", min); } |
21-02-2005, 19:27 | #3 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
imposti una variabile al massimo e fai la stessa cosa con un controllo sul <
ciao |
21-02-2005, 19:33 | #4 | ||
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2950
|
Re: Re: [C++]AIUTO!!: Programma che calcola il massimo e il minimo tra N numeri!
Quote:
- void main(void), io uso sempre void main () - i++ che significa?? - devo per forza usare un numero tra +32000 e -32000 ? non posso usare un qualsiasi numero? Quote:
__________________
ASRock 939Dual-Sata2 (305mhz ) l Venice 3000+@2466mhz (274x9)vcore default l Vdata -5B 2x512mb DC PC3200@ 260mhz 3-4-4-8-1T 2,7v Rock Solid l 9700pro@460/760 l Enermax 485W l TRATTATIVE CONCLUSE |
||
21-02-2005, 19:38 | #5 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
continua a usare le due parentesi senza preoccuparti. i parametri sul main servono per prendere parametri dalla linea di comando (anche se non so void cosa ci faccia, ma non è la prima volta che lo vedo ).
i++ equivale a i = i + 1; molto più compatto e comdodo i numeri dipendono dalla dimensione massima che regge il tuo sistema. se imposti 1 e il minimo dei numeri inseriti è 3 uno risulteà sempre minore di 3, e il minimo risulterà 1 invece che 3, quidni va sempre al massimo. ciao! |
21-02-2005, 19:39 | #6 |
Senior Member
Iscritto dal: May 2003
Città: Ascoli Piceno
Messaggi: 1434
|
- void main(void), io uso sempre void main ()
Dovrebbe essere una procedura ricorsiva... - i++ che significa?? Incrementa la variabile i di 1. è come se facessi i = i + 1 - devo per forza usare un numero tra +32000 e -32000 ? non posso usare un qualsiasi numero? è il numero max che puoi contenere con quel tipo di variabile
__________________
Ho felicemente concluso con:luxo#,falcon.eddie#,Maji#,Sciarmato,mitsuhashi1#,kyosuke,Bisteccone, LWH,itp55,Truzzone,xketto85x,renna1961,aenima80,Rospaccio,Ciesko,Ray,edema,viganet,arnoblu ,Bilbo,magalini,Schum4k3r,M4st3r,athlon xp 2400,MALLEUS,Franci2k5,nv17,HAVOC,Xidius,mi-de |
21-02-2005, 19:40 | #7 |
Bannato
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
|
void main(void) -- void main()
e' uguale, usa quello che vuoi tu. i++ e' equivalente a i = i + 1. C'e' anche la forma ++i, e la differenza tra le 2 si vede in espressioni, tipo a = (++i) / 2; In questo caso prima incrementa il contenuto di i e poi ne usa il valore per calcolare l'espressione. Se avessi scritto a = (i++) / 2, prima avrebbe letto il valore di i per calcolare l'espressione, poi ne avremme incrementanto il valore. no, certo che non devi usare per forza 32000, usa un valore molto grande, oppure se tutti i numeri che l'utente deve inserire devono essere minori di 100, usa 100 come limite potresti fare una cosa cosi' #define INFINITO 32767 max = -INFINITO; min = INFINITO; |
21-02-2005, 19:42 | #8 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2950
|
ok, grazie a tutti
__________________
ASRock 939Dual-Sata2 (305mhz ) l Venice 3000+@2466mhz (274x9)vcore default l Vdata -5B 2x512mb DC PC3200@ 260mhz 3-4-4-8-1T 2,7v Rock Solid l 9700pro@460/760 l Enermax 485W l TRATTATIVE CONCLUSE |
21-02-2005, 19:44 | #9 | |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2950
|
Quote:
EDIT: ok, fatto, grazie a tutti ancora una volta
__________________
ASRock 939Dual-Sata2 (305mhz ) l Venice 3000+@2466mhz (274x9)vcore default l Vdata -5B 2x512mb DC PC3200@ 260mhz 3-4-4-8-1T 2,7v Rock Solid l 9700pro@460/760 l Enermax 485W l TRATTATIVE CONCLUSE |
|
22-02-2005, 08:51 | #10 |
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Per completare la discussione:
Eistono in LIMITS.H le costanti appropriate (di lettura decisamente più facile, ma soprattutto portabili su piattaforme diverse): SCHAR_MAX 127 Maximum signed char value SCHAR_MIN –128 Minimum signed char value UCHAR_MAX 255 (0xff) Maximum unsigned char value CHAR_BIT 8 Number of bits in a char USHRT_MAX 65535 (0xffff) Maximum unsigned short value SHRT_MAX 32767 Maximum (signed) short value SHRT_MIN –32768 Minimum (signed) short value UINT_MAX 4294967295 (0xffffffff) Maximum unsigned int value ULONG_MAX 4294967295 (0xffffffff) Maximum unsigned long value INT_MAX 2147483647 Maximum (signed) int value INT_MIN –2147483647–1 Minimum (signed) int value LONG_MAX 2147483647 Maximum (signed) long value LONG_MIN –2147483647–1 Minimum (signed) long value CHAR_MAX 127 (255 if /J option used) Maximum char value CHAR_MIN –128 (0 if /J option used) Minimum char value MB_LEN_MAX 2 Maximum number of bytes in multibyte char I64_MAX 9223372036854775807 Maximum (signed) __int64 value I64_MIN -9223372036854775807-1 Minimum (signed) __int64 value _UI64_MAX 0xffffffffffffffff Maximum (unsigned) __int64 value Mentre in FLOAT.H sono presenti: DBL_DIG 15 # of decimal digits of precision DBL_EPSILON 2.2204460492503131e-016 Smallest such that 1.0+DBL_EPSILON !=1.0 DBL_MANT_DIG 53 # of bits in mantissa DBL_MAX 1.7976931348623158e+308 Maximum value DBL_MAX_10_EXP 308 Maximum decimal exponent DBL_MAX_EXP 1024 Maximum binary exponent DBL_MIN 2.2250738585072014e-308 Minimum positive value DBL_MIN_10_EXP (-307) Minimum decimal exponent DBL_MIN_EXP (–1021) Minimum binary exponent _DBL_RADIX 2 Exponent radix _DBL_ROUNDS 1 Addition rounding: near FLT_DIG 6 Number of decimal digits of precision FLT_EPSILON 1.192092896e-07F Smallest such that 1.0+FLT_EPSILON !=1.0 FLT_MANT_DIG 24 Number of bits in mantissa FLT_MAX 3.402823466e+38F Maximum value FLT_MAX_10_EXP 38 Maximum decimal exponent FLT_MAX_EXP 128 Maximum binary exponent FLT_MIN 1.175494351e-38F Minimum positive value FLT_MIN_10_EXP (–37) Minimum decimal exponent FLT_MIN_EXP (–125) Minimum binary exponent FLT_RADIX 2 Exponent radix FLT_ROUNDS 1 Addition rounding: near Conviene sempre utilizzare tali costanti per inizializzare qualcosa a valori massimi e minimi (con l'avvento degli int a 64bit utilizzare sistemi non standard potrebbe risultare in malfunzionamenti vari ed evetuali ) Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:37.