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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contar el numero de arrays en una funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contar el numero de arrays en una funcion  (Leído 2,401 veces)
ramona98

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Contar el numero de arrays en una funcion
« en: 27 Agosto 2013, 12:04 pm »

Hola,

Estoy haciendo una funcion que me diga el numero mas alto de un array.

Código:
#include <stdio.h>
#include <string.h>


// Exercise 9-5: Write a function that returns the maximum value of an array of
// numbers.


int maximo(int numeros[])
{

int i, numtotal; // index into the string
int nummaximo;
   
    nummaximo = numeros[0];
 
    numtotal = sizeof numeros / sizeof numeros[0];
    printf("##%d\n", numtotal);
 
 
for (i = 0; numeros[i] != '\0'; ++i) {
   
    if (nummaximo <= numeros[i]) {
    nummaximo = numeros[i]; }
    printf("de momento es %d\n", nummaximo);
       
    }
   
   

return (nummaximo);
}

int main()
{
   
    int bingo[] = {1,2,3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67};
    int index22;
    index22 = sizeof bingo / sizeof bingo[0];
   

    printf("##total d numero s %d en bingo\n", index22);
 
    printf("el valor maximo es %d\n", maximo(bingo));



return (0);
}

El problema lo tengo en el contador de valores del array para completar el for

Código:
for (i = 0; numeros[i] != '\0'; ++i)
con este funciona correctamente pero al llegar al ultimo valor da numeros aleatorios.

Código:
for (i = 0; i <numtotal ; ++i) {
desconozco el pq pero numtotal siempre es 2 en la funcion.

cual es el motivo por el que fallo aqui?

Gracias y saludos


En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Contar el numero de arrays en una funcion
« Respuesta #1 en: 27 Agosto 2013, 12:46 pm »

Tienes que pasarle el largo de la función al array, porque el sizeof en la función no te vale, sin embargo si te da el valor correcto dentro del ámbito en el que fue declarado el array. Bueno aquí tienes el código con esa modificación:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4.  
  5. // Exercise 9-5: Write a function that returns the maximum value of an array of
  6. // numbers.
  7.  
  8.  
  9. int maximo(int numeros[], int index)
  10. {
  11.    int i = 0;
  12.    int numTotal = 0; // index into the string
  13.    int numMaximo = 0;
  14.  
  15.    numMaximo = numeros[0];
  16.  
  17.    for (i = 0; i < index ; ++i)
  18.    {
  19.        if (numMaximo <= numeros[i])        
  20.            numMaximo = numeros[i];
  21.  
  22.        printf("de momento es %d\n", nummaximo);
  23.    }
  24.  
  25.    return numMaximo;
  26. }
  27.  
  28. int main(int argc, char *argv[])
  29. {
  30.    int bingo[] = {1,2,3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67,2};
  31.  
  32.    int index = sizeof (bingo) / sizeof (bingo[0]);
  33.  
  34.    printf("##El total de numeros en bingo es de: %d\n", index);
  35.  
  36.    printf("El valor maximo es %d\n", maximo(bingo,index));
  37.  
  38.    return (0);
  39. }
En C++11 puedes hacer esto:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7.    int bingo[] = {1, 2, 3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67, 2};
  8.  
  9.    int maxNum(0);
  10.    for(auto &currentNum : bingo)
  11.        if(currentNum > maxNum)
  12.            maxNum = currentNum;
  13.  
  14.    cout << "The maximum value is: " << maxNum;
  15.  
  16.    return (0);
  17. }

¡Un saludo!


« Última modificación: 27 Agosto 2013, 13:33 pm por avesudra » En línea

Regístrate en
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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