Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: perujo en 12 Agosto 2017, 15:44 pm



Título: No funciona correctamente
Publicado por: perujo en 12 Agosto 2017, 15:44 pm
Hola, llevo bastante tiempo buscando que error tiene el programa para que no cuente bien.
El programa pide: Escribe un programa que lea números enteros por teclado hasta que se introduzca un número negativo. El programa debe mostrar cuál es el número máximo y cuántas veces se ha introducido.

Con el ejemplo de escribir un numero como el 6 y otro mas pequeño como el 5, la cuenta se pone en 2. Yo sospecho que este mal en la lectura del numero o algo similar pero no llego al problema, gracias de antemano.

Código:
#include <stdio.h>
 
int main() {
     int num;
     int max;
     int count = 0;
     printf("Introduce un numero: ");
     scanf("%d", &num);
     while ( num >=0 ){
    if (num>max) {
    max = num;
    count = 1;
}
else if (num=max){
count=count + 1;
      printf("contador: %d\n",count);
            printf("numero %d\n",num);
}
      printf("Introduce un numero: ");
    scanf("%d", &num);
}
    printf("El numero mayor es %d y se ha introducido %d veces",max,count);
}


Título: Re: No funciona correctamente
Publicado por: josue9243 en 12 Agosto 2017, 17:52 pm
else if (num=max){

----->

else if (num==max){

Te explico lo que hicistes en el código, no entendi bien.

Seguro es el if mal que pusistes

Código:
#include <stdio.h>
 
int main() {
     int num;
     int max;
     int count = 0;
     printf("Introduce un numero: ");
     scanf("%d", &num);  // Pedis el numero al cliente
     while ( num >=0 ){ // Mientras el numero sea mayor o igual a 0
     if (num>max) { // Verifica si el numero es mayor la maximo
      max = num; //De ser asi el Maximo pasa a ser el numero
      count = 1; //Setea Count en 0
  }
  else if (num=max){ //De lo contrario verificar si num es igual a max
                              // ERROR (Debe ser num == max) "=" es setear
                             // y "==" es verificar si es igual a
   count=count + 1; //Contador sube +1 (simplificalo asi Count++ o Count+=1)
       printf("contador: %d\n",count); //Printea el Count
             printf("numero %d\n",num); //Printea el Numero
  }
      printf("Introduce un numero: "); // Printea message pidiendo
     scanf("%d", &num); //Pide el numero
 }
    printf("El numero mayor es %d y se ha introducido %d veces",max,count); // Printea valores
}