Программа в СИ. Массивы. Помощь с условием сама прога готова

Программа в СИ. Массивы. Помощь с условием сама прога готова
Вообщем мне надо найти произведение положительных элементов матрицы расположенных на главной диагонали и выше её и чтобы эти элементы выводились на экран. Вывод элементов я сделал, но у меня не все элементы выводит и вычисляет. Помогите правильное условие

int main()
{ int n,i,j,s=1;

int t[25][25];
printf("Vvod kol-va elementovn");
scanf("%d",&n);
randomize();
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
t[j]=random(21)-10;
printf ("M",t
[j]);
}
printf("n");
}
printf ("n");
for (i = 0; i < n; i++) {
for (j = i; j < n; j++)
if(t
[j]>0) {
printf ("M",t
[j]);
s*=t
[j];
} }
printf ("n");
printf("Proizvedenie= M",s);
getch();
return 0;
}

  • Чтоб ципляло главную диагональ и выше i>=j
  • > randomize();
    t[j]= random(21) -10;
    Это что за извращения? В стандартном Си нет таких функций!

    > Для главное диагонали условие будет i==j, а для того чтобы ещё выше главное как сделать?
    Никаких условий вообще не нужно, надо правильно организовать циклы и все:

    #include
    #include

    int main() {
    int n, r, c, a[25][25];
    double p;
    srand(time(NULL));
    printf("n? ");
    scanf("%d", &n);
    if (n < 1 || n > 25) return 0;
    printf("matrix:n");
    for (r = 0; r < n; ++r) {
    for (c = 0; c < n; ++c) printf("%""3d", a[r][c] = rand() % 9 + 1);
    putchar('n');
    }
    p = 1;
    for (r = 0; r < n; ++r) {
    for (c = r; c < n; ++c) p *= a[r][c];
    }

    printf("nproduct: %.0fn", p);
    return 0;
    }