Dev - C++ - Ayuda [Error] ld returned 1 exit status

   
Vista:

Ayuda [Error] ld returned 1 exit status

Publicado por Pedro (1 intervención) el 25/10/2017 01:45:40
Hola a todos, tengo un problema con un programa que he estado haciendo, este es mi programa:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdio.h>
#include <math.h>
 
int Primos1 (int q){
	int i,a;
	a=0;
	for (i=1;i<=q;i++)
	{
		if (q%i==0)
		a++;
	}
	if (a==2)
	{
			printf("el numero ingresado es primo.");
	}
	else
	{
		printf("el numero ingresado no es primo.");
	}
	return 0;
}
int Primos2 (int n){
 
 
	printf("\n numero invertido: ");
	do{
		printf("%d",n%10);
		n=n/10;
	}while (n!=0);
	return 0;
}
int contarDigitos (int o){
	int contador=0;
	while (o != 0){
		o /= 10;
		contador++;
	}
	return contador;
}
int invertir (int o){
	int inverso=0, exponente, residuo;
	exponente=contarDigitos (o);
	while (o != 0){
		residuo = o%10;
		exponente--;
		inverso += residuo * pow ( 10.0,(double)exponente);
		o /= 10;
	}
	return inverso;
}
int esPrimo (int o){
	int i, contador=0, retval=false;
	for (i=1; i<=o; i++){
		if (o%i == 0){
			contador++;
		}
	}
	if (contador==2){
		retval=true;
	}
	return retval;
}
int main (){
	int i, o, inverso, contador=0,q,n;
	printf("ingresar numero: ");
	scanf("%d",&q);
	Primos1(q);
	printf("\n");
	printf("introduzca el numero que desea invertir: ");
	scanf("%d",&n);
	Primos2(n);
	printf("\n");
	do {
		printf ("Introduce el valor de N: ");
		scanf ("%i", &o);
		if (o<10){
			printf ("Para poder invertirlo tiene que tener al menos 2 digitos.\nVuelva a intentarlo.\n");
		}
	}while (o<10);
 
	for (i=10; i<=o; i++){
		if (esPrimo (i)==true){
			inverso=invertir(i);
			if (esPrimo (inverso)==true){
				printf ("%d  ", i);
				contador++;
			}
		}
	}
	if (contador==0){
		printf ("No hay ningun valor valido.");
	}else {
		printf ("\nSe encontraron %d valores.", contador);
	}
	return 0;
}

la cosa es que cuando lo compilo me da el error "[Error] ld returned 1 exit status", pero si lo copio y lo pego en
otro proyecto me funciona perfecto pero despues de un poco me vuelve a tirar este error, alguien que me ayude porfavor. gracias
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

Ayuda [Error] ld returned 1 exit status

Publicado por dario alderaan@ec-red.com (107 intervenciones) el 25/10/2017 11:36:05
Tu programa un poco arreglado.
Compara con el tuyo, hice algunas modificaciones.
Saludos.

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>
#include <math.h>
 
int Primos1 (int q) {
	int i,a;
	a=0;
 
	for (i=1;i<=q;i++)
	{
		if (q%i==0)
		a++;
	}
 
	if (a==2)
			printf("el numero ingresado es primo.");
	else
		printf("el numero ingresado no es primo.");
 
	//return 0;
}
 
int Primos2 (int n){
 
	printf("\nnumero invertido: ");
 
	do {
		printf("%d",n%10);
		n=n/10;
	} while (n!=0);
 
	//return 0;
}
 
int contarDigitos (int o) {
	int contador=0;
 
	while (o != 0) {
		o /= 10;
		contador++;
	}
 
	return contador;
}
 
int invertir (int o) {
	int inverso=0, exponente, residuo;
 
	exponente=contarDigitos(o);
 
	while (o != 0) {
		residuo = o%10;
		exponente--;
		inverso += residuo * pow ( 10.0,(double)exponente);
		o /= 10;
	}
 
	return inverso;
}
 
int esPrimo (int o) {
	int i, contador=0, retval=0;
	for (i=1; i<=o; i++) {
		if (o%i == 0)
			contador++;
	}
 
	if (contador==2)
		retval = 1;
 
	return retval;
}
 
int main () {
	int i, o, inverso, contador=0,q,n;
 
	printf("ingresar numero: ");
	scanf("%d",&q);
	Primos1(q);
	printf("\n");
	printf("introduzca el numero que desea invertir: ");
	scanf("%d",&n);
	Primos2(n);
	printf("\n");
 
	do {
		printf ("Introduce el valor de N: ");
		scanf ("%i", &o);
 
		if (o<10)
			printf ("Para poder invertirlo tiene que tener al menos 2 digitos.\nVuelva a intentarlo.\n");
 
	} while (o<10);
 
	for (i=10; i<=o; i++) {
		if (esPrimo (i)){
			inverso=invertir(i);
			if (esPrimo(inverso)) {
				printf ("%d  ", i);
				contador++;
			}
		}
	}
	if (contador==0){
		printf ("No hay ningun valor valido.");
	}else {
		printf ("\nSe encontraron %d valores.", contador);
	}
	return 0;
}
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

Ayuda [Error] ld returned 1 exit status

Publicado por juan carlos (7 intervenciones) el 30/10/2017 05:25:43
Hola, creo que lo unico que tenes que cambiar es que primo1 y primo2 sea procedimiento y no funciones nada mas ya que no necesitas nada de ellos y ademas como concepto no esta bien que funciones muestren en pantalla o pida por teclado. saludos
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
Revisar política de publicidad