Наверное ТС уже тема не интересует, но я продолжу, так для интереса.
Покромсал программу ТС, чтобы продемонстрировать одну вещь для наглядности.
А именно - нет нужды декларировать матричный указатель float **,
достаточно обыкновенный указатель float *, причем до рабочих функций передовать его как float * const.
Ну и вот на суд присяжных представляю:
Код:
#include <locale.h>
#include <stdio.h>
#include <malloc.h>
void vvod( float * const A, int n, int m )
{
float* tmpA = A;
int i, j, result;
printf("\n Vvedi dannye do matricy [%dx%d] \n", n,m);
for (i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
result = scanf ("%f", tmpA++);
if( result !=1 ) break;
}
}
tmpA = A; // обязательно переставить рабочий указатель на начало
for (i=0; i<n; i++)
{
printf("\n");
for(j=0; j<m; j++)
printf ("%f ", *tmpA++);
}
getch();
}
int rasst( float * const A, int m, int t)
{
float* tmpA = A;
float sumpr, max_sumpr=0;
int index=1, k, j;
for(k=0; k<m; k++)
{
sumpr = 0;
for(j=0; j<t; j++)
sumpr += *tmpA++;
if (sumpr > max_sumpr)
{
max_sumpr = sumpr;
index = k;
}
}
printf("\nMaxSumStroki=%f, Numer stroki=%d", max_sumpr, index+1);
return index;
}
void main()
{
setlocale( LC_ALL, "" );
int i,j,z,p; float *B;
printf("Input size z: ");
scanf("%d", &z);
printf("Input size p: ");
scanf("%d", &p);
//выделяем память для матрицы
B = (float *)malloc( z*p*sizeof(float *));
vvod( B,z,p );
rasst( B,z,p );
getch();
free(B); //освобождаем выделенную память
}