Duda/Error sobre arrays (vectores)

Iniciado por Ikuza, 2 Diciembre 2015, 13:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Ikuza

Buenas tardes, he empezado hace poco a aprender a programar en C++ por lo que el error será básico pero me tiene un poco desquiciado.
El ejercicio a realizar es el siguiente:
Realiza  un  programa  que   trabaje   con  un  vector  de  enteros.  El  programa  deberá,  de  manera
secuencial, realizar lo siguiente:
a) Rellenar el vector con elementos introducidos por teclado hasta que el usuario introduzca un
número negativo.
b) Mostrar el contenido del vector.
*El vector tiene un máximo de 100 elementos*

En un principio no me parecía dificultad alguna, exceptuando la detención del programa al introducir un número negativo, ya que no me dejan utilizar "break". Pero al menos intenté hacerlo con 5 elementos a ver si funcionaba.
Todo correcto, hasta que intente crearlo en forma de funciones. Supuse que sería un mínimo error e intente crear el ejercicio con la misma estructura que la función.
#include<stdio.h>
#define max_v 10

int main(){

int v[max_v];
int i;
int utiles=0;
for (i=0; i<max_v;i++){
       
       printf("[%d] : ", i);
scanf("%i", &v[i]);
        utiles ++;  
                     }
for (i=0; i<=utiles;i++){
   
    printf("Vector[%d]: %d \n", i, v[i]);

}

return 0;

}

El problema es a la hora de llevarlo a funciones.
Incluyo también el mismo intento de programa pero con funciones.
#include <stdio.h>
#define max_ele 100

int leerVector(int vector){
    int i, utiles=0;
   
     for(i=0; i<max_ele; i++){
        printf("Posicion [%d] : ", i);
        scanf("%d", &vector[i]);
             utiles++;
        return utiles;
                         }
int imprimirVector(int vector[], int utiles){
          int i;
          for(i=0; i<utiles; i++)
          { printf("\nElemento [%d] : %d", i, vector[i]);

                           }
                                           }
int main(){

int vector[max_ele];

int utiles;

utiles = leerVector(vector[]);
imprimirVector(vector, utiles);


return 0;
         }

Mi intuición cree que es debido a la "escritura" de la función, pero he buscado ejemplo o guías y sigue sin funcionar.
Disculpen por el tochopost y gracias de antemano.
Un saludo.

class_OpenGL

Código (cpp) [Seleccionar]
int leerVector(int vector)

Has puesto como parámetro un entero, no un vector de enteros

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL