Verification de mon code source

Fermé
arhiel-moore - 1 déc. 2013 à 11:27
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 3 déc. 2013 à 11:36
Bonjour,

s'il vous plait, aidez moi à vérifier ce qui ne VA pas sur mon code source. car je compile et sa signale une erreur de syntaxe à l'entrée.

le voici:
j'utilise le DEV-C++ merci


#include <stdio.h>
#include <math.h>


int i, n;
int tableau[];

int main() {

printf("Choisissez la taille de votre tableau :");
scanf("%d", &n);
printf(" \n");
printf("le tableau contient %d elements \n", n);

// remplissage du tableau
for (i=0; i<n; i++){
printf("\nentrer les elements du tableau \n");
scanf("%d", &tableau[i]);
}

printf("\n\t////////elements du tableau////////\n\n");
for (i=0;i<n;i++){

printf(" %d|", tableau[i]);
}

printf("\n\n");
printf("######### Verification si suite arithmetique ########## \n\n");

int r1, r2;
i=0;

// calcul des raisons



r1=tableau[1] - tableau[0];
printf("r1= %d \n", r1);
r2=tableau[2] - tableau[1];
printf("r2=%d \n", r2);

if(r1==r2)

{
printf("la suite est arithmetique \n");
}
else
printf("la suite n est pas arithmetique \n");

printf("\n######### Verification si suite geometrique ########## \n\n");

int q1, q2;

// calcul des raisons

q1=tableau[1] / tableau[0];
q2=tableau[2] / tableau[1];

printf("q1:%d\n", q1);
printf("q2:%d\n", q2);

if(q1==q2){

printf("\nla suite est geometrique \n\n");
}
else
printf("la suite n est pas geometrique \n\n");

printf("################ divisibilite par 11 ################# \n\n");

int SI, SP, j, dif;

//calcul des sommes impaires

j=0;

while (j<n){

SI=SI + tableau[j];
j=j+2;

}

printf("somme des chiffres de rang impaire: %d", SI);
printf("\n");

//calcul des sommes paires

j=1;
while (j<=n){

SP=SP + tableau[j];
j=j+2;

}

printf("somme des nombres de rang paire: %d \n", SP);
printf("\n");
dif= SP-SI;
printf("la difference de sp et si est: %d ", dif);

if (dif==0){
printf("\n le nombre 11 est divisible par 11 !\n");
}
else
printf("le nombre n est pas divisible par 11\n");

printf("\n################# conversion binaire ################# \n\n");

printf("##########conversion du nombre 11 en binaire###########\n\n");
int dvd=0; //le dividende
int qt=0; // le quotient
int rest=0; // le reste
int resultat[8]; //le resultat dans un tableau

//i=n;
//printf("n= %d \n", n);

dvd = 11; // le nombre a convertir
i=0;
while (dvd != 1) {

qt = dvd / 2;
rest = dvd % 2;
dvd = qt;

if (dvd == 1){

resultat[i] = dvd;
}
else
resultat[i] = rest;
i++;
//printf("%d \n", i);
}
//*************affichage du resultat***************
//i=4;

printf("resultat de la conversion: ");

for (i=0; i<4; i++){

printf(" %d", resultat[i]);

}

printf("\n\n******************* FIN DU PROGRAMME *****************\n");
printf("\t ************* MERCI !! ************\n\n");

return 0;

}
A voir également:

3 réponses

Noemie O'connor Messages postés 78 Date d'inscription mercredi 27 novembre 2013 Statut Membre Dernière intervention 12 novembre 2014 4
1 déc. 2013 à 15:34
Bonjour arhiel-moore,

N'avons nous pas une balise code sur ce serveur? Ta source serait déjà plus lisible...

De plus si tu veux une réponse rapide, je te suggère vivement d'isoler d'avantage ton problème : tout le monde n'a pas le temps de lire un pareil pavé. C'est d'autant plus ce qu'un vrai programmeur est censé faire!

Cordialement,
Noémie.
1
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 déc. 2013 à 15:38
"N'avons nous pas une balise code sur ce serveur?"
Si bien sûr ;-)

Elles sont à côté des boutons gras, italiques, et soulignés.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
1 déc. 2013 à 18:45
Bonjour,

Déjà, oublie les variables globales :-).
Ensuite, int tableau[]; est faux. Il faut que tu indiques la taille.

Il serait bien vu aussi que tu nous mettes les messages d'erreur. Ils indiquent d'où vient le problème.
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 3/12/2013 à 11:43
Salut arhiel-moore,

Vu que la taille de ton tableau dépend de la saisie de l'utilisateur, il te faut une allocation dynamique.

Quelque chose comme cela :

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int n;
    int * tableau;

    printf("Choisissez la taille de votre tableau :");
    scanf("%d", &n);
    printf(" \n");
    printf("le tableau contiendra %d éléments \n", n);

    /* allocation de la mémoire nécessaire au tableau */
    tableau = malloc(sizeof(int) * n);
    if (tableau == NULL)
    {
        printf("Erreur : pas assez de mémoire");
        return 1;
    }

    /* faire des choses merveilleuses avec le tableau */

    /* on n'utilise plus le tableau, alors on libère la mémoire */
    free(tableau);

    return 0;
}

Par exemple, comme
tableau
est un pointeur sur int,
tableau[1]
permet d'accéder au 2ème entier stocké à partir de l'adresse vers laquelle pointe
tableau
.


Dal
0