Página 1 de 1

Error tonto

Publicado: 07 Jun 2014, 23:01
por Baal_30
Buenas, tengo este código, y me da el error de "[Error] 'system' was not declared in this scope" y me marca en rojo la linea del "system("pause");" La verdad que no lo entiendo, siempre lo he puesto así y nunca me ha dado ningún error, creo que está todo correcto. ¿Porque pasa esto?
#include <stdio.h>

int factorial(int fact);

int main(){
	
	int fact;
	
	printf("Introducir numero del cual se quiere calcular el factorial: ");
	scanf("%i",&fact);
	
	fact = factorial(fact);
	
	printf("El resultado es : %i \n",fact);
	
	system("pause");
	return 0;
}

int factorial(int fact){
	if(fact == 0){
		return 1;
	}
	else{
		return fact * factorial(fact-1);
	}
}
Gracias.

Re: Error tonto

Publicado: 07 Jun 2014, 23:57
por Naker90
Debes incluir también stdlib.h.
#include <stdio.h>
#include <stdlib.h> 
 
int factorial(int fact);
 
int main(){
     
    int fact;
     
    printf("Introducir numero del cual se quiere calcular el factorial: ");
    scanf("%i",&fact);
     
    fact = factorial(fact);
     
    printf("El resultado es : %i \n",fact);
     
    system("pause");
    return 0;
}
 
int factorial(int fact){
    if(fact == 0){
        return 1;
    }
    else{
        return fact * factorial(fact-1);
    }
}
Saludos

Re: Error tonto

Publicado: 08 Jun 2014, 00:01
por Baal_30
¿Y porque en otras ocasiones, sin incluir stdlib.h, no me ha dado el error que me da ahora? ¿Es por la recursividad de la función "factorial", o eso no tiene nada que ver?

Gracias Naker! :D

Re: Error tonto

Publicado: 08 Jun 2014, 00:27
por Naker90
Por lo menos a mí, aun quitando la función factorial me sigue saliendo el mismo error ya que "Stdio.h" solo almacena los macros, constantes, las operaciones de E/S, etc.. Pero no almacena la función "system()" que es la encargada de ejecutar comandos del sistema, de eso se encarga "Stdlib.h".
De todos modos no me hagas mucho caso ya que no tengo mucho recorrido en este lenguaje, espero que alguien con mas experiencia pueda corregirme si me equivoco.
Saludos

Re: Error tonto

Publicado: 08 Jun 2014, 00:44
por Baal_30
A mi siempre me ha pasado al revés, con stdio.h me ha funcionado, pero ahora no se porque ya me pedía la stdlib.h.

Un saludo y gracias!