Как исправить ошибку - индификатор p неопределен - C (СИ)
Формулировка задачи:
Что нужно вписать чтобы он был определен
// вап.cpp: определяет точку входа для консольного приложения. // #include <stdio.h> #include "stdafx.h" #include <iostream> double ** Input(int rows, int cols) { double **p; p = (double**)malloc(rows * sizeof(double*)); for (int i = 0; i<rows; i++) { p[i] = (double*)malloc(cols * sizeof(double)); for (int j = 0; j < cols; j++) { printf("A[%d][%d]= ", i, j); scanf("%lf", &p[i][j]); } } return p; } double ** max(int m) { double max; double **p; max = p[0][m - 1]; //указывает что здесь ошибка for (int i = 0; ((m - 1) / 2) < i < m; i++) { for (int j = i; j < m; j++) { if (p[i][j] > max) { max = p[i][j]; } } } for (int j = 0; ((m - 1) / 2) < j < m; j++) { for (int i = m - 1 - j; i >= 0; i--) { if (p[i][j] > max) { max = p[i][j]; } } } printf("%8.4lf ", max); return p; } int main() { int m; double **f; double **mas; system("chcp 1251"); system("cls"); printf("Введите размерность квадратной матрицы: "); scanf("%d", &m); printf("Ввод матрицы А\n"); mas = Input(m, m); printf("максимальное значение \n"); f = max(m); getchar(); getchar(); }
Решение задачи: «Как исправить ошибку - индификатор p неопределен»
textual
Листинг программы
double max(double **p, int m) { double max = 0.0; max = p[0][m - 1]; //указывает что здесь ошибка for (int i = 0; ((m - 1) / 2) < i && i < m; i++) { for (int j = i; j < m; j++) { if (p[i][j] > max) { max = p[i][j]; } } } for (int j = 0; ((m - 1) / 2) < j && j < m; j++) { for (int i = m - 1 - j; i >= 0; i--) { if (p[i][j] > max) { max = p[i][j]; } } } return max; } int main() { int m; //double **f; double **mas; system("chcp 1251"); system("cls"); printf("Введите размерность квадратной матрицы: "); scanf("%d", &m); printf("Ввод матрицы А\n"); mas = Input(m, m); printf("максимальное значение \n"); //f = max(m); printf("%8.4lf ", max(mas, m)); getchar(); getchar(); }
Объяснение кода листинга программы
- p - указатель на массив указателей на double.
- m - целочисленная переменная, размерность матрицы.
- max - переменная типа double, инициализирована значением 0.0.
- p[0][m-1] - обращение к элементу матрицы по индексам, где m-1 - последний индекс строки.
- for (int i = 0; ((m-1) / 2) < i && i < m; i++) - цикл по индексам первой строки.
- for (int j = i; j < m; j++) - цикл по индексам столбцов.
- if (p[i][j] > max) { max = p[i][j]; } - сравнение текущего элемента с максимальным значением и обновление max при необходимости.
- for (int j = 0; ((m-1) / 2) < j && j < m; j++) - цикл по индексам последней строки.
- for (int i = m-1-j; i >= 0; i--) - цикл по индексам первой строки, начиная с последнего элемента.
- if (p[i][j] > max) { max = p[i][j]; } - сравнение текущего элемента с максимальным значением и обновление max при необходимости.
- printf(
%8.4lf
, max(mas, m)); - вывод максимального значения. - getchar(); getchar(); - пропуск двух символов новой строки после вывода.
- mas = Input(m, m) - вызов функции для ввода матрицы.
- printf(
максимальное значение \n
); - вывод заголовка. - main() - точка входа в программу.
- scanf(
%d
, &m) - ввод размерности матрицы. - printf(
Ввод матрицы А\n
); - вывод приглашения для ввода матрицы. - system(
chcp 1251
); - установка кодировки консоли. - system(
cls
); - очистка консоли. - getchar(); getchar(); - пропуск двух символов новой строки после вывода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д