Probleme sur mon programme c

amar232323 Messages postés 4 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
int i=0; int j=0;
int Num[999];
for(i=0;i<999;i++) {
Num[i]=i;
}
//num impair
int Tab[5][4];
for(i=0;i<5;i++) {
for(j=0;j<4;j++) {
if (Num[i]%2!=0){
Tab[i][j]= Num[i];
}}}

int T[20]; int k; int count=0;
for(i=0;i<5;i++) {
for(j=0;j<4;j++) {

count++;
while(k<20){
if (Tab[i][j]%k!=0){
T[count]= Tab[i][j];
}k++;
}k=0;}
}
//print T
printf("T[20]:\n");
for(i=0;i<20;i++) {
printf("T[%d], ",i);
}
printf("\n");
printf("\n");
//print Tab
printf("Tab[4][5]:\n");
for(i=0;i<5;i++) {
for(j=0;j<4;j++) {
printf("%d ",Tab[i][j]);
if (j==2){
printf("\n");
} }
}
printf("\n");
printf("\n");
//printf("%d ",)

5 réponses

  1. telliak Messages postés 3652 Date d'inscription   Statut Membre Dernière intervention   885
     
    Salut,
    Quel problème ?????
    0
  2. amar232323 Messages postés 4 Statut Membre
     
    le code blocks ma donne un probleme de cesse de fonctionner
    0
  3. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,

    Un code, ça doit être posté entre les balises (il faut utiliser la flèche à droite du bouton [<>] et choisir
    c
    ).
    Il faut aussi indiquer précisément le ou les erreurs que tu obtiens avec quelques marques de politesse nous ne somme pas des machines.
    Il faut aussi nous fournir le code complet. Si c'est le cas ici, ton code n'a pas de sens, le code ne peut se dérouler qu'à l'intérieur de fonctions. Il y a toujours la fonction
    main()
    qui doit contenir le code principal et surement d'autre fonctions à créer.

    Cordialement
    0
    1. mounder_naili
       
      j'ai le meme problème moi aussi quand j'exécute le programme le compilateur reste noir et ne donne rien !
      0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Ca veut dire quoi :

    le code blocks ma donne un probleme de cesse de fonctionner

    ?????
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Bonjour amar232323,

    Alors, si je mets le code posté dans un fichier .c avec une fonction main :

    #include <stdio.h>
      
    int main(void) {
    
        int i=0; int j=0;
        int Num[999];
        for(i=0;i<999;i++) {
            Num[i]=i;
        }
        //num impair
        int Tab[5][4];
        for(i=0;i<5;i++) {
            for(j=0;j<4;j++) {
                if (Num[i]%2!=0){
                    Tab[i][j]= Num[i];
                }}}
    
        int T[20]; int k; int count=0;
        for(i=0;i<5;i++) {
            for(j=0;j<4;j++) {
    
                count++;
                while(k<20){
                    if (Tab[i][j]%k!=0){
                        T[count]= Tab[i][j];
                    }k++;
                }k=0;}
        }
        //print T
        printf("T[20]:\n");
        for(i=0;i<20;i++) {
            printf("T[%d], ",i);
        }
        printf("\n");
        printf("\n");
        //print Tab
        printf("Tab[4][5]:\n");
        for(i=0;i<5;i++) {
            for(j=0;j<4;j++) {
                printf("%d ",Tab[i][j]);
                if (j==2){
                    printf("\n");
                } }
        }
        printf("\n");
        printf("\n");
        //printf("%d ",) 
    
        return 0;
    }


    que je le compile avec gcc :

    $ gcc -Wall -g 36829379.c
    36829379.c: In function ‘main’:
    36829379.c:18:6: warning: variable ‘T’ set but not used [-Wunused-but-set-variable]
      int T[20]; int k; int count=0;
          ^


    j'ai un message d'avertissement qui indique que le tableau T n'est pas utilisé. Donc, tu mets des valeurs dans T, mais tu n'en fais rien.

    puis si j'exécute, j'ai un plantage avec une exception, qui est peut être similaire à ce que tu constates aussi de ton côté :

    $ ./a.out 
    Exception en point flottant
    


    si j'exécute le programme avec valgrind, il me dit, plus précisément :

    $ valgrind ./a.out 
    ==8826== Memcheck, a memory error detector
    ==8826== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==8826== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
    ==8826== Command: ./a.out
    ==8826== 
    ==8826== Conditional jump or move depends on uninitialised value(s)
    ==8826==    at 0x109261: main (36829379.c:23)
    ==8826== 
    ==8826== 
    ==8826== Process terminating with default action of signal 8 (SIGFPE)
    ==8826==  Integer divide by zero at address 0x100400201F
    ==8826==    at 0x10922B: main (36829379.c:24)
    ==8826== 
    ==8826== HEAP SUMMARY:
    ==8826==     in use at exit: 0 bytes in 0 blocks
    ==8826==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
    ==8826== 
    ==8826== All heap blocks were freed -- no leaks are possible
    ==8826== 
    ==8826== For counts of detected and suppressed errors, rerun with: -v
    ==8826== Use --track-origins=yes to see where uninitialised values come from
    ==8826== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
    Exception en point flottant


    Valgrind nous dit que :
    • en ligne 23 où tu as
      while(k<20){
      tu fais dépendre la sortie de boucle de
      k
      , que tu n'as pas initialisé, et qui peut donc valoir n'importe quoi
    • en ligne 24, dans mon cas,
      k
      semble valoir
      0
      (il peut valoir n'importe quoi, car il n'est pas initialisé), et
      Tab[i][j]%k
      tente de renvoyer le reste de la division entière par zéro, ce qui provoque l'exception.


    Dal
    0