claudio19488 Inviato 2 Giugno 2009 Segnala Condividi Inviato 2 Giugno 2009 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 ? Ringrazio in anticipo per le risposte e per la pazienza.. Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 2 Giugno 2009 Segnala Condividi Inviato 2 Giugno 2009 Puoi salvarti tutti i numeri in un vettore/lista e sommare solo gli ultimi tre. Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 2 Giugno 2009 Autore Segnala Condividi Inviato 2 Giugno 2009 E senza ricorrere ai vettori?? Con for o when non si può?? Link al commento Condividi su altri siti Altre opzioni di condivisione...
iTia Inviato 3 Giugno 2009 Segnala Condividi Inviato 3 Giugno 2009 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... MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 Vi ringrazio Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 Altra domanda: Come faccio a stampare a video la somma dei vettori1 e vettore2 nel vettore3?? Link al commento Condividi su altri siti Altre opzioni di condivisione...
iTia Inviato 3 Giugno 2009 Segnala Condividi Inviato 3 Giugno 2009 Altra domanda: Come faccio a stampare a video la somma dei vettori1 e vettore2 nel vettore3?? eh? MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 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 ? ? PS: anche io sono di Brescia Link al commento Condividi su altri siti Altre opzioni di condivisione...
iTia Inviato 3 Giugno 2009 Segnala Condividi Inviato 3 Giugno 2009 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 ? ? PS: anche io sono di Brescia Semplicemente chiedi prima quanti numeri vuole inserire e dopo fai un ciclo per n volte 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.. MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 Ok ho provato come hai detto tu ma quando devo stampare gli elementi del vettore_C mi escono sempre sbagliati 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 Altre opzioni di condivisione...
iTia Inviato 3 Giugno 2009 Segnala Condividi Inviato 3 Giugno 2009 posso vedere il tuo codice sorgente? MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 #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 Link al commento Condividi su altri siti Altre opzioni di condivisione...
iTia Inviato 3 Giugno 2009 Segnala Condividi Inviato 3 Giugno 2009 esatto come hai detto tu l'errore è nella stampa finale. prova ad usare questo come printf: printf("Gli elementi del vettore_C sono:"); for(i=0;i<n;i++){ printf("%d, ",vettore_C[i]); } MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
claudio19488 Inviato 3 Giugno 2009 Autore Segnala Condividi Inviato 3 Giugno 2009 Perfetto Sei stato gentilissimo Alla prossima Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.