| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  26-06-2007, 17:29 | #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; } | 
|   |   | 
|  26-06-2007, 22:27 | #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.   | 
|   |   | 
|  27-06-2007, 00:13 | #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: 08:32.









 
		 
		 
		 
		





 
  
 



 
                        
                        










