Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Language C probleme de compilation [ Divers / Divers ] (Keymi)

mercredi 14 juin 2006 à 21:41:25 | Language C probleme de compilation

Keymi

Quand je compile ce programme j'obtient : 15 [Warning] return type of 'main' is not `int' .
Je ne vois pas du tout comment corriger ou est l'erreur :s.
Merci de votre aide.

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define npos 5       //nombre de position
#define nchif 8      //nombre de chiffres(de 1 . 8)
#define ncmax 12        //nombre max de coups

void tirage (int []);              //prototype des fonctions
int entree(int []);
void analyse(int [],int [],int [],int[]);
//programme principal
void main()

{
int tir[npos];//combinaison tir,e par le programme
int prop[npos];//proposition du joueur
int ncoup;//compteur de coups jou,s
int bpos;//nbre de chiffre bien plac,s
int bchif;//nombre de chiffre exaxts mais mal plac,s
//initialisation
tirage(tir);//appel de la fonction tirage pour fixer une combinaison
ncoup=0;
//d,roulement du jeu
clrscr();
do
{   while(printf("\ndonner une proposition:"),entree(prop)) //appel de la
//fonction entr,e pour la saisie de la combinaison du joueur
       printf("\n****************incorect***********\n");
   analyse(prop,tir,&bpos,&bchif);
   printf("\n vous avez :%22d bien plac,    %d  bon chiffre\n",bpos,bchif);
   ncoup++;
}
while(bpos<npos && ncoup<ncmax);
//affichage des resultats
if(bpos==npos) printf("vous avez trouv, en %d coups",ncoup);
else { int i;
       printf("vous n'avez pas trouv, en %d coups\n",ncmax);
       printf("la bonne combinaison etait:");
       for(i=0;i<npos;i++) printf("%d",tir[i]);  /*affichage des donn,es
                          du tableau tir[] qui contient la bonne combinaison*/
       printf("\n");
       }
getch();

}




//*******************fonction de tirage de la combinaison secrete
************
void tirage (int tir[])
{
int i;
for(i=0;i<npos;i++)
  tir[i]=rand()/(RAND_MAX+1.) * nchif+1;
}
//*****************fonction de lecture de la proposition du joueur**********
int entree(int prop[])
{ char ch[npos+3];
  int i;
  //lecture de laposition du joueur ds chaine ch
  ch[0]=npos+1;
  cgets(ch);
          // controle de saisie
if(strlen(&ch[2])!=npos) return (-1);
for(i=2;i<npos+2;i++)
if(ch[i]<'1' || ch[i]> '1'+nchif-1) return(-1);
          //extraction des chiffres choisis
for(i=0;i<npos;i++)
prop[i]=ch[2+i]-'0';
return(0);
}
// *************fonction d'analyse de la position du joeur
void analyse(int prop[],int tir[],int bpos[],int bchif[])
{
  int tirbis[npos]; //double de la combinaison secrete
  int i,j;
  //recopie de la combinaison secrete
  for(i=0;i<npos;i++) tirbis[i]=tir[i];
  //comptage bonnes positions
  *bpos=0;
  for(i=0;i<npos;i++)
    if(prop[i]==tirbis[i])
      { (*bpos)++;
      tirbis[i]=prop[i]=0;
      }
  //comptage de bon chiffres mal plac,s
  *bchif=0;
  for(i=0;i<npos;i++)
   for(j=0;j<npos;j++)
      if(prop[i] != 0 && prop[i] ==tirbis[j])
    {  (*bchif)++;
       prop[i]=tirbis[j]=0;
     }
}




mercredi 14 juin 2006 à 21:45:59 | Re : Language C probleme de compilation

LaPatoshe

Réponse acceptée !
Salut.
 Remplaces ton void main( ) par int main( ) . Puis avant de fermer tes accolades de la boucle main, place return 0;

LaPatoshe

mercredi 14 juin 2006 à 22:01:10 | Re : Language C probleme de compilation

LaPatoshe

Resalut. J'ai essayé ton prog, mais il y avait un autre problème dans la boucle main.En réorganisant ton code (en décomposant un peu plus certaines lignes) on obtient le code suivant qui fonctionne à quelque chose près.
A+

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define npos 5       //nombre de position
#define nchif 8      //nombre de chiffres(de 1 . 8)
#define ncmax 12        //nombre max de coups

void tirage (int []);              //prototype des fonctions
int entree(int []);
void analyse(int [],int [],int [],int[]);
//programme principal
int main()

{
 int tir[npos];//combinaison tir,e par le programme
 int prop[npos];//proposition du joueur
 int ncoup;//compteur de coups jou,s
 int bpos;//nbre de chiffre bien plac,s
 int bchif;//nombre de chiffre exaxts mais mal plac,s
 //initialisation
 tirage(tir);//appel de la fonction tirage pour fixer une combinaison
 ncoup=0;
 //d,roulement du jeu
 //clrscr();
 do
 {
  while(printf("\ndonner une proposition:"),entree(prop)) //appel de la
  //fonction entr,e pour la saisie de la combinaison du joueur
        printf("\n****************incorect***********\n");
  analyse(prop,tir,&bpos,&bchif);
  printf("\n vous avez :%22d bien plac,    %d  bon chiffre\n",bpos,bchif);
  ncoup++;
 }while(bpos<npos && ncoup<ncmax);
 
 //affichage des resultats
 if(bpos==npos)
 {
  printf("vous avez trouv, en %d coups",ncoup);
 }
 else
 {
  int i;
        printf("vous n'avez pas trouv, en %d coups\n",ncmax);
        printf("la bonne combinaison etait:");
        for(i=0;i<npos;i++)
  {
   printf("%d",tir[i]);  /*affichage des donn,es
                         du tableau tir[] qui contient la bonne combinaison*/
        }
  printf("\n");
    }
 getch();
 return 0;
}

 


