Я хочу передать массив, используя dinami c памяти - PullRequest
0 голосов
/ 19 апреля 2020

Ну, я поместил этот код в визуальную студию, и он говорит "не может преобразовать аргумент 1 из двойного * в двойной". Код следующий:

CALCULO_PROMEDIO(PR_ALUMNO_4, TAM_PR_4, ALUMNO_4);

И инициализированный указатель, который является универсальная переменная следующая:

double* PR_ALUMNO_1 = NULL;

Кроме того, я делаю массив следующим образом:

cout << "\n\t " << char(168) << "Cuantas calificaciones quieres introducir?";
        cin >> TAM_PR_1;        
        PR_ALUMNO_1 = new double[TAM_PR_1];

В конце концов по программе этот указатель преобразуется в массив для возможности альмаценатные оценки учеников.

В упомянутой функции я делаю следующее:

void CALCULO_PROMEDIO(double CALIF[], int TAM_CALIF, string NOMBRE_ALUMNO) {

if (TAM_CALIF == 0) {

    cout << "\n\n\t\a **************************************"
        << "\n\t *** PARECE QUE NO INTRODUJO NADA... **"                // Si no se tiene un tamaño especificado para el array, aparecera este mensaje
        << "\n\t ************************************** \n\t";
}
else {   // Muestra y calculos de promedios y calficaciones

    cout << "\n\n\t\a **************************************"
        << "\n\t    " << NOMBRE_ALUMNO
         << "\n\t **************************************";

    cout << "\n\n\t **************************************"
        << "\n\t              CALIFICACIONES"
        << "\n\t ************************************** \n\n\t";

    for ( P = 0; P < TAM_CALIF; P++){

        cout << CALIF[TAM_CALIF] << " , ";    // Imprenta de calificaciones almacenadas 
        PROMEDIO += CALIF[TAM_CALIF];     // Calculo de la sumatoria de las calificaciones almacenadas
    }

    cout << "\n\n\t\t PROMEDIO: " << PROMEDIO / TAM_CALIF;      // Muestra del promedio final en pantalla

    if (PROMEDIO >= 70) {

        cout << "\n\n\t\t ESTATUS: aprobado";
    }
    else{

        cout << "\n\n\t\t ESTATUS: reprobado";
    }
    cout << "\n\n\t **************************************";
}

}

В заключение я хочу передать этот массив dinami c для функции "CALCULO_PROMEDIO", но из-за моего плохого знания этого языка я могу заставить его работать должным образом.

Кстати, если решение окажется в том месте, куда я положил delete [ ], Я поместил эту инструкцию в блок текста, где написано, что если вы уже что-то вводили ранее в массив dinami c, ваши данные будут стерты с вашей программы, что-то вроде t his:

if (PR_ALUMNO_2 != NULL) {

            cout << "\n\t ***** ADVERTENCIA: SE HA IDENTIFICADO DATOS ANTERIORES *****"
                << "\n\t Si continua estos datos seran borrados sin oportunidad de recuperarlos"
                << "\n\n\t Sabiendo esto, " << char(168) << "quiere continuar?"
                << "\n\t 1. Si"
                << "\n\t 2. No"
                << "\n\t ***No se preocupe sera enviado devuelta al menu principal***"
                << "\n\t Introduce un numero: "; cin >> SALIR_MENU;

            if (SALIR_MENU == 1) {

                TIEMPO(); main();       // Regreso al menu principal
            } else {

                delete[]PR_ALUMNO_2;        //Borrar calificaciones del alumno 2
            }
        }

Извините, если вы нашли некоторые ошибки в моей грамматике. Как вы можете видеть из-за кода, я обычный мексиканец, который старается изо всех сил, пока происходит карантин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...