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.
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
Skype: naker.noventa
¿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
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
Skype: naker.noventa
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!
Responder

Volver a “C/C++”