Vai al contenuto

[C ] Aiuto su programma..


Messaggi raccomandati

Ciao a tutti

sono di nuovo in crisi su un altro semplice (per voi) programma..

Il testo mi chiede di inserire una sequenza di numeri positivi (zero per terminare) e di restituire la somma degli ultimi 3 numeri (zero escluso)..

    #include<stdio.h>

int main(){
   int n,somma,i;
   printf("Inserisci una serie di numeri positivi, 0 per terminare\n");


   somma=0;
   i=0;
   scanf("%d",&n);
   while (n>0) {

       somma=somma+n;
       i++;
       scanf("%d",&n);
   }

   printf("%d",somma);
} 

Fino qui ho trovato il modo di ottenere la somma dei numeri, ma come faccio a dire al programma di sommare solo gli ultimi 3 ? help.gif

Ringrazio in anticipo per le risposte e per la pazienza..

Link al commento
Condividi su altri siti

int a=0;
int b=0;
int c=0;
boolean esci =false;

for(i=0;esci==false;i++){
  scanf("%d",&n);
  if(n>0)
       a=n;
  else{
       esci=true;
       return;
  }
  scanf("%d",&n);
  if(n>0)
       b=n;
  else{
       esci=true;
       return;
  }
  scanf("%d",&n);
  if(n>0)
       c=n;
  else{
       esci=true;
       return;
  }

}

printf("%d",a+b+c);

Ma fidati usando un'array sarebbe molto più logico, semplice, corretto e performante...:shock:

MacBook Pro 13''

iPhone 3G 4.0.2 (8A400)

Il mio Twitter

Link al commento
Condividi su altri siti

Allora l'esercizio mi chiede: ricevi in ingresso due vettori vet_1 e vet_2 ognuno di 10 elementi interi, e produca in uscita un vettore vet_3 in cui ogni elemento sia la somma degli elementi dei vettori ricevuti.

Mentre come variante all'esercizio ho: ...produca in uscita un vettore vet_3 in cui ogni elemento sia il minimo degli elementi di ugual posizione dei vet_1 e vet_2.

#include<stdio.h>

int main (){

   int vettore_A[5],vettore_B[5],vettore_C[5];
   int i;

   printf("Inserisci i numeri del vettore_A\n");
   for (i=0;i<5;i++)
       scanf("%d",&vettore_A[i]);

   printf("Inserisci i numeri del vettore_B\n");
   for (i=0;i<5;i++)
       scanf("%d",&vettore_B[i]);


   if  (vettore_A[0] >=vettore_B[0] )
        vettore_C[0] = vettore_B[0];
   else vettore_C[0] = vettore_A[0];

   if  (vettore_A[1] >=vettore_B[1] )
       vettore_C[1] = vettore_B[1];
   else vettore_C[1] = vettore_A[1];

   if  (vettore_A[2] >=vettore_B[2] )
       vettore_C[2] = vettore_B[2];
   else vettore_C[2] = vettore_A[2];

   if  (vettore_A[3] >=vettore_B[3] )
       vettore_C[3] = vettore_B[3];
   else vettore_C[3] = vettore_A[3];

   if  (vettore_A[4] >=vettore_B[4] )
       vettore_C[4] = vettore_B[4];
   else vettore_C[4] = vettore_A[4];

   printf("Gli elementi del vettore_C sono  {%d, %d, %d, %d, %d}\n",vettore_C[0],vettore_C[1],vettore_C[2],vettore_C[3],vettore_C[4]);
}

Come vedi il programma funziona ma sicuramente con un ciclo funzionerebbe alla grande ma non riesco a farlo! Cioè se mi danno vettori da 50 che faccio mi sparo ? ?:shock:

PS: anche io sono di Brescia :ghghgh:

Link al commento
Condividi su altri siti

Allora l'esercizio mi chiede: ricevi in ingresso due vettori vet_1 e vet_2 ognuno di 10 elementi interi, e produca in uscita un vettore vet_3 in cui ogni elemento sia la somma degli elementi dei vettori ricevuti.

