Кто сможет помочь в Си, программа уже написана, но есть ошибка, я ее не могу найти, условие и листинг внутри
С положительных элементов матрицы N (10, 10) сформировать матрицу М (10, КМАХ) , размещая их в строках матрицы подряд, где КМАХ - максимальное число положительных элементов ленты матрицы N. Записать нули на место отсутствующих элементов. Распечатать обе матрицы в общепринятом виде.
Суть ошибки: Создает строку все равно из 10 елементов, хотя должно создавать из kmax, пишет положительные по порядку в начале строки (это верно) , затем пишет нули на место отрицательных (правильно) дописывает элементы в строку чтобы их получилось 10, т. е. забирает элементыыы из начала второй строки и вставляет их в первую (это нужно исправить) я не могу понять где допущена ошибка)
Листинг:
#include
#include
int main(int argc, char *argv[])
{
srand (time (NULL));
int i, j, kmax, x, g, k, d, N[x][x], M[10][10];
printf("Ishodnaya matritsa N:\n");
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
N[j]=rand() - rand();
printf("%d\t", N[j]);
}
}
printf("\n");
kmax=0;
for(i=0; i<10; i++)
{
d=0;
for(j=0; j<10; j++)
{
if (N[j]>0)
d++;
if (d>kmax)
kmax=d;
}
}
printf("\n\n");
for(i=0; i<10; i++)
{
g=-1;
for(j=0; j<10; j++)
{
if (N[j]>0)
{
g++;
M[g]=N[j];
}
else
for(k=g+1;k
}
}
printf("Matritsa M:\n");
for(i=0; i<10; i++)
{
for(j=0; j
}
}
system("PAUSE");
return 0;
}