Error C2664: fmatr: невозможно преобразовать параметр 1 из 'float [4][4]' в 'float *' - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
/* Описание функции fmatr */
void fmatr(float *ptx, int m, int n, float f, float g, float c, float *pt_sx, float *pt_px, char name)
{
int i,j,imax,jmax;
float xmax,sx,px;
printf("Матрица %c размером %dx%d\n",name,m,n);
for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
{ *(ptx+i*n+j)=f+g*i+c*j;
printf("%.1f ", *(ptx+i*n+j));
}
printf("\n");
}
imax=jmax=0;
xmax=*ptx;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
if(*(ptx+i*n+j)>xmax)
{
xmax=*(ptx+i*n+j);
imax=i;
jmax=j;
}
printf("%cmax=%.1f imax=%d jmax=%d\n", name, xmax, imax, jmax);
sx=1;
for(j=0;j<=n-1;j++)
sx*=*(ptx+imax*n+j);
px=1;
for(i=0;i<=m-1;i++)
px*=*(ptx+i*n+jmax);
*pt_sx=sx;
*pt_px=px;
}
void main()
{
float a[5][5], b[3][3], c[4][4], sa, sb, sc, pa, pb, pc;
fmatr(a, 5, 5, 1.4, 2.5, -4.7, &sa, &pa, 'A');
printf("sa=%.1f pa=%.1f\n", sa, pa);
fmatr(b, 3, 3, -4.5, 6.7, 2.1, &sb, &pb, 'B');
printf("sb=%.1f pb=%.1f\n", sb, pb);
fmatr(c, 4, 4, 7.7, -5.1, 3.2, &sc, &pc, 'C');
printf("sc=%.1f pc=%.1f\n",sc,pc);
}Решение задачи: «Error C2664: fmatr: невозможно преобразовать параметр 1 из 'float [4][4]' в 'float *'»
textual
Листинг программы
fmatr( *a , 5, 5, 1.4, 2.5, -4.7, &sa, &pa, 'A'); /// fmatr( *b , 3, 3, -4.5, 6.7, 2.1, &sb, &pb, 'B'); /// fmatr( *c , 4, 4, 7.7, -5.1, 3.2, &sc, &pc, 'C'); ///