eSERCIZIO c

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[1] eSERCIZIO c

Messaggioda Foto Utentepixx87 » 15 lug 2012, 12:07

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!!

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
0
voti

[2] Re: eSERCIZIO c

Messaggioda Foto UtenteIanero » 15 lug 2012, 12:17

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?
:shock:

Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
Messaggi: 15754
Iscritto il: 16 dic 2009, 10:10
Località: Torino - 3° pianeta del Sistema Solare
0
voti

[3] Re: eSERCIZIO c

Messaggioda Foto UtenteTardoFreak » 15 lug 2012, 12:18

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
}
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
-1
voti

[4] Re: eSERCIZIO c

Messaggioda Foto Utentepixx87 » 15 lug 2012, 12:21

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
Ultima modifica di Foto UtenteRenzoDF il 15 lug 2012, 14:44, modificato 2 volte in totale.
Motivazione: No mauiscolo, grazie!

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
0
voti

[5] Re: eSERCIZIO c

Messaggioda Foto UtenteIanero » 15 lug 2012, 12:22

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.
:shock:

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[6] Re: eSERCIZIO c

Messaggioda Foto Utentepixx87 » 15 lug 2012, 12:25

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

Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
Messaggi: 15754
Iscritto il: 16 dic 2009, 10:10
Località: Torino - 3° pianeta del Sistema Solare
2
voti

[7] Re: eSERCIZIO c

Messaggioda Foto UtenteTardoFreak » 15 lug 2012, 12:27

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.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
-1
voti

[8] Re: eSERCIZIO c

Messaggioda Foto UtenteIanero » 15 lug 2012, 12:27

Va bene anche così :ok:
:shock:

Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
Messaggi: 15754
Iscritto il: 16 dic 2009, 10:10
Località: Torino - 3° pianeta del Sistema Solare
0
voti

[9] Re: eSERCIZIO c

Messaggioda Foto UtenteTardoFreak » 15 lug 2012, 12:28

No, la condizione che ha scritto è sbagliata!
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
0
voti

[10] Re: eSERCIZIO c

Messaggioda Foto UtenteIanero » 15 lug 2012, 12:29

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.
:shock:


Torna a “Programmi applicativi: simulatori, CAD ed altro”