Tengo que hacer un programa para la U que me calcule N notas y las guarde en un arreglo y saque el promedio usando memoria dinamica. Hize este codigo para poder agregar las notas a el arreglo y todo funciona bien, pero cuando intento salir me da un error y dice que la variable original de las notas esta corrupta.
Código:
Gracias de antemano #include <iostream> using namespace std; int menu(); void ingreso(int *i, int *notas , int *n, int *p , int *q); int main(){ int opcion , *i , contador = 0, contador_tot=0, *p , *q , contador_impr=0; i = &contador ; p = &contador_tot ; q = &contador_impr ; int notas[10]; int *n; n = new int; while( (opcion =menu()) != 3 ){ switch(opcion){ case 1: ingreso(i , notas , n, p, q); break; case 2: if( *p > 10){ for(int x=0 ; x < *q ; x++){ cout << n[x] << " " ; } for(int x=0 ; x < *i ; x++){ cout << notas[x] << " " ; } } else if( *p <= 10) { for(int x=0 ; x < *i ; x++){ cout << notas[x] << " " ; } break; default: break; } } } return 0; } int menu(){ int opcion=0; cout << " Seleccione una opcion: " << endl << "1.-Ingresar Notas " << endl << "2.-Imprimir notas y promedio " << endl << "3.- Salir" << endl; cin >> opcion; return opcion; } void ingreso(int *i, int *notas , int *n, int *p , int *q){ if( *i >= 10 ){ for(int a=0; a < 11 ; a++){ n[a+(*q)] = notas[a]; } for(int a=0; a < 11 ; a++){ notas[a] = 0; } *i=0 ; (*q)+=10 ; } cout << "Ingresa la nota:" ; //cin >> notas[(*i)]; notas[(*i)] = (*p); (*p)++; (*i)++; if(*p == 100){ } cout << endl; }