Exercice en c

Bonjour, j'ai un exercice un +/- facile et que j'essaie de resoudre pdt une semaine.AIDEZ MOI SVP!!!
voici l'ennonce:
ecriver un programme qui affiche un tableau rectangulaire de nombres flottants comme ceci:
1.0 2.0 3.0 4.5 | 10.5 :/*la somme de la ligne 1
5.0 6.0 7.5 8.0 |26.5 :/*la somme de la ligne 2
9.0 10.2 11.3 12.0|42.5 :/*la somme de la ligne 3
--------------------------
15.0 18.2 21.8 24.5| 79.5/*som des lignes1.2.3 ou des colonnes 1.2.3.4
/*som colonne 1.2.3.4*/|
explication:

la derniere colonne est faite des somme des lignes, la derniere ligne des somme des colonnes, le nombre de ligne et le nombre de colonne du tableau (T)connus à l'avance.
au debut T est entièrement fait de zéros. ensuite, votre programme doit répéter indéfiniment les opérations suivantes:
*lecture de 3 nombre i,j (entier),x(flottant) . convention: i<0 indiquera la fin du programme
*remplacement de la valeur courante de T[i][j] par x et mise à jour des sommes correspondantes.

s'il vous plait je veux une reponse rapide car j'en ai besoin bcp je travaille ave Dev c++4.9.9.2
Configuration: Windows XP
Firefox 2.0.0.1

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. je vous donne une resultat qu'il peut vs aidez
    code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #define NL 3
    #define NC 4
    float t[NL + 1][NC + 1], x;
    int i, j, k;
    int main()
    { for (i = 0; i <= NL; i++)
    for (j = 0; j <= NC; j++)
    t[i][j] = 0;

    for ( ; ; ) {
    /* affichage du tableau */
    for (i = 0; i < NL; i++) {
    for (j = 0; j < NC; j++)
    printf("%8.2f ", t[i][j]);
    printf("|%8.2f\n", t[i][NC]);
    }
    for (j = 0; j < NC; j++)
    printf("---------");
    printf("+--------\n");
    for (j = 0; j < NC; j++){
    printf("%8.2f ", t[NL][j]);
    printf("|%8.2f\n", t[NL][NC]);

    /* lecture d'un coefficient */
    for (i = 0; i < NL+1; i++) {
    for (j = 0; j < NC+1; j++)
    printf("\ni j x ? ");
    scanf("%d", &i);
    if (i < 0)
    break;
    scanf("%d%f", &j, &x);

    /* mise à jour du tableau et des sommes */

    t[i][NC] = t[i][NC] - t[i][j] + x;
    t[NL][j] = t[NL][j] - t[i][j] + x;
    t[NL][NC] = t[NL][NC] - t[i][j] + x;
    t[i][j] = x;}
    } }

    printf("Au revoir...");

    getch();

    }

    //---------------------------------------------------------------------------
    1. tu avais quelques petite erreurs dans ton code je les ai corrigé si tu comprend pas des chose n'hesite pas a posé des questions ;)

      #include <stdio.h>
      #include <conio.h>
      #include <string.h>
      #define NL 3
      #define NC 4
      
      int main()
      {
          float t[NL + 1][NC + 1],x;
          int i, j;
      
          for (i = 0; i <= NL; i++)
              for (j = 0; j <= NC; j++)
                  t[i][j] = 0;
      
      /* affichage du tableau */
          for (i = 0; i < NL; i++){
              for (j = 0; j < NC; j++)
                  printf("%8.2f ", t[i][j]);
                  printf("|%8.2f\n", t[i][NC]);
              }
          for (j = 0; j < NC; j++)
              printf("---------");
              printf("+--------\n");
          for (j = 0; j < NC; j++)
              printf("%8.2f ", t[NL][j]);
              printf("|%8.2f\n", t[NL][NC]);
      
      /* lecture d'un coefficient */
          for (i = 0; i < NL; i++)
              for (j = 0; j < NC; j++){
                  printf("\nposition: %d %d x ? ",i,j);
                  scanf("%f", &x);
                  t[i][j]=x;
              }
      
      /* mise à jour du tableau et des sommes */
          for(i=0;i<NL;i++)
              for(j=0;j<NC;j++){
                  t[i][NC] += t[i][j] ;
                  t[NL][j] +=  t[i][j] ;
                  t[NL][NC] += t[NL-1][j];
                  }
              printf("\n");
          for (i = 0; i < NL; i++){
              for (j = 0; j < NC; j++)
                  printf("%8.2f ", t[i][j]);
                  printf("|%8.2f\n", t[i][NC]);
              }
          for (j = 0; j < NC; j++)
              printf("---------");
              printf("+--------\n");
          for (j = 0; j < NC; j++)
              printf("%8.2f ", t[NL][j]);
              printf("|%8.2f\n", t[NL][NC]);
              printf("Au revoir...");
      
      getch();
      }
      
      1. slt mype votre program est très juste mais l'enonce ns exige que si ns donnons à i une valeur negatif le program affiche au revoir je vous demande de lire l'ennonce et de me repondre le plus tot possible.MERCI BIEN.
        1. il faut juste demander a l'utilisateur de rentre les position tant que le tableau n'est pas rempli et voila ;)

          #include <stdio.h>
          #include <conio.h>
          #include <string.h>
          #define NL 3
          #define NC 4
          
          int main()
          {
              float t[NL + 1][NC + 1],x;
              int i, j, tab_rempli=0;
          
              for (i = 0; i <= NL; i++)
                  for (j = 0; j <= NC; j++)
                      t[i][j] = 0;
          
          /* affichage du tableau */
              for (i = 0; i < NL; i++){
                  for (j = 0; j < NC; j++)
                      printf("%8.2f ", t[i][j]);
                      printf("|%8.2f\n", t[i][NC]);
                  }
              for (j = 0; j < NC; j++)
                  printf("---------");
                  printf("+--------\n");
              for (j = 0; j < NC; j++)
                  printf("%8.2f ", t[NL][j]);
                  printf("|%8.2f\n", t[NL][NC]);
          
          /* lecture d'un coefficient */
              while(tab_rempli<12){
                      printf("\n quel est la valeur de i, j, et x ? ");
                      scanf("%d""%d""%f",&i,&j,&x);
                      tab_rempli+=1;
                      if(i<0){
                          printf("Au revoir...\n");
                          exit(-1);}
                      t[i][j]=x;
                  }
          
          /* mise à jour du tableau et des sommes */
              for(i=0;i<NL;i++)
                  for(j=0;j<NC;j++){
                      t[i][NC] += t[i][j] ;
                      t[NL][j] +=  t[i][j] ;
                      t[NL][NC] += t[NL-1][j];
                      }
                  printf("\n");
              for (i = 0; i < NL; i++){
                  for (j = 0; j < NC; j++)
                      printf("%8.2f ", t[i][j]);
                      printf("|%8.2f\n", t[i][NC]);
                  }
              for (j = 0; j < NC; j++)
                  printf("---------");
                  printf("+--------\n");
              for (j = 0; j < NC; j++)
                  printf("%8.2f ", t[NL][j]);
                  printf("|%8.2f\n", t[NL][NC]);
          
          getch();
          }
          
          1. chez moi ça marche...

            "i" n'est jamais negatif voici le resultat :

                0.00     0.00     0.00     0.00 |    0.00
                0.00     0.00     0.00     0.00 |    0.00
                0.00     0.00     0.00     0.00 |    0.00
            ------------------------------------+--------
                0.00     0.00     0.00     0.00 |    0.00
            
             quel est la valeur de i, j, et x ? 0 0 1
            
             quel est la valeur de i, j, et x ? 0 1 2
            
             quel est la valeur de i, j, et x ? 0 2 3
            
             quel est la valeur de i, j, et x ? 1 0 1
            
             quel est la valeur de i, j, et x ? 1 1 2
            
             quel est la valeur de i, j, et x ? 1 2 3
            
             quel est la valeur de i, j, et x ? 0 3 4
            
             quel est la valeur de i, j, et x ? 1 3 4
            
             quel est la valeur de i, j, et x ? 2 0 1
            
             quel est la valeur de i, j, et x ? 2 1 2
            
             quel est la valeur de i, j, et x ? 2 2 3
            
             quel est la valeur de i, j, et x ? 2 3 4
            
                1.00     2.00     3.00     4.00 |   10.00
                1.00     2.00     3.00     4.00 |   10.00
                1.00     2.00     3.00     4.00 |   10.00
            ------------------------------------+--------
                3.00     6.00     9.00    12.00 |   30.00
            
            Process returned 13 (0xD)   execution time : 98.893 s
            Press any key to continue.
            


            si on a un "i" negatif :

                0.00     0.00     0.00     0.00 |    0.00
                0.00     0.00     0.00     0.00 |    0.00
                0.00     0.00     0.00     0.00 |    0.00
            ------------------------------------+--------
                0.00     0.00     0.00     0.00 |    0.00
            
             quel est la valeur de i, j, et x ? 0 1 2
            
             quel est la valeur de i, j, et x ? -1 2 3
            Au revoir...
            
            Process returned -1 (0xFFFFFFFF)   execution time : 16.163 s
            Press any key to continue.