Título: Problema al compilar. Publicado por: cantabria1234 en 4 Abril 2013, 22:32 pm Buenas noches, soy principiante en programación en C y al hacer este problema me compila pero el programa deja de funcionar. Os adjunto el enunciado del ejercicio y mi código.
Muchas gracias de antemano. Problema: En el fichero “comidas” esta la cantidad de calorıas que ingiere un animal en cada dıa, desglosada por alimentos (una lınea por cada dıa, con tantos valores como alimentos). El programa leer´a de teclado la cantidad de alimentos y las calorıas diarias mınimas para estar suficientemente nutrido. Se considera que si en un d´ıa no llega a ese valor, entonces es dıa de hambre. Si lo supera es dıa de abundancia. Un periodo de hambre es una cantidad de dıas seguidos, todos de hambre, y analogamente un periodo de abundancia. El programa escribir´a en pantalla la duracion del periodo de hambre mas largo El programa tendrá obligatoriamente al menos otra funcion ademas de main, con un trabajo repartido en partes similares y con paso de argumentos. Ejemplo: Si son 3 alimentos, el mınimo de calorıas son 35 y el fichero “comidas” tiene: 15 12 25 20 14 7 5 23 1 0 2 18 19 21 15 5 1 2 2 2 1 0 1 1 2 18 24 21 20 26 14 12 10 Entonces el periodo de hambre m´as largo es de 3 d´ıas (del 6 al 8). Aspecto en pantalla Numero de alimentos: 3 Minimo de calorias: 35 Hambruna mas larga: 3 dias Este es mi codigo: #include<stdio.h> #include<stdlib.h> void ciclo(FILE *fichero, int minimo,int alimentos, int *variable){ int dias, hambre, i, comida, calorias, contador; contador=0; *variable=0; hambre=0; i=0; while(!feof(fichero)){ calorias=0; for(i=0;i<alimentos;i++){ fscanf(fichero,"%i", &comida); calorias=calorias+comida; } if(calorias<minimo){ hambre=hambre+1; } else { contador=hambre; hambre=0; } if(hambre>contador){ *variable=hambre; } } } void main(int variable){ FILE *fichero; fichero=fopen("comidas.txt", "r"); int minimo, alimentos; printf("Introduce la cantidad de alimentos:\n"); scanf("%i", alimentos); printf("Introduce el minimo de calorias:\n"); scanf("%i", minimo); ciclo(fichero,minimo,alimentos,&variable); printf("Hambruna mas larga: %i\n", variable); system("pause>>null"); } Título: Re: Problema al compilar. Publicado por: 85 en 5 Abril 2013, 01:23 am No entiendo de que se trata tu programa pero así como te lo paso anda.´
comidas.txt Citar 111 222 333 444 555 Código
Título: Re: Problema al compilar. Publicado por: rir3760 en 5 Abril 2013, 17:40 pm Buenas noches, soy principiante en programación en C y al hacer este problema me compila pero el programa deja de funcionar. Os adjunto el enunciado del ejercicio y mi código. Errores en el programa hay varios.* En la función main hay que cambiar su definición a "int main(void) ...", indicar su valor de retorno con al menos "return 0;" y colocar a "variable" como una variable local a esa función. * En la misma función en las dos llamadas a scanf falta el operador "dirección de" (el '&'). * En la función "ciclo" el problema principal se debe al uso de cuatro variables para obtener el máximo cuando basta con solo tres (hay que eliminar del calculo y del programa a la variable contador). También hay que eliminar la variable "dias" ya que no se utiliza. * En esa misma función vas a tener problemas debido al uso de la función feof, la solución mas facil pero no la mejor es utilizar la cadena de formato "%i " con fscanf (esa cadena tiene un espacio al final y es critico). El programa con las correcciones: Código
Un saludo Título: Re: Problema al compilar. Publicado por: cantabria1234 en 5 Abril 2013, 19:50 pm Muchas gracias por las respuestas y estoy aprendiendo de los errores, pero el programa sigue sin funcionar :-\
Un saludo. Título: Re: Problema al compilar. Publicado por: 85 en 5 Abril 2013, 21:25 pm deberías postear el código actualizado, y hacerlo dentro de las etiquetas correspondientes que son las de C++. Fijate en las opciones para el armado del post.
y un extra sería si podés hacer que el código compile en algún compilador online, por ejemplo este; http://www.compileonline.com/compile_cpp_online.php así es más fácil ayudarte. Saludos Título: Re: Problema al compilar. Publicado por: rir3760 en 6 Abril 2013, 04:33 am estoy aprendiendo de los errores, pero el programa sigue sin funcionar Con solo eso no es posible ayudarte.Mejor sigue la recomendación de 85: deberías postear el código actualizado, y hacerlo dentro de las etiquetas correspondientes Un saludo |