SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ferrarista en Lunes 2 de Marzo de 2009, 19:22

Título: Necesito consejos, gracias.
Publicado por: ferrarista en Lunes 2 de Marzo de 2009, 19:22
Muy buenas y saludos cordiales.

Ando un poco liado con dos programas y me gustaría saber en que me estoy equivocando. Os agradecería vuestra ayuda.

PRIMERO: Genera 100 numeros aleatorios entre 0 y 10 y almacenalos en un vector.
Determina a continuacion cual es el numero que aparece mas veces.

Como puedo hacer para que haga la busqueda dentro del vector, cuando lo hago no me hace la busqueda en los cien numeros como mucho me la hace en 60. Lo segundo es que el numero mayor da siempre lo mismo.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int num_encontrado(int vector[100]);
int mayor(int vector[100]);
int main()
{
   int vector[100];
   int i,n,pos=0,numero;
   int suma,mayor;
   //Ponemos una semilla
   srand(time(NULL));
   //generamos los numeros aleatorios entre 0 y 10
   n=1+rand()%11;
   for (i=0;i<100;i++){
      vector=rand()%11;
      printf("%d-> Numero aleatorio: %d:n",++pos,vector);
      }
   for (i=0; i<11; i++){
   vector=rand()*100 / RAND_MAX;
    suma=suma+vector;
   printf("nLa frecuencia del numero %d es %d ",i,vector);
   }
   mayor=vector;
   printf("nnEl numero que mas se ha repetido es %d",i,vector);
   }
int num_encontrado(int vector[100])    /*no genera los 100 numeros*/
{      //abre funcion
           int i,n,suma=0;
           for (i=0; i<100; i++){
           suma=suma+vector;
           return (suma);
       //cierra la funcion
      }
   }
int mayor(int vector[100])     /*no muestra el numero mayor siempre da 11*/
{
   int mayor=0,i,n,suma;
   for(i=0;i<100;i++){
      if (vector>mayor)
         suma+=mayor;
   }
}


SEGUNDO:
almacene en un vector los 50 primeros numeros de
Fibonacci. Una vez calculados, el programa pedira al usuario que introduzca
un numero y dira si es o no es uno de los 50 primeros numeros de Fibonacci.*/

Se me queda colgado al 42, supongo que es porque he declarado la secuencia como un int y no es suficiente. Lo segundo es como hago para que busque dentro de la secuencia si el numero entero introducido está dentro de los 50 primeros numeros.

Gracias

#include <stdio.h>
int fibonacci(int n); /*funcion que calcula la sucesion de fibonacci*/
main( )
{
   int i,n;
   int Pos=0;
   /*Escribimos el numero entero*/
   do{
      printf("Escribe un numero entero: ");
      scanf("%d",&n);
   }while ((n<0));
   printf("***********************************************************n");
   printf("*                 LA SUCESION DE FIBONACCI                *n");
   printf("***********************************************************n");
   /*comienza el bucle que calcula la sucesion de fibonacci*/
   for (i=1;i<=n;i++){
      if (i !=0)
      printf("Posicion:%d                   Numero: %d",++Pos,fibonacci(i));
      printf("n");
      }
   
}
int fibonacci(int n)
{
   if (n<=1)return n;
      return fibonacci(n-2)+fibonacci(n-1);
}
Título: Re: Necesito consejos, gracias.
Publicado por: AnimaSubtilis en Lunes 2 de Marzo de 2009, 19:50
Mire para encontrar el numero que mas veces se repite simplemente utiliza un for anidado algo asi:

Código: C++
  1.  
  2. int val,ct=0,ct1;
  3. for(i=0;i<100;i++)
  4. {
  5.  ct1=0;
  6.  for(j=0;j<100;j++)
  7.  {
  8.    if(vec[j]==vec[i])
  9.     ct1++;
  10.  }
  11.  if(ct1>ct)
  12.  {
  13.   val=vec[i];
  14.   ct=ct1;
  15.  }
  16. }
  17.  
  18.  

mejor dicho eso es todo..... lo mete en una funcion y estubo...

int num_encontrado(int vector[100]) .....????

no entiendo que hace con esa funcion.... solo entra una vez revice el return......

la de el numero mayor esta mal diseñada.....

Código: C++
  1.  
  2.  
  3.  int mayor(int vector[100])
  4. {
  5. int mayor=0,i,n,suma;
  6. for(i=0;i<100;i++){
  7. if (vector[i]>mayor)
  8.  mayor=vector[i];
  9. }
  10. return mayor;
  11. }
  12.  
  13.  

asi seria la funcion correcta....

espero que con eso le ayude en algo porque no tengo mas tiempo.....taluego...
Título: Re: Necesito consejos, gracias.
Publicado por: Geo en Martes 3 de Marzo de 2009, 06:35
Por favor utiliza las etiquetas [code] para escribir código.

El código que has mostrado tiene varios errores, pero no son complicados, muchos son de concepto:
Recomendación: intenta un poco más para resolverlos, pregunta por dudas un tanto más específicas, aquí no se hacen tareas (o no se deberían hacer).
Título: Re: Necesito consejos, gracias.
Publicado por: ferrarista en Martes 3 de Marzo de 2009, 07:58
Gracias por las respuestas. Intento lo que me habeis puesto y ya os comentaré.


Saludos