Esercizio

Sk_Anonymous
Dati due vettori A e B di 20 numeri interi,scrivere la sequenza C che calcoli il massimo per ogni coppia A,B e ne visualizzi il valore se positivo.


Non riesco a scrivere la condizione,sreste illuminarmi?

Risposte
Cheguevilla
Se ho ben capito, bisogna confrontare ogni coppia $i$ di elementi di A e B.
Cioè dire se $A_i>B_i$ $AA i$ e se $Max(A_i,B_i)>0$ stampare questo numero.
Io risolverei così:
for (i=0;i<=19;i++)
{
if (a[i]>b[i])
    c[i]=a[i];
else
    c[i]=b[i];
if (c[i]>0)
    printf("%f", c[i]);
}

In questo modo, alla fine del processo hai memorizzato nel vettore c tutti i massimi e avrai stampato a video tutti i massimi positivi.

Sk_Anonymous
Se devo scrivere una sequenza che dati 2 vettori di 10 numeri float calcoli la media per ogni coppia A,B e visualizzi la media massima?

max=0;
for(i=0;i<10;i++)
media=(A+B)/2;
{
if media>max
max=media;
printf ("%f",max);

}

TomSawyer1
"ENEA84":
Se devo scrivere una sequenza che dati 2 vettori di 10 numeri float calcoli la media per ogni coppia A,B e visualizzi la media massima?

max=0;
for(i=0;i<10;i++)
media=(A+B)/2;
{
if media>max
max=media;
printf ("%f",max);

}


max=0;
for(i=0;i<10;i++)
{   
media=(A[i]+B[i])/2;
if media>max
max=media;
}
printf ("%f",max);


Con il printf fuori e una graffa prima..

Cheguevilla
La parte relativa alla media è corretta, il resto è sbagliato.
Trascurando ";" e le parentesi mancanti:
if (media<max) 
max=media; 

Bisogna invertire il segno.
Inoltre, la printf deve stare al di fuori del ciclo for.

Sk_Anonymous
Se devo invertire l'elemento A con B se il prodotto è positivo?

TomSawyer1
"cheguevilla":
La parte relativa alla media è corretta, il resto è sbagliato.
Trascurando ";" e le parentesi mancanti:
if (media<max) 
max=media; 

Bisogna invertire il segno.


Aveva scritto giusto, cioe': if (media>max).

@Enea84
Devi invertire gli elementi A con B se A*B >= 0 ?

Se e' cosi'...

int c;
if (A[i]*B[i]>=0) {
   c=A[i];
   A[i]=B[i];
   B[i]=c;
}

lorven
Una precisazione: l'inizializzazione max=0 è corretta solo se i dati sono tutti positivi. Se A e B sono di tipo FLOAT,
l'inizializzazione corretta è al più piccolo valore per un float, che, se non erro, è $-3.4*10^38$

Cheguevilla
Si, mi sono incasinato.

freddofede
"lorven":
Una precisazione: l'inizializzazione max=0 è corretta solo se i dati sono tutti positivi. Se A e B sono di tipo FLOAT,
l'inizializzazione corretta è al più piccolo valore per un float, che, se non erro, è $-3.4*10^38$


Oppure se non ricordi quel valore e vuoi concederti il lusso di un'operazione in più, inizializzi max con la prima media...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.