English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai a risolvere lo stesso problema utilizzando diversi metodi con le funzioni.
Questi 4 programmi controllano se l'intero inserito dall'utente è un numero primo.
Tutte le uscite di questi programmi sono le stesse e in ogni esempio abbiamo creato una funzione definita dall'utente. Ma i metodi adottati in ogni esempio sono diversi.
#include <stdio.h> void checkPrimeNumber(); int main() { checkPrimeNumber(); // Non vengono passati parametri return 0; } //Il tipo di restituzione è void, il che significa che non viene restituito alcun valore void checkPrimeNumber() { int n, i, flag = 0; printf("Inserisci un numero intero positivo: "); scanf("%d", &n); for(i = 2; i <= n / 2; ++i) { if(n % i == 0) { flag = 1; } } if (flag == 1) printf("%d non è un numero primo.", n); else printf("%d è un numero primo.", n); }
La funzione checkPrimeNumber() accetta l'input dell'utente, verifica se è un numero primo e lo visualizza sullo schermo.
Le parentesi vuote nella funzione main() all'interno di checkPrimeNumber(); indicano che non ci sono parametri da passare alla funzione.
Il tipo di ritorno della funzione è void. Pertanto, la funzione non restituisce alcun valore.
#include <stdio.h> int getInteger(); int main() { int n, i, flag = 0; // Non vengono passati alcuni parametri n = getInteger(); for(i = 2; i <= n / 2; ++i) { if(n % i == 0){ flag = 1; break; } } if (flag == 1) printf("%d non è un numero primo.", n); else printf("%d è un numero primo.", n); return 0; } // Restituisce l'intero inserito dall'utente int getInteger() { int n; printf("Inserisci un numero intero positivo: "); scanf("%d", &n); return n; }
n = getInteger(); Le parentesi vuote nel comando indicano che non ci sono parametri da passare alla funzione. E il valore restituito dalla funzione verrà assegnato a n.
In questo caso, la funzione getInteger() riceve l'input dell'utente e lo restituisce. La funzione main() contiene il codice per verificare se il numero è primo.
#include <stdio.h> void checkPrimeAndDisplay(int n); int main() { int n; printf("Inserisci un numero intero positivo: "); scanf("%d", &n); //n viene passato alla funzione checkPrimeAndDisplay(n); return 0; } //Il tipo di restituzione è void, il che significa che non viene restituito alcun valore void checkPrimeAndDisplay(int n) { int i, flag = 0; for(i = 2; i <= n / 2; ++i) { if(n % i == 0){ flag = 1; break; } } if (flag == 1) printf("%d non è un numero primo.", n); else printf("%d è un numero primo.", n); }
Il valore intero inserito dall'utente viene passato alla funzione checkPrimeAndDisplay().
In questo caso, la funzione checkPrimeAndDisplay() verifica se il parametro passato è un numero primo e visualizza un messaggio appropriato.
#include <stdio.h> int checkPrimeNumber(int n); int main() { int n, flag; printf("Inserisci un numero intero positivo: "); scanf("%d", &n); //n viene passato alla funzione checkPrimeNumber() //Il valore restituito viene assegnato alla variabile flag flag = checkPrimeNumber(n); if (flag == 1) printf("%d non è un numero primo.", n); else printf("%d è un numero primo.", n); return 0; } //Restituisce int dalla funzione int checkPrimeNumber(int n) { int i; for(i = 2; i <= n / 2; ++i) { if(n % i == 0) return 1; } return 0; }
L'input dell'utente viene passato alla funzione checkPrimeNumber().
La funzione checkPrimeNumber() verifica se il parametro passato è un numero primo.
Se il parametro passato è un numero primo, la funzione restituisce 0. Se il parametro passato non è un numero primo, la funzione restituisce 1. Assegnare il valore restituito alla variabile flag.
A seconda che il flag sia 0 o 1, la funzione main() stampare un messaggio appropriato.
Bene, dipende dal problema che si vuole risolvere. In questo caso, passare i parametri e restituire il valore dalla funzione è meglio (esempio 4).
La funzione deve eseguire un compito specifico. La funzione checkPrimeNumber() non accetta l'input dell'utente né visualizza messaggi appropriati. Controlla solo se il numero è un numero primo.