|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2007
Messaggi: 62
|
[C] Dubbi esercizio prova d'esame
Per chi si vuole cimentare riporto la soluzione di un esame che guardo e riguardo ma di cui non capisco bene tutte le istruzioni.
Scrivere un programma C che: -Inserisce in un vettore VETT di 20 interi una sequenza di numeri letti da tastiera. Il caricamento del vettore deve terminare al 20-esimo numero o quando è inserito il primo numero strettamente inferiore a 2. -Memorizza un secondo vettore di nome PRIMI quei numeri di VETT che sono primi. -Memorizza in un terzo vettore di nome GRANDI gli elementi di primi strettamente > di 50. #include <stdio.h> #include <stdlib.h> typedef int VETTORE[20]; void stampa(int *v, int l, char *s) /*da testo questa funzione è indispensabile?*/ {int i; printf("%s: ",s); for(i=0; i<l; i++) printf("%3d\t",v[i]); printf("\n"); } int primo(int v) { int i; for( i=2; i<v; i++) if (v%i == 0) return 0; return 1; } int main() { VETTORE VETT={0}, PRIMI={0}, GRANDI={0}; int i,j,k,v; scanf("%d",&v); for(j=0,i=0;i<20 && v>=2; i++) { VETT[i] = v; if(primo(VETT[i])) {PRIMI[j]=VETT[i]; j++;} scanf("%d",&v); /*perchè un'altra scanf?*/ } for(k=0, i=0; i<j; i++) if(PRIMI[i] > 50) {GRANDI[k] = PRIMI[i]; k++;} stampa(VETT,20,"vettore iniziale"); stampa(PRIMI,j,"primi"); stampa(GRANDI,k,"maggiori 50"); system("pause"); return 0; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
La funzione stampa non è indispensabile ai fine della risoluzione di un programma simile, però in questo caso è comoda.
![]() Senza la seconda scanf non potresti acquisire i valori successivi da inserire nell'array VETT. ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2007
Messaggi: 62
|
Ok dovrei aver capito anche questa.. sono un pò acerbo del linguaggio e si vede..
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:45.