Dev - C++ - Enviar vector funcion, error de envio

 
Vista:
sin imagen de perfil
Val: 53
Ha disminuido su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Enviar vector funcion, error de envio

Publicado por Rayo (31 intervenciones) el 12/02/2020 22:03:39
Buenos dias/tardes:

Estoy queriendo sacar un problema que consiste en cargar un vector en main y luego enviarlo a una funcion y esta retornara el maximo.
El problema surge cuando le agrego los digitos 1, 2, 3 y 0 (que devuelve el resultado original) sin embargo cuando coloco los digitos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 y 0 me devuelve la operacion correcta, es decir que el maximo numero es el 10 pero me retorna lo siguiente"Process returned -1073741819(0xc0000005)" en consola. Alguien sabe si hay error de codigo?

les dejo el codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
using namespace std;
#include <cstdlib>
#include <clocale>
 
int retorno(int *vect, int cont)
{
 
    int maximo=0, fori;
 
    for(fori=0; fori<cont; fori++)
    {
 
        if(vect[fori]>maximo)
        {
 
            maximo=vect[fori];
        }
    }
 
 
    return maximo;
}
 
int main()
{
    setlocale(LC_CTYPE,"Spanish");
 
    int vec[]= {0}, con=0,  totalretorno=0, ingreso;
 
    cout<<"Ingrese numeros"<<endl;
    cin>>ingreso;
 
    while(ingreso!=0)
    {
 
        con++;
        vec[con]=ingreso;
        /*con++;*/
 
 
        /*system("cls");*/
        cout<<"Ingrese numeros"<<endl;
        cin>>ingreso;
 
 
    }
 
    retorno(vec, con);
 
    totalretorno=retorno(vec, con);
 
    cout<<"El maximo numero es "<<totalretorno<<" del vector cargado"<<endl;
    system("pause>null");
 
    return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Enviar vector funcion, error de envio

Publicado por Alfil (1444 intervenciones) el 12/02/2020 23:16:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
 
using namespace std;
 
int maximo(const int v[], int sz);
 
int main()
{
    int sz;
 
    cout << "\nTamanyo del vector: ";
    cin >> sz;
 
    int v[sz];
 
    cout << "\nIntroduzca datos:\n";
    for(int i = 0; i < sz; i++) {
        cout << "(" << i + 1 << "/" << sz << "): ";
        cin >> v[i];
    }
 
    cout << "\nEl numero maximo es " << maximo(v, sz) << endl;
 
    return 0;
}
 
int maximo(const int v[], int sz)
{
    int max;
 
    for(int i = 0; i < sz; i++)
        if (i == 0 || v[i] > max)
            max = v[i];
 
    return max;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 53
Ha disminuido su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Enviar vector funcion, error de envio

Publicado por Rayo (31 intervenciones) el 12/02/2020 23:55:04
Gracias alfil. Es necesario si o si antes declarar el tamaño del vector? Supongamos que es un ingreso indeterminado de numeros... solo corta con 0 se usa while.

Por otro lado que significa el operador "const" que usas en la funcion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Enviar vector funcion, error de envio

Publicado por Alfil (1444 intervenciones) el 13/02/2020 07:16:55
const significa que el valor del vector es constante y no se puede modificar. Como lo que hacemos es comprobar los valores del vector, este debe ser constante.

Si no quieres definir el tamaño del vector, debes utilizar la biblioteca <vector> que permite utilizar un número indeterminado de elementos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar