English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous allez apprendre à utiliser les fonctions pour résoudre le même problème de différentes manières.
Le suivant est4Un programme vérifie si l'entier saisi par l'utilisateur est un nombre premier.
Tous les sorties de ces programmes sont identiques, et dans chaque exemple, nous créons une fonction définie par l'utilisateur. Mais nous utilisons une méthode différente dans chaque exemple.
#include <stdio.h> void checkPrimeNumber(); int main() { checkPrimeNumber(); //Aucun paramètre n'a été transmis return 0; } //Le type de retour est void, ce qui signifie qu'aucune valeur n'est retournée void checkPrimeNumber() { int n, i, flag = 0; printf("Entrez un entier positif: "); scanf("%d", &n); for(i=2; i <= n/2; ++i) { if(n % i == 0) { flag = 1; } } if (flag == 1) printf("%d n'est pas un nombre premier.", n); else printf("%d est un nombre premier.", n); }
La fonction checkPrimeNumber() reçoit l'entrée de l'utilisateur, vérifie si elle est un nombre premier et l'affiche à l'écran.
Les parenthèses vides dans checkPrimeNumber() à l'intérieur de la fonction main() indiquent que la fonction ne reçoit pas de paramètres.
Le type de retour de la fonction est void. Par conséquent, la fonction ne retourne aucune valeur.
#include <stdio.h> int getInteger(); int main() { int n, i, flag = 0; //Aucun paramètre n'a été transmis n = getInteger(); for(i=2; i <= n/2; ++i) { if(n % i == 0){ flag = 1; break; } } if (flag == 1) printf("%d n'est pas un nombre premier.", n); else printf("%d est un nombre premier.", n); return 0; } //Renvoie l'entier saisi par l'utilisateur int getInteger() { int n; printf("Entrez un entier positif: "); scanf("%d", &n); return n; }
n = getInteger(); Les parenthèses vides dans l'expression n = getInteger(); indiquent qu'aucun paramètre n'est passé à la fonction. Et la valeur retournée par la fonction est assignée à n.
Dans ce cas, la fonction getInteger() récupère l'entrée de l'utilisateur et la retourne. La fonction main() contient le code pour vérifier si un nombre est premier.
#include <stdio.h> void checkPrimeAndDisplay(int n); int main() { int n; printf("Entrez un entier positif: "); scanf("%d", &n); // n est passé à la fonction checkPrimeAndDisplay(n); return 0; } //Le type de retour est void, ce qui signifie qu'aucune valeur n'est retournée 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 n'est pas un nombre premier.", n); else printf("%d est un nombre premier.", n); }
La valeur entière entrée par l'utilisateur est passée à la fonction checkPrimeAndDisplay().
Dans ce cas, la fonction checkPrimeAndDisplay() vérifie si le paramètre passé est un nombre premier et affiche un message approprié.
#include <stdio.h> int checkPrimeNumber(int n); int main() { int n, flag; printf("Entrez un entier positif: "); scanf("%d", &n); //n est passé à la fonction checkPrimeNumber() //La valeur retournée est assignée à la variable flag flag = checkPrimeNumber(n); if (flag == 1) printf("%d n'est pas un nombre premier.", n); else printf("%d est un nombre premier.", n); return 0; } //Retourne int de la fonction int checkPrimeNumber(int n) { int i; for(i=2; i <= n/2; ++i) { if(n % i == 0) return 1; } return 0; }
L'entrée de l'utilisateur est passée à la fonction checkPrimeNumber().
La fonction checkPrimeNumber() vérifie si le paramètre passé est un nombre premier.
Si le paramètre passé est un nombre premier, la fonction retourne 0. Si le paramètre passé n'est pas un nombre premier, la fonction retourne1La valeur de retour est assignée à la variable flag.
Selon que flag est 0 ou1La fonction main() affiche un message approprié.
D'accord, cela dépend du problème que vous devez résoudre. Dans ce cas, il est préférable de passer des paramètres et de retourner une valeur de la fonction (exemple4)。
La fonction doit exécuter une tâche spécifique. La fonction checkPrimeNumber() ne prend pas d'entrée utilisateur et n'affiche pas de message approprié. Elle vérifie uniquement si le nombre est un nombre premier.