View Full Version : Esame Universita'
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.
intanto comincialo a scrivere...poi noi ti diamo una mano ;)
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?
tutto a posto grazie...
era un " ; " dimenticato
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...
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
Se funziona va bene ;)
dim2+=1;
Metti dim2++; o ++dim2;
Ci sono queste istruzioni sfruttiamole ;)
OT
dio che odio il coding java-style :cry:
ti ringrazio...cmq funziona...quindi dovrebbe andare bene anche alla prof!
grazie ancora
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
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.