Código:
E podido hacerlo en el main normal pero dentro de otro procedimiento no#include <iostream.h> using namespace std; //lo que hace el programa es hallar la cantidad de aprobados //sin dar examen sustitutorio ( el cual sustituye la nota mas baja) //y la cantidad de aprobados despues de dar examen sustitutorio void llenarNota(float X[],int dim); float prom(float X[], int dim); void susti(float X[], int dim); int ubiMenor(float X[], int dim); void susti(float X[], int *sinSusti,int *conSusti,float pr); int main(){ int num=5,n,sin=0,con=0,i,sinSusti,conSusti; float notas[5],p,k; cout<<"Ingrese cantidad de alumnos: "; cin>>n; for(i=0;i<n;i++){ cout<<" Alumno "<<i+1<<endl; llenarNota(notas,num); cout<<endl; p=prom(notas,num); k=ubiMenor(notas,num); cout<<"ubi antes de entra ala funcion susti"<<k<<endl; cout<<"Promedio antes de entrar a la funcion susti= "<<p<<endl; susti(notas, &sinSusti, &conSusti,p); cout<<endl; sin=sin+sinSusti; con=con+conSusti; } cout<<"sin "<<sin<<" con "<<con<<endl; system("PAUSE"); return 0; } void llenarNota(float X[],int dim){ int i; float N; for(i=0;i<dim;i++){ cout<<i+1<<"Nota: "; cin>>N; X[i]=N; } } float prom(float X[], int dim){ int i; float sum=0,prm; for(i=0;i<dim;i++){ sum=sum+X[i]; } prm=sum/dim; return prm; } void susti(float X[], int *sinSusti,int *conSusti,float pr){ int sinS=0,conS=0,num=5,u; float s,p,notas[5],d; //al parecer no e puede poner vectores dentro de un procedimiento saque // el promedio fuera para q lo pidiese funciona if(pr>10.5){ sinS=1; } else{ //¿COMO USO LA FUNCION ubiMenor aki dentro? //afuera si funciona //el prom tmbn bota basura aki dentro de la funcion //lo que pienso es q 'notas' y 'dim' se toman como nuevas variables //por lo tanto estan vacias como hago, si es asi,para usarlas aki?? //sin tener q volver a llenarlas claro u=ubiMenor(notas,num); cout<<"la ubicacion del menor es: "<<u<<endl; cout<<"Ingresar nota q sustituir"<<endl; cin>>s; X[u]=s; d=prom(notas,num); cout<<"Prom despues de sustituir "<<d<<endl; if(d>10.5) {conS=1; } } *conSusti=conS; *sinSusti=sinS; } int ubiMenor (float X[], int dim){ int j=0,i; float temp=X[0]; for(i=0;i<dim;i++) if (X[i]<temp){ temp=X[i]; j=i; } return j; }
Ayuda porfa de antemano gracias por su tiempo