Dev - C++ - Devolver un vector

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

Devolver un vector

Publicado por Lei (1 intervención) el 22/03/2020 09:16:27
Hola, necesitaría ayuda para terminar este ejercicio, no se si guarda en el vector los numeros primos, y como lo podría imprimir, gracias
Enunciado
Desarrollar una función que devuelva en un vector los números primos entre 2 y200

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
void numeros_primos() {
	int num, i, contador;
	bool es_primo;
	int pos = 0;
	int vector_primos[200];
	for(num = 2; num < 201; num++){
		contador = 2;
		es_primo = true;
		while (es_primo == true && contador < num){
			if (num % contador != 0) {
				contador += 1;
			}
			else{
				es_primo = false;
			}
		}
		if (es_primo = true){
			vector_primos[pos] = num;
			pos += 1;
		}
	}
 
}
 
int main() {
	int num;
	numeros_primos();
	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++

Devolver un vector

Publicado por Alfil (1444 intervenciones) el 22/03/2020 16:51:27
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
#include <iostream>
#include <vector>
 
using namespace std;
 
vector<int> numerosPrimos(int n);
 
int main()
{
    vector<int> v;
 
    v = numerosPrimos(200);
 
    for (size_t i = 0; i < v.size(); i++)
    {
        if (i % 10 == 0) cout << endl;
        cout << v[i] << " ";
    }
 
    cout << endl;
 
    return EXIT_SUCCESS;
}
 
vector<int> numerosPrimos(int n)
{
    vector<int> v;
 
    for (int i = 1; i <= 200; i++)
    {
        int count = 0;
        int k = 1;
        while (k <= i)
            if (i % k++ == 0) count++;
 
        if (count == 2)
            v.push_back(i);
    }
    return v;
}
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 vangodp
Val: 73
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Devolver un vector

Publicado por vangodp (23 intervenciones) el 24/03/2020 03:40:13
imposible retornar vectores en C/C++, se puede retornar objetos como lo comentado por Alfil, pero eso realmente no es un "array". Un truco que si hace que sea posible "retornar" un vector es envolviéndole dentro de una struct o clase.
Tambien es posible retornar direcciones de memoria, lo que hace posible alocar un vector dinamicamente y retornar la dirección de este.
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