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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д