//*******************fonction de tirage de la combinaison secrete
//************
void tirage (int tir[])
{
int i;
for(i=0;i<npos;i++)
  tir[i]=rand()/(RAND_MAX+1.) * nchif+1;
}

  //*****************fonction de lecture de la proposition du joueur**********
int entree(int prop[])
{ char ch[npos+3];
  int i;
  //lecture de laposition du joueur ds chaine ch
  ch[0]=npos+1;
  cgets(ch);
          // controle de saisie
if(strlen(&ch[2])!=npos) return (-1);
for(i=2;i<npos+2;i++)
if(ch[i]<'1' || ch[i]> '1'+nchif-1) return(-1);
          //extraction des chiffres choisis
for(i=0;i<npos;i++)
prop[i]=ch[2+i]-'0';
return(0);
}
// *************fonction d'analyse de la position du joeur
void analyse(int prop[],int tir[],int bpos[],int bchif[])
{
  int tirbis[npos]; //double de la combinaison secrete
  int i,j;
  //recopie de la combinaison secrete
  for(i=0;i<npos;i++) tirbis[i]=tir[i];
  //comptage bonnes positions
  *bpos=0;
  for(i=0;i<npos;i++)
    if(prop[i]==tirbis[i])
      { (*bpos)++;
      tirbis[i]=prop[i]=0;
      }
  //comptage de bon chiffres mal plac,s
  *bchif=0;
  for(i=0;i<npos;i++)
   for(j=0;j<npos;j++)
      if(prop[i] != 0 && prop[i] ==tirbis[j])
    {  (*bchif)++;
       prop[i]=tirbis[j]=0;
     }
}

LaPatoshe


mercredi 14 juin 2006 à 22:06:02 | Re : Language C probleme de compilation

Keymi

Yep apparament j'ai des problemes avec la fonction clrscr , il ne doit pas trouver la bibliotheque et pareil avec cgets

mercredi 14 juin 2006 à 22:28:18 | Re : Language C probleme de compilation

SAKingdom

Membre Club
clrscr n'est plus fournie avec VC. Voici la fonction. Si tu change la couleur de ton texte cependant, je ne garantie pas son éfficacité.

void clrscr ()
{
    DWORD written;
    COORD coord = {0,0};

    FillConsoleOutputCharacter (GetStdHandle (STD_OUTPUT_HANDLE), ' ', 2000, coord, &written);
    SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

Pour cgets, il est bel et bien définie dans conio.h et fonctionne très bien pour moi.

___________________________________________
Les plus grands esprits trouvent toujours une solution


mercredi 14 juin 2006 à 22:32:47 | Re : Language C probleme de compilation

Keymi

Moi j'ai cette erreur :   [Linker error] undefined reference to `cgets'

mercredi 14 juin 2006 à 22:44:53 | Re : Language C probleme de compilation

SAKingdom

Membre Club
Réponse acceptée !
Essais de remplacer par gets.

___________________________________________
Les plus grands esprits trouvent toujours une solution




Cette discussion est classé dans : int, combinaison, prop, npos, tir


Répondre à ce message

Sujets en rapport avec ce message

Probleme pour une boucle en C++ [ par Liquid043 ] De facon simple ce que j'essaie de faire c'est de générer 6 nombre aléatoire compris entre 1 et 49  tout en evitant que dans une série deux numéros se Déroutement d'interruption sous DOS [ par cmadianga ] Bonjour à tousJe dois réaliser une application qui gère une communication série avec une liaison série RS232 par interruption sous DOS. Pour cela j'ut Problème avec TransparentBlt [ par NAVIE ] Bonjour, j'écris ce message au sujet d'une fonction appellée: TransparentBlt(). Celle ci est pratique pour dessiner un bitmap toutefois je n'arrive pa probleme : fermeture avant l'heure [ par Mc n1c1 ] Voici mon programme :#include #include using namespace std; int main(){int choix_nombre;{    cout<<"          Bi Appel d'une fonction contenue dans une dll [ par ybuchheit ] Bonjour, je souhaiterais appeler une fonction contenue dans une dll. Je n'ai pas le source de cette dll, le seul fichier dont je dispose est le .dll Soucis avec "args".... [ par courjete ] Me revoila, cette fois-ci ,j'ai un soucis avec "args". Tout d'abord, je n'ai aucune idée de ce que représente "args", "argc" ou encore "argv", donc si A en devenir FOU!!! E2094 'operator+' non implémenté dans le type 'TArrayObject3d' pour les arguments de type 'int' [ par misterxavier999 ] Bonjour à tous, Je vous expose mon problème : J'ai une classe : "TArrayObject3d", et celle-ci contient en private un vecteur qui contient des p Retourner une chaine de caractere grace a une fonction[c] [ par mitchipecket ] Bonjour,J'ai écrit un programme qui élimine d'un mot1 toutes les lettres qui apparaissent aussi dans un mot2 grace a la fonction STRSUP. Mais je n'arr Afficher un float a l'ecran, %f de printf [ par kaervas ] Bonjour, je suis en train de coder la fonction %f de printf, je galere un peu en fait! Pour le %d on utilise des modulos et des puissances decroissant Probleme avec les arbres ( operations de bases ) [ par Anysse ] Salut, alors voila j ai fais des fonctions d'ajout et d'affichage du contenu d'un arbre binaire, mais je sais pas pourkoi il affiche en plus des eleme


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.