xkindool
Messages postés13Date d'inscriptiondimanche 18 janvier 2004StatutMembreDernière intervention18 juillet 2009
-
12 mars 2004 à 17:32
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
13 mars 2004 à 00:48
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);
}
/*-------------------------------------*/