Exercice en c

nabilfaouzi -  
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   -
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

6 réponses

nabilfaouzi
 
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();

}


//---------------------------------------------------------------------------
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
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();
}
0
nabilfaouzi
 
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.
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
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();
}
0

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

Posez votre question
nabilfaouzi Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   1
 
dsl, ca marche pas mon gros
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
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.
  
0