Bonjour, mon programme fonctionne mais lors de la compilation j'ai des warnings que j'aimerais débugger..
Voici le message d'erreur à la compilation :
[kindool@kindool tpc4]$ gcc tpc4.c
tpc4.c:126: warning: type mismatch with previous implicit declaration
tpc4.c:47: warning: previous implicit declaration of `proc1'
tpc4.c:126: warning: `proc1' was previously implicitly declared to return `int'
tpc4.c:137: warning: type mismatch with previous implicit declaration
tpc4.c:50: warning: previous implicit declaration of `proc2'
tpc4.c:137: warning: `proc2' was previously implicitly declared to return `int'
tpc4.c:149: warning: type mismatch with previous implicit declaration
tpc4.c:53: warning: previous implicit declaration of `proc3'
tpc4.c:149: warning: `proc3' was previously implicitly declared to return `int'
et maintenant voici le code :
#include <stdio.h>
main(){ int sommepp=0; char chx; int n=0; int result; /*------appel des fonctions ou procédures------*/ void fct() { int choix; int res; printf("[1] : Utiliser While\n[2] : Utiliser Do-While\n[3] : Utiliser For\nVotre choix: "); scanf("%d",&choix); while(n==0) { printf("Veuillez entrer n (on effectura le calcul !n, avec n>0): \n"); scanf("%d",&n); } printf("Voici la somme des %d premiers entiers: ",n);//beuhhhhhh switch (choix) { case 1: res=fct1(n); printf("%d\n",res); break; case 2: res=fct2(n); printf("%d\n",res); break; case 3: res=fct3(n); printf("%d\n",res); break; } }
void proc() { int choix; int res=0; printf("[1] : Utiliser While\n[2] : Utiliser Do-While\n[3] : Utiliser For\nVotre choix: "); scanf("%d",&choix); while(n==0) { printf("Veuillez entrer n (on effectura le calcul !n, avec n>0): \n"); scanf("%d",&n); } // printf("Voici la somme des %d premiers entiers: ");//disponible dans chaque procédure switch (choix) { case 1: proc1(n,res); break; case 2: proc2(n,res); break; case 3: proc3(n,res); break; } } /*---------------------------------------------*/
//Début des instructions de main printf("[f] ou [F] : Utiliser une fonction\n[p] ou [P] : Utiliser une procédure\nVotre choix: "); scanf("%c",&chx);
switch (chx) { case 'f': fct(); break; case 'F': fct(); break; case 'p': proc(); break; case 'P': proc(); break; default: ("goodbye..\n"); } } //Fin de main
// Définition des fonctions /*----------------------------------*/ int fct1(int a) { int i=0; int somme=0;
while (i<a+1) { somme=somme+i; i++; } return somme; } /*----------------------------------*/ int fct2(int a) {
int i=0; int somme=0;
do { somme=somme+i; i++; } while (i<a+1); return somme; } /*----------------------------------*/ int fct3(int a) {
int i; int somme=0;
for(i=0;i<a+1;i++){ somme=somme+i; } return somme; } /*----------------------------------*/
//Défintition des procédures /*----------------------------------*/ void proc1(int a,int b) {
int i=0;
while (i<a+1) { b=b+i; i++; } printf("Voici la somme des %d premiers entiers: %d\n",a,b); } /*------------------------------------*/ void proc2(int a, int b){
int i=0;
do { b=b+i; i++; } while (i<a+1); printf("Voici la somme des %d premiers entiers: %d\n",a,b); } /*-------------------------------------*/ void proc3(int a, int b){
int i;
for(i=0;i<a+1;i++){ b=b+i;; } printf("Voici la somme des %d premiers entiers: %d\n",a,b); } /*-------------------------------------*/
|
Merci à vous si vous pouvez m'aider.