O
ozolli098
Задача такова: Найти количество положительных элементов между первым и последним нулевыми значениями каждого столбца целочисленной матрицы А. Результаты записать в одномерный массив S. Для столбцов матрицы, содержащих менее двух нулевых элементов, напечатать сообщения с номерами строк, при этом в результирующий массив записать (-1). Собственно код моей программы прикреплю ниже(P.S. Пишу на Visual studio 2008). Программа не работает, выводит всегда "-1", помогите, пожалуйста, найти ошибку или поправить стратегию моего размышления.
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "math.h"
int _tmain(int argc, _TCHAR* argv[])
{int i, j, m, n,g,h,o,u,k; double mas [100][100],s[100];
printf("Vvedi kol-vo strok=");
scanf_s("%ld", &m);
printf("Vvedi kol-vo stolbchov=");
scanf_s("%ld", &n);
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
{printf("mas[%d,%d]= ",i+1,j+1);
scanf_s("%lf", &mas[j]);
}
for(j=0;j<n;j++)
{bool find; k=0;
for (i=0;i<m;i++)
{if (mas[j]= 0 && !find) find=true;
else if (find && (mas[j]>0)) k++;
else if (find && (mas[j]=0)) break;}
if (k>0) s[j]=k;
else s[j]=-1;
printf("s[%ld]=%lf\n",j+1,s[j]);
}
getch();
return 0;
}
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "math.h"
int _tmain(int argc, _TCHAR* argv[])
{int i, j, m, n,g,h,o,u,k; double mas [100][100],s[100];
printf("Vvedi kol-vo strok=");
scanf_s("%ld", &m);
printf("Vvedi kol-vo stolbchov=");
scanf_s("%ld", &n);
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
{printf("mas[%d,%d]= ",i+1,j+1);
scanf_s("%lf", &mas[j]);
}
for(j=0;j<n;j++)
{bool find; k=0;
for (i=0;i<m;i++)
{if (mas[j]= 0 && !find) find=true;
else if (find && (mas[j]>0)) k++;
else if (find && (mas[j]=0)) break;}
if (k>0) s[j]=k;
else s[j]=-1;
printf("s[%ld]=%lf\n",j+1,s[j]);
}
getch();
return 0;
}