rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Aide appel de fonctions (langage C)

paul75, le mardi 9 novembre 2004 à 23:11:57
Bonsoir,
voila, je doit saisir les renseignements parmi :
code produit (chaine de 3 caractere)
quantite vendue (entier)
on s'arrete des qu'on entre XXX pour code-produit.

voici ce que j'ai essaye de faire :
#include <stdio.h>
#include <string.h>
typedef char CH3[4];

void main()
{
	CH3 cdeprod;
	int qte;
	char SAISIE(CH3,int);
	printf("Entrez un code-produit :\n");
	gets(cdeprod);
	while(strcmp(cdeprod,"XXX")!=0)
	{
		char SAISIE(CH3,int);
		gets(cdeprod);
	}
}


//fonction saisie
char SAISIE(CH3 cdeprod,int qte)
{
	printf("Entrez une quantite");
	scanf("%d",qte);
	return(qte);
}


voila j'arrive pas a declarer la fonction, elle ne veut pas !
j'ai du oublier un truc mais je ne saurais le dire.

Merci
Répondre à paul75  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
beeboo, le mardi 9 novembre 2004 à 23:25:12
Dans ton code tu déclares 2 fois SAISIE, en fait à la 3ème ligne de ton main, en faisant précéder SAISIE(CH3,int); par char, c'est une redéclaration que tu fais, enlèves le char de cette ligne et c'est OK.

#include <stdio.h>
#include <string.h>
typedef char CH3[4];

void main()
{
	CH3 cdeprod;
	int qte;
	char  SAISIE(CH3,int);
	printf("Entrez un code-produit :\n");
	gets(cdeprod);
	while(strcmp(cdeprod,"XXX")!=0)
	{
		char SAISIE(CH3,int);
		gets(cdeprod);
	}
}


//fonction saisie
char SAISIE(CH3 cdeprod,int qte)
{
	printf("Entrez une quantite");
	scanf("%d",qte);
	return(qte);
}
Répondre à beeboo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
beeboo, le mardi 9 novembre 2004 à 23:27:11
J'oubliais, c'est la même chose dans la boucle while, bien entendu :-) (suis-je distrait.)
Répondre à beeboo

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
paul75, le mardi 9 novembre 2004 à 23:31:04
bonsoir et merci,
le probleme c'est que si je l'enlève, il me met à la compilation 6 problemes :
le premier me signale une "error C2065: 'SAISIE' : undeclared identifier"
ensuite :
"error C2275: 'CH3' : illegal use of this type as an expression"

voila

merci infiniment
Répondre à paul75

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Guki, le mercredi 10 novembre 2004 à 00:06:16
Salut!

Manque le prototype de la fonction SAISIE avant la définition de la fonction main. Pas de type devant l'application d'une fonction seulement pendant sa définition et la déclaration du prototype. De plus tu ne mets pas en argument les noms des variables que tu as déclarés précédemment.

Observe la différence.

#include <stdio.h>
#include <string.h>

typedef char CH3[4];

/* prototype de saisir */

char saisir(CH3 cdeprod, int qte);

int main(void)
{
	CH3 cdeprod;
	int qte;

	/*
		ici on passe cedprod et qte en argument
		on applique la fonction pas besoin de char
	*/

	saisir(cdeprod, qte);
	printf("Entrez un code-produit :\n");
	gets(cdeprod);
	while(strcmp(cdeprod, "XXX") != 0)
	{

	/*
		même chose ici
	*/
		saisir(cdeprod, qte);
		gets(cdeprod);
	}

	/*
		on retourne la valeur de la macro qui vaut 0
	*/

	return EXIT_SUCCESS;
}


/* fonction saisir */

char saisir(CH3 cdeprod, int qte)
{
	printf("Entrez une quantite");
	
	/*
		ne pas oublier l'adresse & pour scanf
	*/

	scanf("%i", &qte);
	return qte;
}


Je pense que ça passera mieux ainsi bien que je n'ai pas essayé de comprendre le code. ;-)
Répondre à Guki

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
beeboo, le mercredi 10 novembre 2004 à 00:07:56
Pas mieux :)
Répondre à beeboo

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 LeSousss, le mercredi 10 novembre 2004 à 10:49:02
Salut, je ne suis pas vraiment sur mais essaye çà :

#include <stdio.h>
#include <string.h>

typedef char CH3[4];

//Je ne sais pas pourquoi tu veut envoyer cdeprod et qte dans ta fonction puisque tu ne les utilise pas
//char saisir(CH3 cdeprod, int qte);
//devient
char saisir();

int main(void)
{
CH3 cdeprod;
int qte;
//dans ta fonction tu retourne qte mais tu n'a pas de variable qui reçoit cette valeure donc :
qte = saisir();
printf("Entrez un code-produit :\n");
gets(cdeprod);
while(strcmp(cdeprod, "XXX") != 0)
{
qte = saisir();
gets(cdeprod);
}

return 0;
}

char saisir(CH3 cdeprod, int qte)
{
printf("Entrez une quantite");
scanf("%d", &qte);
return qte;
}

Voila dis moi si ca marche !
Répondre à LeSousss
Logiciels pertinents trouvés dans les téléchargements
Télécharger Easy CD-DA Xtractor 11_5_3 trialEasy CD-DA Xtractor - Easy CD-DA Xtractor est un extracteur de CD audio pour Windows (CD ripper) capable d'encoder directement aux formats MP3 et...Catégorie: Extraction
Licence: Demo
Télécharger Casc'ADSL 0.99 build 4209Casc'ADSL - Casc'ADSL est un outil destiné aux Internautes se connectant via le service d'accès distant et désireux de maintenir leur...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger MOREFUNC (Macro complémentaire EXCEL) 5.06MOREFUNC (Macro complémentaire EXCEL) - Morefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « aide appel de fonctions (langage C) »