Mentre come variante all'esercizio ho: ...produca in uscita un vettore vet_3 in cui ogni elemento sia il minimo degli elementi di ugual posizione dei vet_1 e vet_2.

#include<stdio.h>

int main (){

   int vettore_A[5],vettore_B[5],vettore_C[5];
   int i;

   printf("Inserisci i numeri del vettore_A\n");
   for (i=0;i<5;i++)
       scanf("%d",&vettore_A[i]);

   printf("Inserisci i numeri del vettore_B\n");
   for (i=0;i<5;i++)
       scanf("%d",&vettore_B[i]);


   if  (vettore_A[0] >=vettore_B[0] )
        vettore_C[0] = vettore_B[0];
   else vettore_C[0] = vettore_A[0];

   if  (vettore_A[1] >=vettore_B[1] )
       vettore_C[1] = vettore_B[1];
   else vettore_C[1] = vettore_A[1];

   if  (vettore_A[2] >=vettore_B[2] )
       vettore_C[2] = vettore_B[2];
   else vettore_C[2] = vettore_A[2];

   if  (vettore_A[3] >=vettore_B[3] )
       vettore_C[3] = vettore_B[3];
   else vettore_C[3] = vettore_A[3];

   if  (vettore_A[4] >=vettore_B[4] )
       vettore_C[4] = vettore_B[4];
   else vettore_C[4] = vettore_A[4];

   printf("Gli elementi del vettore_C sono  {%d, %d, %d, %d, %d}\n",vettore_C[0],vettore_C[1],vettore_C[2],vettore_C[3],vettore_C[4]);
}

Come vedi il programma funziona ma sicuramente con un ciclo funzionerebbe alla grande ma non riesco a farlo! Cioè se mi danno vettori da 50 che faccio mi sparo ? ?:shock:

PS: anche io sono di Brescia :ghghgh:

Semplicemente chiedi prima quanti numeri vuole inserire e dopo fai un ciclo per n volte :cry:

tipo così :

int n;
printf("Quanti numeri vuoi inserire?\n");
scanf("%d",&n);
printf("Inserisci i numeri del vettore_A\n");
   for (i=0;i<n;i++)
       scanf("%d",&vettore_A[i]);
printf("Inserisci i numeri del vettore_B\n");
   for (i=0;i<n;i++)
       scanf("%d",&vettore_B[i]);

for(i=0;i<n;i++){
if (vettore_A[i] >=vettore_B[i] )
        vettore_C[i] = vettore_B[i];
   else vettore_C[i] = vettore_A[i];
}

e così via..:mad:

MacBook Pro 13''

iPhone 3G 4.0.2 (8A400)

Il mio Twitter

Link al commento
Condividi su altri siti

Ok ho provato come hai detto tu ma quando devo stampare gli elementi del vettore_C mi escono sempre sbagliati :shock::ghghgh:

Quanti numeri vuoi inserire?
10
Inserisci i numeri del vettore_A
1
2
3
4
5
6
7
8
8
9
Inserisci i numeri del vettore_B
2
3
5
2
1
3
7
5
9
11
Gli elementi del vettore_C sono 2, 0, 0, 10, 1,2, 3, 2,1, 3
logout

[Processo completato]

Link al commento
Condividi su altri siti

#include <stdio.h>


int main() {
int vettore_A[10], vettore_B[10],vettore_C[10];
   int i,n;

printf("Quanti numeri vuoi inserire?\n");
   scanf("%d",&n);
   printf("Inserisci i numeri del vettore_A\n");
   for (i=0;i<n;i++)
   scanf("%d",&vettore_A[i]);
   printf("Inserisci i numeri del vettore_B\n");
   for (i=0;i<n;i++)
scanf("%d",&vettore_B[i]);

   for(i=0;i<n;i++)

{
if (vettore_A[i] >=vettore_B[i] )
	vettore_C[i] = vettore_B[i];
   else vettore_C[i] = vettore_A[i];
}

printf("Gli elementi del vettore_C sono %d, %d, %d, %d, %d,%d, %d, %d,%d, %d\n",vettore_C[i]);
}

Temo che l'errore sia nella stampa finale, ma non ho ancora capito bene come fare :shock::confused:

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...