Sv Community El Salvador
Soporte y Tecnología => Programación => C/C++ => Topic started by: Edg on April 18, 2008, 11:46:52 pm
-
El programa funciona bien para enteros que tienen 10 dígitos o menos, pero cuando le ingreso un entero de 11 dígitos ya no furula, si me pueden dar una ayudita se los agradecería mucho :thumbsup:
#include "stdio.h"
#define CANT 3
void leerNum(int numeros[CANT]);
void compararNum(int numeros[CANT], int mayor);
int main(void){
int numeros[CANT], mayor;
leerNum(numeros);
compararNum(numeros, mayor);
return 0;
}
void leerNum(int numeros[CANT]){
int i;
for(i=0; i<3; i++){
printf("Por favor ingrese el %dº numero: ",i+1);
scanf("%d",&numeros[i]); while(getchar()!='\n');
}
}
void compararNum(int numeros[CANT], int mayor){
int i;
mayor=numeros[0];
for(i=1; i<3; i++){
if (numeros[i]>mayor)
mayor=numeros[i];
}
printf("El numero mayor es %d\n",mayor);
}
-
pasa los tipos de datos a long en lugar de int, avisanos si no te funciona para revisarlo bien.
-
pasa los tipos de datos a long en lugar de int, avisanos si no te funciona para revisarlo bien.
exacto la constante "int" solo tiene 2 bytes de memoria si mal no recuerdo proba con long, float o double talvez ese sea el problema.
saludos.
-
Viejo revisa la sentencia scanf(&numero); aki la variable i=1 y db ser i=0. Lo k suced es k cuand no especifics un valor para tods las variables asigna valores al asar
-
Viejo revisa la sentencia scanf(&numero); aki la variable i=1 y db ser i=0. Lo k suced es k cuand no especifics un valor para tods las variables asigna valores al asar
No, la variable i sigue siendo cero, lo que pasa que en printf la pongo i+1 solo para mostrarle al usuario desde el número 1 pero realmente el arreglo comienza a guardar números desde la casilla cero
printf("Por favor ingrese el %dº numero: ",i+1);
scanf("%d",&numeros); while(getchar()!='\n');
Y si ya cambié el tipo de variable a long y funcionó :D gracias mara carro.