Hej, nie mam pojęcia czemu liczba zero nie jest wyświetlana w macierzy, ilość zer natomiast działa dobrze, i nie mam pomysłu jak to naprawić, z góry dzięki
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main()
{
int n;
printf("Podaj n\n");
scanf("%d", &n);
int **p, suma=0,sumaprawej=0, ilezer=0;
p=(int**)malloc(n*sizeof(int*));
for(int i=0; i<n; i=i+1)
{
*(p+i)=(int*)malloc(n*sizeof(int));
}
for(int i=0; i<n; i=i+1)
{
for(int j=0; j<n; j=j+1)
{
*(*(p+i)+j)=-1+rand()%(2-(-1));
printf("%3.d ", *(*(p+i)+j) );
}
printf("\n");
}
for(int i=0; i<n; i=i+1)
{
for(int j=0; j<n; j=j+1)
{
if((*(*(p+i)+j))==0)
{
ilezer=ilezer+1;
}
}
}
for(int i=0; i<n; i=i+1)
{
for(int j=0; j<n; j=j+1)
{
if(i==j)
{
suma=suma+*(*(p+i)+j);
}
}
}
for(int i=0; i<n; i=i+1)
{
for(int j=0; j<n; j=j+1)
{
if(i==(n-1-j) || i==j==n)
{
sumaprawej=sumaprawej+*(*(p+i)+j);
}
}
}
printf("Suma na przekatnej lewej: %d\n", suma);
printf("Suma na przekatnej prawej: %d\n", sumaprawej);
printf("Ilosc zer: %d\n", ilezer);
for(int i=0; i<n; i=i+1)
{
free(*(p+i));
}
free(p);
return 0;
}