Aide code c++

Bonjour,

pourquoi il ya

2 error, 2 warning

dans se code

code

#include <iostream>
using namespace std;

int *divides;
int times;

void HowTimes(int x);
void pointer();
void TheMain(int x);

void main()
{
int a;

cin>> a;
TheMain(a);
for(int i=0;i<times;i++)
cout <<divides[i]<< endl;
cout << "The Many Of How Number Divides Is:\t"
<<times
<<endl;
}

void pointer( )
{
divides=new int[times];
}

void HowTimes(int x)
{
for (int i=1;i<=x;i++)
if(x%i==0) ++times;
}

TheMain(int x)
{
HowTimes(x);
pointer();
for (int i=1,int j=0;j<times,i<=x;i++)
if(x%i==0){
divides[j]=i;
j++;}
}
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut.
    Je ne vois pas d'erreur, mais ton code est très moche : il n'est pas du tout conforme aux manières habituelles de faire (la fonction pointer() par exemple !).
    Pour tes erreurs, regarde ce que te dit le compilateur, il te dit pourquoi et où tu as des erreurs.
    1. Salut,

      Je n'ai jamais de for comme cela et je ne crois pas que cela existe:

      for (int i=1,int j=0;j<times,i<=x;i++)

      De plus il n'a pas de bloc donc cela doit expliquer un warning

      TheMain(int x) 
      { 
      HowTimes(x); 
      pointer(); 
      int j=0,i=1;
      while(j<times){
         if(x%i==0){ 
            divides[j]=i; 
            j++;}
         i++; } //fin while
      }
      1. Contributeur
        J'ai déjà vu des for qui avaient la même tête, mais peut être pas exactement ça du point de vue de la déclaration.
        et plutôt que "j<times,i<=x" qui en effet peut porté à confusion pour le compilateur, utilise :
        "j<times && i<=x"
        De plus, en C/C++ les blocs {} ne sont pas obligatoire (contrairement au perl), juste est pris en compte la seul instruction suivante (if(){}else{} est considéré comme une seule instruction)
    2. if(){}else{} est considéré comme une seule instruction

      Merci de ces précision Char Snipeur je ne savais pas, dans ce cas je ne vois pas d'auter proposition que la tienne.

      Si cela ne resoud le problème, peut tu mettre les erreurs données stp fari?Ca sera plus simple.
      Mich