PDA

View Full Version : Esame Universita'


eajay
16-11-2004, 10:58
Ciao Ragazzi...chi puo; darmi qualche dritta...?
Il linguaggio e il C

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 meno elementi maggiori di n nell'array"
seguito dall'elenco degli elementi maggiori di n

Potete decidere voi come far interrompere il ciclo.

cionci
16-11-2004, 11:09
intanto comincialo a scrivere...poi noi ti diamo una mano ;)

eajay
16-11-2004, 11:16
non vi chiedo di scrivermelo tutto...vi ho scritto il testo tanto per rendervi partecipi...

soprattutto il punto 3 B!

li ho qualche problema!

ilsensine
16-11-2004, 11:23
Originariamente inviato da eajay
non vi chiedo di scrivermelo tutto...vi ho scritto il testo tanto per rendervi partecipi...

soprattutto il punto 3 B!

li ho qualche problema!
Mi sembra chiaro e banale. Che problemi incontri?

eajay
16-11-2004, 11:29
tutto a posto grazie...
era un " ; " dimenticato

cionci
16-11-2004, 11:34
Fai due vettori di dimensione pari al primo... Scorri il primo vettore con un for... Se un elemento è maggiore di n mettillo in un vettore, se è minore di n mettilo nell'altro... Ti devi ovviamente tenere anche il conto di quanti elementi ci sono in ogni vettore...

eajay
16-11-2004, 12:34
io ho fatto cosi'....sto programmando in LINUX...

#include <stdio.h>

#define MAX 30


int main (void){

int arr[MAX],arMax[MAX],arMin[MAX];
int i,dim,dim1,dim2,n;
printf("\n");
printf("Inserire il numero di elementi da caricare:");
scanf("%d",&dim);

while((dim>30)||(dim<=0)){
printf("\n DATO ERRATO..Reinserire: ");
scanf("%d",&dim);
}

printf("\n\n");
/*carica*/
for( i=0; i<dim; i++ ){
printf("Inserisci il %do numero: ",i+1);
scanf("%d",&arr[i]);
}

do{
printf("\n\n");

/*carica vettori rispetto ad n*/
printf("Inserisci n da confrontare: ");
scanf("%d",&n);
dim1=0;
dim2=0;

if(n!=100){

for(i=0;i<dim;i++){

if(arr[i]>n){
arMax[dim1]=arr[i];
dim1+=1;
}

if(arr[i]<n){
arMin[dim2]=arr[i];
dim2+=1;
}
}

/*stampa*/
printf("Ci sono i seguenti %d elementi minori di n nell'array: \n",dim2);

for(i=0;i<dim2;i++){
printf("%d",arMin[i]);
}
printf("\n\n");
printf("Ci sono i seguenti %d elementi maggiori di n nell'array: \n",dim1);

for(i=0;i<dim1;i++){
printf("%d",arMax[i]);
}
}
printf("\n\n");
}
while(n!=100);

return(0);
}



Nel terminale funziona...pensate che possa andare bene?

grazie

cionci
16-11-2004, 15:48
Se funziona va bene ;)

dim2+=1;

Metti dim2++; o ++dim2;

Ci sono queste istruzioni sfruttiamole ;)

ri
16-11-2004, 18:31
OT

dio che odio il coding java-style :cry:

eajay
17-11-2004, 10:04
ti ringrazio...cmq funziona...quindi dovrebbe andare bene anche alla prof!

grazie ancora

eajay
17-11-2004, 10:10
ancora una cosa...

ho bisogno anche di alcuni suggerimenti sulle asserzioni e le invarianti di ciclo perche' non ho capito bene come comporle...

:confused: :muro:

grazie