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.
#include <stdio.h>
float maximum(float x, float y);
float minimum(float x, float y);
void prn_info(void);
int main()
{
int i,n;
float max, min, x;
prn_info();
printf("Input n: ");
scanf("%d", &n);
printf("\nInput %d real numbers: ", n);
scanf("%f", &x);
max = min = x;
for (i = 2; i <= n; ++i){
scanf("%f", &x);
max = maximum(max, x);
min = minimum(min, x);
}
printf("\n%s%11.3f\n%s%11.3f\n\n",
"Maximum value:",max,
"Minimum value:", min);
return 0;
}
float maximum(float x, float y){
if (x > y)
return x;
else
return y;
}
float minimum(float x, float y){
if (x < y)
return x;
else
return y;
}
void prn_info(void){
printf("\n%s\n%s\n\n",
"This program reads an integer value for n, and then",
"processes n real numbers to find max and min values.");
}
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.
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
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.