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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Real funcionamiento de "scanf"?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Real funcionamiento de "scanf"?  (Leído 2,998 veces)
Morringos

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Real funcionamiento de "scanf"?
« en: 29 Agosto 2011, 05:43 am »

Buenas noches, tardes o días a todos   :xD, hoy vengo con una duda que llevo minutos tratándole de solucionarla y es debido al funcionamiento de la función "scanf", les aclaro que soy novato en esto de lenguaje C. Ok, ahí les va a el código para explicarles mi duda.

Código
  1. #include <stdio.h>
  2.  
  3.  
  4. float maximum(float x, float y);
  5. float minimum(float x, float y);
  6. void prn_info(void);
  7.  
  8. int main()
  9. {
  10.    int i,n;
  11.    float max, min, x;
  12.  
  13.    prn_info();
  14.    printf("Input n:   ");
  15.    scanf("%d", &n);
  16.    printf("\nInput %d real numbers:    ", n);
  17.    scanf("%f", &x);
  18.    max = min = x;
  19.  
  20.    for (i = 2; i <= n; ++i){
  21.        scanf("%f", &x);
  22.        max = maximum(max, x);
  23.        min = minimum(min, x);
  24.    }
  25.  
  26.    printf("\n%s%11.3f\n%s%11.3f\n\n",
  27.           "Maximum value:",max,
  28.           "Minimum value:", min);
  29.  
  30.    return 0;
  31. }
  32.  
  33. float maximum(float x, float y){
  34.    if (x > y)
  35.        return x;
  36.    else
  37.        return y;
  38. }
  39.  
  40. float minimum(float x, float y){
  41.    if (x < y)
  42.        return x;
  43.    else
  44.        return y;
  45. }
  46.  
  47. void prn_info(void){
  48.    printf("\n%s\n%s\n\n",
  49.           "This program reads an integer value for n, and then",
  50.           "processes n real numbers to find max and min values.");
  51. }
  52.  

Es un código que lo vi de un libro que estoy leyendo de C, pero la gran duda es el por qué la variable "i" la inicializa con el valor de 2 en el ciclo for, y luego, en el ciclo for vuelve a utilizar la función "scanf", eso es lo que no entiendo el por qué eso. Al momento de que el usuario ponga por ejemplo, n=2, y ponga los números 10 y 20, la primera sentencia "scanf" captura el primer número y luego en el ciclo for captura el 2do número, o cómo es que funciona en si esa partesita y la función "scanf"?.

Bueno, espero y haya sido claro con mi duda, que la verdad no logro sacarle bien la lógica al código, mas bien, creo que se debe a la falta del entendimiento de la función "scanf", si alguien puediera explicarmelo, sería de gran ayuda, o tal vez, un link donde explique su funcionamiento.

Saludos.
Gracias.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Real funcionamiento de "scanf"?
« Respuesta #1 en: 29 Agosto 2011, 06:07 am »

No veo cual es la duda. El objetivo del programa se indica mediante una funcion con:

"This program reads an integer value for n, and then",
"processes n real numbers to find max and min values."

La funcion "scanf" se utiliza primero fuera del bucle para leer el primer valor tomandolo como el maximo y minimo hasta el momento.

En el bucle se leen los numeros restantes con scanf y se comparan con el maximo y el minimo ajustandolos si es necesario.

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
Morringos

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Real funcionamiento de "scanf"?
« Respuesta #2 en: 29 Agosto 2011, 06:28 am »

Baaa.... muchas gracias por la respuesta, pero era cuestión de que me esperara más y lo analizara.

Gracias de todos modos bro.
Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Grabar los videos de "real player" es posible?
Multimedia
Cantinflas 7 16,112 Último mensaje 12 Agosto 2009, 02:12 am
por speet
con que programa modifico "variables" en tiempo real un juego ????
Ingeniería Inversa
00000001 2 2,843 Último mensaje 26 Enero 2007, 21:06 pm
por tena
Caso Samsung y la "conspiranoia": VIPRE ni siquiera detecta el StarLogger real
Noticias
wolfbcn 1 2,033 Último mensaje 7 Abril 2011, 05:35 am
por YST
NASM Linux printf - scanf "undefined reference"
ASM
Leyer 5 9,102 Último mensaje 7 Enero 2012, 20:32 pm
por Eternal Idol
[C] error en scanf("%c",&variable)
Programación C/C++
edr89 5 3,678 Último mensaje 30 Junio 2013, 09:40 am
por mr.blood
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines