Manipulation des pointeurs dans les tableaux
Bonjour,
je viens vers vous car j'ai besoin d'aide !
Voila : je fais un exercice qui doit calculer la somme des éléments en-dessous de la diagonale d'un tableau carré et afficher cette somme.
La consigne est d'utiliser des pointeurs pour effectuer cette tâche.
Pourriez-vous m'aider car je ne comprends pas pourquoi un de mes pointeurs (pt2) ne ce pointe pas au bon endroit.
Merci d'avance.:calim2:
Voici mon code entier la partie qui pose souci c'est celle à partir de la boucle de calcul:?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NMAX 5
#define MMAX 5
int main()
{
int tab[NMAX][MMAX];
int i,j=0,n,m;
int *ptab,*pt1,*pt2;
int somme=0;
srand(time(NULL));
do
{
printf("entre la dimension de ton tableau carre: \n");
fflush(stdin);
scanf("%d",&n);
}while(n<0||n>20);
m=n;
ptab=tab[0];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
*ptab=rand()%9;
ptab++;
}
}
m=n;
ptab=tab[0];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d",*ptab);
ptab++;
}
printf("\n");
}
//boucle de calcul
m=n;
ptab=tab[0];
for(i=0;i<n;i++)//colonne
{
pt1=ptab+i;//parcour les colonnes
pt2=ptab+(i+1)*n;//parcour les lignes fonctionne en partie
// pt2=ptab+(i+1)*MMAX;//ne fonctionne pas me donne des valeurpointé erronées
for(j=i+1;j<m;j++)//ligne
{
somme+=*pt2;
pt1++;
pt2=pt2+MMAX;
}
}
printf("la somme est de %d",somme);
return 0;
} |