UTNianos

Versión completa: por favor necesito ayuda para antes del 29/11/2017
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
rindo recuperatorio del primer parcial este miercoles y necesito ayuda
y que ayuda necesitas? que duda tenes? Sino no te podemos ayudar.
no puedo pasar arrays a funciones. estuve todo el dia intentando y no encuentro la manera.

este es mi codigo.
------------------------------------------------------------------------------------------------


#include <iostream>
using namespace std;


void ingresarImporte(int x[], int z){
for(int i=0;i<=z;i++){
cout<<"Ingresar valor para la casilla "<<i+1<<":"<<endl;
cin>>x[i];
}
}

void sumaPromedio(int x[], int z){
int total;
for(int i=0;i<=z;i++){
total=total+x[z];
}
cout<<"Suma:"<<total<<endl;
cout<<"Promedio: "<<total/z-1<<endl;
}

int main(){
int ventas[10];
int largo;

ingresarImporte(ventas[10], largo);
sumaPromedio(ventas[10], largo);


return 0;
}

/*
int mayorImporte(int x[], int z){
int mayor=x;
for(int i=0;i<=z;i++){
*/







------------------------------------------------------------------------------------------------

el problema despues me pide mas funciones con arrays pero si supiera pasarlos las demas funciones podria armarlas
(27-11-2017 21:31)santitodisco escribió: [ -> ]ingresarImporte(ventas[10], largo);
sumaPromedio(ventas[10], largo);

santitodisco
Probá:
ingresarImporte(ventas, largo);
sumaPromedio(ventas, largo);

Al poner ventas[10] estás pasando un entero (int) que es el que se encuentra en la posición 10 del array ventas.
asi si funciono. me podrias explicar porque ?
Es que "ventas[10]" se refiere a el elemento de ventas en la posición 10.
Mientras que "ventas" es el puntero al primer elemento del array.

Cuando declaras un array se reservan posiciones contiguas en memoria. Por eso podés hacer lo siguiente:


#include <iostream>

int main() {
int ventas[2];
int * p;

ventas[0] = 10;
ventas[1] = 20;

p = ventas; // p ahora apunta al primer elemento.

std::cout << *p;
std::cout << "\n";
std::cout << *(p+1);
}



#include <iostream>

int main() {
char str1[] = "Hola v1!\n";
char * str2 = "Hola v2!";
std::cout << str1;
std::cout << str2;
}

Acordate que el nombre del vector (en este caso ventas) es la dirección de inicio del mismo en memoria.
Entonces con pasarle la dirección de inicio y el largo del vector a una funcion es suficiente para recorrerlo.
Después tene en cuenta que al pasar una dirección de memoria, tenes que recibirla con un puntero del tipo de dato correspondiente en los parámetros de tu función.

Saludos.
URLs de referencia