Error: incompatible types when assigning to type 'float' from type 'float (*) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Я написал программу. Она работала, пока я не ввел свои функции PmaxA1 и PmaxB1 (части программы, которые я внес в функции, я закомментировал ). Ошибка в строках 58 и 90. Выдает :|error: incompatible types when assigning to type 'float' from type 'float (*)(float, int)'|. Подскажите, как исправить.
#include <stdio.h>
#include <conio.h>
#define n 4
#define m 5
float PmaxA1 ( float maxA1, int i ) // нахождение максимума из массива A1.
{
  float A1[i];
  maxA1=A1[0];
  for( i=0; i<4; i++)
  if (A1[i] >= maxA1)
  maxA1 = A1[i];
}
float PmaxB1 (float maxB1, int i) // нахождение максимума из массива B1.
{
  float B1[i];
  maxB1=B1[0];
  for( i=0; i<4; i++)
  if (B1[i] >= maxB1)
  maxB1= B1[i];
}

int main()
{
int i, j;
float A[n][m], A1[3], B[n][m], B1[3], min2, maxA1, maxB1;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf("vvedite A[%d][%d]", i, j);
scanf("%f", &A[i][j]); // ввод массива A.
}
}
printf("massiv A:\n");
printf("\n");
 
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
printf("%.1f\t", A[i][j]); // вывод массива А.
printf("\n");
}
printf("\n");
printf("massiv iz min elementov massiva A(A1):\n");
for (i=0; i<n; i++) // построение и вывод одномерного массива А1 из минимальных элементов каждой строки массива А.
    {
     min2=A[i][0];
     for (j=0; j<n; j++)
      {
       if (min2 > A[i][j])
       min2=A[i][j];
       A1[i]=min2;
      }
    printf("%.1f\t", min2);
    }
printf("\n");
maxA1 = PmaxA1; // использование Функции PmaxA1.
/*maxA1=A1[0];
for( i=0; i<4; i++)
if (A1[i] >= maxA1)
maxA1 = A1[i];*/
printf("\n");
printf("maksimum iz massiva A1=%.1f\n", maxA1);
printf("\n");
printf("\nmassiv B:\n");
printf("\n");
for (i=0; i<n; i++) // построение и вывод массива В из массива А по условию.
  {
   for (j=0; j<m; j++)
    {
    if(i<=j)
    B[i][j] = A[i][j]/2;
    else
    B[i][j] = A[i][j] * A[i][j];
    printf("%.1f\t", B[i][j]);
    }
  printf("\n");
 }
printf("\n");
printf("massiv iz minimal'nih elementov massiva B:\n");
 for(i=0; i<n; i++) // построение и вывод одномерного массива B1 из минимальных элементов каждой строки массива В.
  {
   min2 = B[i][0];
    {
    for( j=0; j<m; j++)
    if (min2 > B[i][j])
    min2 = B[i][j];
    B1[i] = min2;
    printf ("%.1f\t", min2);
    }
  }
printf("\n");
/*maxB1=B1[0];
  for( i=0; i<4; i++)
  if (B1[i] >= maxB1)
  maxB1= B1[i]; */
maxB1 = PmaxB1; // использование функции PmaxB1.
printf("\n");
printf("maksimum iz massiva B1=%.1f", maxB1);
getch();
}

Решение задачи: «Error: incompatible types when assigning to type 'float' from type 'float (*)»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define n 4
#define m 5
float PmaxA1 ( float maxA1, int i ) // нахождение максимума из массива A1.
{
  float A1[i];
  maxA1 = A1[0];
     {
     for( i=0; i<4; i++)
     if (A1[i] >= maxA1)
     maxA1 = A1[i];
     }
  return maxA1;
}
float PmaxB1 (float maxB1, int i) // нахождение максимума из массива B1.
{
  float B1[i];
  maxB1 = B1[0];
  for( i=0; i<4; i++)
     {
     if (B1[i] >= maxB1)
     maxB1= B1[i];
     }
  return maxB1;
}
 
 
int main()
{
int i, j;
float A[n][m], A1[3], B[n][m], B1[3], min2, maxA1, maxB1;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf("vvedite A[%d][%d]", i, j);
scanf("%f", &A[i][j]); // ввод массива A.
}
}
printf("massiv A:\n");
printf("\n");
 
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
printf("%.1f\t", A[i][j]); // вывод массива А.
printf("\n");
}
printf("\n");
printf("massiv iz min elementov massiva A(A1):\n");
for (i=0; i<n; i++) // построение и вывод одномерного массива А1 из минимальных элементов каждой строки массива А.
    {
     min2=A[i][0];
     for (j=0; j<n; j++)
      {
       if (min2 > A[i][j])
       min2=A[i][j];
       A1[i]=min2;
      }
    printf("%.1f\t", min2);
    }
printf("\n");
maxA1 = PmaxA1(maxA1, i); // использование функции PmaxB1.
printf("\n");
printf("maksimum iz massiva A1=%.2f\n", maxA1);
printf("\n");
printf("\nmassiv B:\n");
printf("\n");
for (i=0; i<n; i++) // построение и вывод массива В из массива А по условию.
  {
   for (j=0; j<m; j++)
    {
    if(i<=j)
    B[i][j] = A[i][j]/2;
    else
    B[i][j] = A[i][j] * A[i][j];
    printf("%.1f\t", B[i][j]);
    }
  printf("\n");
 }
printf("\n");
printf("massiv iz minimal'nih elementov massiva B:\n");
 for(i=0; i<n; i++) // построение и вывод одномерного массива B1 из минимальных элементов каждой строки массива В.
  {
   min2 = B[i][0];
    {
    for( j=0; j<m; j++)
    if (min2 > B[i][j])
    min2 = B[i][j];
    B1[i] = min2;
    printf ("%.1f\t", min2);
    }
  }
printf("\n");
maxB1 = PmaxB1(maxB1, i); // использование функции PmaxB1.
printf("\n");
printf("maksimum iz massiva B1=%.2f", maxB1);
getch();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5