|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
|
[C] help esercizio banale
ciao a tuttiz, devo fare un esercizio per l'universita, ma non mi viene..... e' banale ma nn vuole venirmi...
Scrivere un programma che: 1) Legge quanti elementi ha un' array (al massimo 30), 2) legge gli elementi dell'array. 3) Fa un ciclo in cui a) legge un numero (che chiamero' n nel seguito) b) mette gli elementi minori di n in un'array e quelli maggiori di n in un'altra array, c) stampa "Ci sono i seguenti elementi minori di n nell'array" seguito dall'elenco degli elementi minori di n "Ci sono i seguenti elementi maggiori di n nell'array" seguito dall'elenco degli elementi maggiori di n Potete decidere voi come far interrompere il ciclo. senza usale le funzioni come lo fareste... grazie ![]()
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Spiega meglio se vuoi un aiuto. ![]()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Si ma se fai l'uni e non ti viene un esercizio del genere ti conviene metterti sotto veramente prima dell'esame...
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
|
Quote:
cmq si il valore da inserire e' da tastiera dall'utente... Fino ad ora ho proseguito cosi': #include <stdio.h> #include <math.h> #define imax 30 main () { int arr[imax], num,i; do { printf("Inserire il numero dei valori da inserire : "); scanf ("%d", &num); } while((num<1) || (num>30)); for (i=0; i<num; i++) { printf("Inserire i valori dell'array:"); scanf("%d",&arr[i]); } if ( num>imax) printf("I valori superano la dimensione massima dell'array ovvero 30 elementi " );
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Non ho solo capito perché alla fine fai il test di num>max. num non vale mai più di 30, perché fai già il controllo nel do-while dell'input. A questo punto, se ho capito bene, dovresti: - Richiedere in input un numero. - Mettere i valori minori del numero in un array e mettere i valori maggiori del numero in un altro array. Tutto questo in un ciclo per poter ripetere la suddivisione più volte, eventualmente. Innanzitutto dovresti dichiarare altri 2 array di lunghezza imax. Dovrai anche avere 2 variabili che tengono la lunghezza dei 2 array. Poi fai un ciclo for per scansionare l'array principale, per ogni elemento fai il test con il numero inserito e in base al minore/maggiore, lo aggiungi ad uno dei due array (incrementando la variabile della lunghezza). Prova un po', poi se hai problemi, chiedi pure.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
|
ciao andbin, grazie della risposta.. sto provando a fare come hai detto tu ma ho qualche problemino
![]() ![]() -Poi fai un ciclo for per scansionare l'array principale, per ogni elemento fai il test con il numero inserito e in base al minore/maggiore, lo aggiungi ad uno dei due array (incrementando la variabile della lunghezza). dopo aver dichiarato le variabilie altri 2 array di lunghezza imax gli faccio fare printf("Inserire un valore: "); scanf("%d", &n); for (arr[i]=0; arr[i]<n; n++ ) { armin[h]=arr[i]; printf("i valori sono: %d",armin[h]); } so che c'e' qualcosa che non va... perdonatemi davvero ma se nn me lo spiega qualcuno non ci arrivo ![]() abbiate pazienza ![]()
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
int arr[imax], arr_min[imax], arr_mag[imax]; int num, num_min, num_mag; Codice:
for (i = 0; i < num; i++) { .... } Nota che le variabili num_min e num_mag possono essere utilizzate sia per gli indici che per tenere la lunghezza dell'array. Per essere più chiari: se nell'array arr_min hai già 2 elementi, allora num_min vale 2. Il prossimo elemento lo devi aggiungere proprio all'indice 2 (la terza cella) e poi devi incrementare il contatore.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
|
Quote:
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:08.