Pagina 1 di 3

eSERCIZIO c

Inviato: 15 lug 2012, 12:07
da pixx87
cIAO
DEVO FARE SEGUENTE ESERCIZIO..MA HO DEI PROBLEMINI..CHI MI AIUTA ?? :(
Scrivere un programma che:
- chiede all’utente un intero MAX minore di 6 (si controlli che sia minore di 6 e in caso
contrario lo si richieda finché non soddisfa le specifiche)
- legge da input due sequenze di d interi. I numeri letti vanno memorizzati in due array v1 e v2 (di
dimensione fisica 6)
- crea e stampa a video un array v3 che contiene solo i valori di v1 che sono maggiori del doppio dei
corrispondenti in v2. A tale scopo si usi la funzione int almeno_doppio(int n1, int n2). La
funzione restituisce 1 se n1 è almeno il doppio di n2, 0 altrimenti.
Esempio:
Se l’utente immette il numero 4 e le seguenti sequenze:
v1[]={5, 1, 6, 8} v2[]={2, 5, 4, 3}
Il programma deve calcolare il seguente array v3[]={5, 8}
Ho pensato una cosa di questo tipo...

#include <stdio.h>
#define N 6
int almeno_doppio (int n1,int n2){
int valore;
if (n1>2*n2) valore = 1;
else valore =0;
return valore;
}
main () {
int i,vettore1[N],vettore2[N],vettore3[N],max;
printf ("inserisci un numero minore di 6 :");
scanf ("%d",& max);
if (max>6){
printf ("inserisci di nuovo il numero");
scanf ("%d", & max);
}
printf ("ora inserisci la prima sequenza ");
for (i=0;i<N;i++)
scanf ("%d",& vettore1[i]);
printf ("inserisci ora la seconda sequenza:");
for (i=0;i<N;i++)
scanf ("%d",& vettore2[i]);
for (i=0;i<N;i++){
if (almeno_doppio(vettore1[i],vettore2[i]))
vettore3[i]=vettore1[i];
}
printf("il terzo vettore e':");
for (i=0;i<N;i++)

printf("%d",vettore3[i]);

printf ("\ricapitolando:");
printf ("prima sequenza %d",vettore1[i]);
printf ("\n seconda sequenza %d",vettore2[i]);
printf ("\n il terzo ricavatose sono stata brava è %d",vettore3[i]);
scanf ("%d");
}
HELPPPPPPPPPPPPP!!

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:17
da Ianero
Prima di passare a vedere il codice, voglio capire questo:
Se l’utente immette il numero 4

Che c'entra? Non hai detto che il confronto deve essere fatto tra v1 e v2? Che c'entra ora l'immissione di un altro numero dall'utente scusa?

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:18
da TardoFreak
Il srogente devi inserirlo fra i tags "code" affinchè sia almeno leggibile e tenga le tabulazioni.
In questo modo

Codice: Seleziona tutto

void funzione(void)
{
  // corpo funzione
}

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:21
da pixx87
CHIEDO 1 ALTRO NUMERO NEL CASO IN CUI VENGA INSERITO UN NUMERO MAGGIORE DI 6..
VIENE RICHIESTO NEL PRIMO PUNTO UN NUMERO ..
POI NEL SECONDO HO L'INSERIMENTO DI DUE SEQUENZE

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:22
da Ianero

Codice: Seleziona tutto

if (max>6){
printf ("inserisci di nuovo il numero");
scanf ("%d", & max);
}

Al secondo tentativo posso tranquillamente inserire un numero maggiore di 6, sostituisci if con while.

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:25
da pixx87
UNA COSA DI QUESTO TIPO..
do{
printf("Inserisci un numero max minore di sei\n:");
scanf("%d",&max);
}while(max<6);

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:27
da TardoFreak

Codice: Seleziona tutto

do
{
  printf ("inserisci un numero minore di 6 :");
  scanf ("%d",& max);
} while (max > 6);


Tre cose Foto Utentepixx87
1) I sorgenti vanno messi fra i tag "code"
2) Scrivere in maiuscolo significa urlare. Qui dentro parliamo e non urliamo.
3) Non usare abbreviazioni per cortesia.

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:27
da Ianero
Va bene anche così :ok:

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:28
da TardoFreak
No, la condizione che ha scritto è sbagliata!

Re: eSERCIZIO c

Inviato: 15 lug 2012, 12:29
da Ianero
Giusto non avevo visto il <. Io comunque all'inizio dicevo semplicemente di sostituire l'if con il while, avrebbe costretto l'utente ad inserire nuovi numeri fin quando uno di questi non sarebbe stato minore di sei.