Error C2664: fmatr: невозможно преобразовать параметр 1 из 'float [4][4]' в 'float *' - C (СИ)

  1. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #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); }  


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');
 
         ///


Похожие ответы
  1. Привет всем. Написал программу по переводу полярных координат в декартовые, вроде всё должно работать, но мешает эта ошибка и я не могу её найти, Help!C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #include #include #include   /* Прототиа функции перевода полярных координат в декартовые    функция возвращает целое число, которое определяет место точки в декартовой системе */  int polarToCartesian(float, float, float, float);     void main() {     float x, y,r,phi;     for (int i = 0; i < 3; i++){         printf("Введите через пробел две полярных координаты/n");         scanf_s("%f%f", &r, &phi);         polarToCartesian(r, phi, &x, &y);     }     getchar(); getchar(); }   /* Описание функции перевода полярных координат в декартовые с определением расположения точки в декартовой системе */ int polarToCartesian(float r, float phi, float *x, float *y) {     int n = 0;     *x = r*cos(phi);  // Расчёт координаты х     *y = r*sin(phi);  // Расчет координаты у     printf("x=%f", &x);     printf("y=%f", &y);     /* Определения расположения точки в декартовой системе */     if (x == 0 && y == 0)         n = 0;     if (x != 0 && y == 0)         n = -1;     if (x == 0 && y != 0)         n = -2;     if (x > 0 && y > 0)         n = 1;     if (x < 0 && y > 0)         n = 2;     if (x < 0 && y < 0)         n = 3;     if (x > 0 && y < 0)         n = 4;     switch (n)     {     case -2: printf("Точка лежит на оси OY"); break;     case -1: printf("Точка лежит на оси OX"); break;     case 0: printf("Точка лежит в начале координат"); break;     case 1: printf("Тока лежит в первой четверти"); break;     case 2: printf("Тока лежит во второй четверти"); break;     case 3: printf("Точка лежит в третьей четверти"); break;     case 4: printf("Тока лежит в четвёртой четверти"); break;     }     return n; }