elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Me pueden ayudar con este programa?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Me pueden ayudar con este programa?  (Leído 2,583 veces)
ivorybom

Desconectado Desconectado

Mensajes: 3


Ver Perfil
¿Me pueden ayudar con este programa?
« en: 2 Diciembre 2012, 13:37 pm »

Hola. Estoy empezando a programar y me he trabado con un ejercicio. Les adjunto el enunciado y lo que yo he hecho y a ver si me pueden ayudar.

Escribir un programa que lea valores enteros introducidos por
teclado y almacene en un fichero sólo aquellos valores comprendidos en el
intervalo [-15, 15]. La introducción de números acabará al teclear 999.


Este es el enunciado. Y aquí va lo que yo he hecho:
Código:
#include<stdio.h>

int main(void){
   
    FILE *fileOut;
    int t;
    fileOut = fopen("ejer2.txt","w");
    if (fileOut != NULL){
        printf("Introduzca un valor. Introduzca 999 para terminar.\n");
        scanf("&d",&t);
        for(t=-15;t<=15;t++){
            if(t != 999){
                fprintf(fileOut,"%d ",t);
                printf("Introduzca un valor. Introduzca 999 para terminar.\n");
                scanf("%d",&t);               
            }
       
        }
       
    }
    system("PAUSE");
}

Es un programa de ficheros y no me funciona bien. Al ejecutar se me cierra la ventana si pongo un numero mayo que 15.

Les agradecería la ayuda.

P.D.: Antes de que algunos se quejen les digo que esto no es un problema de clase. Lo he encontrado en un libro y me he propuesto hacerlo. Se los digo porque he visto quejas de estas por el foro.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ¿Me pueden ayudar con este programa?
« Respuesta #1 en: 2 Diciembre 2012, 17:03 pm »

Si no tienes un libro de calidad te conviene conseguir uno, puedes revisar las recomendaciones utilizando el motor de búsqueda de los foros.

Los errores se deben a que esta muy mal estructurado el programa, en seudocodigo debería ser:
Código:
Repetir:
   Leer un numero
   Si esta en el intervalo [-15, 15] imprimirlo
Mientras el numero no sea 999

Si eso lo pasamos a lenguaje C el bucle de tu programa con las correcciones es:
Código
  1. do {
  2.   puts("Introduce un valor (999 para terminar):");
  3.   scanf("%d", &t);
  4.  
  5.   if (t >= -15 && t <= 15)
  6.      fprintf(fileOut, "%d ", t);
  7. }while (t != 999);

Otro error es (en tu programa original):
Código
  1. scanf("&d",&t);
Donde el carácter '&' debe sustituirse por '%'.

De nuevo consigue un libro y, para facilitar la detección de errores, compila en el modo mas estricto posible (como hacerlo debe indicarse en su documentación).

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
ivorybom

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ¿Me pueden ayudar con este programa?
« Respuesta #2 en: 3 Diciembre 2012, 00:23 am »

Perdón por no contestar antes. Muchas gracias por tus recomendaciones. Intentaré solucionarlo como tu dices. Muchas gracias de nuevo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines