Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2010, 14:46
Alexander4
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con un programa en C

Hola a todos estoy empezando a progamar en c y tengo una duda con un programa:
EL programa te pregunta cuantos números vas a escribir, después te pide que los escribas y devuelve el mayor de ellos.

En principio funciona bien pero si le dices por ejemplo que vas a introducir cuatro números e introduces tres no funciona a menos que escribas otro número.

¿Hay alguna manera de hacer que funcione si introduces menos datos de los que dijiste?

Código C:
Ver original
  1. /* Programa que usa la instrucción for. Se pide al usuario el número de datos y se determina el mayor de esos datos enteros
  2. */
  3.  
  4. # include <stdio.h>
  5. # include <stdlib.h> //Librería necesaria para el system ("pause")
  6.  
  7. int main ()
  8. {
  9.   int k;      //contador (controla el for)
  10.   int ndatos; //número de datos
  11.   int dato;   //valor a procesar
  12.   int ubi;    //Posición del dato mayor
  13.   int max;    //valor máximo
  14.    
  15.    printf ("\nDime la cantidad de datos: ");
  16.    scanf ("%d", &ndatos);
  17.    printf ("\nEscribe los datos: ");
  18.    max=dato;
  19.    for (k=1; k<=ndatos; k++)
  20.    {
  21.     scanf("%d", &dato);
  22.     if (dato>max)
  23.       {
  24.          max=dato;
  25.          ubi=k;
  26.       }
  27.    }
  28.    
  29.    printf ("\nEl maximo de los %d datos es %d ubicado en %d\n\n", ndatos, max, ubi);
  30.  
  31.    system ("pause"); //Para que no se cierre la ventana de dos en Dev-C++
  32.    return 0;
  33.        
  34. }