Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - norris

#1
Programación C/C++ / Ayuda con vectores
17 Noviembre 2012, 21:11 PM
Hola, estoy haciendo un programa que me pide calcular la cantidad maxima de elementos iguales  y consecutivos que hay, así como las posiciones de comienzo y final en las que se encuentran.

por ejemplo:
posicion 0: 15
posicion 1:23
posicion 2:23
posicion 3:5
posicion4:7
posicion 5:4
posicion 6:4
posicion 7:4
posicion 8:23
posicion 9:23

y en la salida tendria que salir:
El mayor número de elementos consecutivos iguales que aparece es 3 y se encuentran entre las posiciones 5 y 7.

Estoy un poco estancado, lo que he hecho hasta ahora es averiguar cual es el numero que mas repite y cuentas veces se repite, pero no se me ocurre nada para saber lo de consecutivos.

.#include<iostream>
using namespace std;

int main()
{
    int vector[10], contRepetido[10] = {0}, i, j, mayor, indice;
    cout<<"ingrese 10 numeros al azar : "<<endl;
    for (i = 0; i < 10; i++)
    {
         cin>>vector[i];
         for(j = 0; j < i; j++)
         {
              if(vector[j] == vector[i])
                   contRepetido[i]++;
         }
    }
    mayor = contRepetido[0];
    for(int i = 1; i < 10; i++)
         if(contRepetido[i] > mayor)
         {
              mayor = contRepetido[i];
              indice = i;
         }
    cout<<"El # que mas se repite es: "<<vector[indice]<<endl;
    cout<<"Las veces que se repite son :"<<contRepetido[indice] + 1<<endl;
    system("pause");
   
}

Gracias de antemano
#2
Programación C/C++ / Ayuda con arrays
15 Noviembre 2012, 09:40 AM
Hola, era para ver si me podeis ayudar a completar este programa.

Primero me pide desplazar un array: (suponiendo que N sea 10):
DAME 10 ENTEROS: 3 24 7 –25 0 3 21 19 3 895

El array desplazado hacia la IZQUIERDA queda así:
24 7 –25 0 3 21 19 3 895 3

ese le tengo hecho
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t[10],ind,lon,num,aux;

ind=0;
do{
printf ("Introduce un número");
scanf("%d",&num);
t[ind]=num;
ind=ind+1;
}while(ind<10);

/* Al salir del anterior bucle ind está apuntando al 10, es decir,
el número de elementos que tiene el array. Guardamos el primer elemento
sobre aux antes de empezar a desplazar el resto a la izqda. */

lon=ind;
aux=t[0];
printf ("aux %d\n",aux);

/* el indice a 1, cuando desplazamos hacia la izda, empezamos
tomando una posición y asignándoselo a la que está a su izquierda, por eso
empezamos en la segunda posición para asignárselo a la primera*/
ind=1;

/*Bucle para realizar el desplazamiento,  empezamos en ind=1 y acabamos en
ind=long-1*/

while(ind <lon){
t[ind-1]=t[ind];
ind=ind+1;
}

/* En la última posición guardamos lo que había antes en la primera */
t[lon-1]=aux;

/*indice a 0 para implementar el bucle para recorrer e
imprimir la tabla*/

ind=0;
while(ind <lon){
printf("%d\n",t[ind]);
ind=ind+1;
}
system("PAUSE");
}


Ahora me pide que haga lo mismo sólo que esta vez desplazando los elementos hacia la derecha y dejando el último elemento en la primera posición del array.

Ejemplo (suponiendo que N sea 10):
DAME 10 ENTEROS: 3 24 7 –25 0 3 21 19 3 895

El array desplazado hacia la DERECHA queda así:
895 3 24 7 –25 0 3 21 19 3

Gracias de antemano, un saludo
#3
Hola, muy buenas. El código para hallar Logaritmo(base n) de un numero m es el siguiente. Ahora me piden un código para hallar lo mismo pero sin usar la librería math.h

#include <stdio.h>
#include <math.h>

float logaritmo(double argumento, double base){
return log10(argumento)/log10(base);
}

int main() {
double n, base, resultado;
printf ("Ingrese número: ");
scanf("%lf", &n);
printf ("Ingrese base: ");
scanf("%lf", &base);
resultado = logaritmo (n, base);
printf ("Resultado: %f", resultado);
return 0;
}


Gracias de antemano
#4
Programación C/C++ / Ayuda con un programa
2 Noviembre 2012, 16:36 PM
Escribir un programa que muestre al usuario el primer número medio y a continuación le  pregunte si quiere el siguiente. Si el usuario responde que sí ('s'), el programa ha de  calcular y mostrar el siguiente número medio y ha de volver a preguntar al usuario si quiere el siguiente. El proceso se repetirá hasta que el usuario responda que no ('n'). Cada vez que el usuario tenga que responder con una 's' o una 'n', no se admitirá ninguna otra respuesta, repitiendo la pregunta hasta obtener uno de esos dos caracteres.

Un número entero n que sea mayor o igual que 1 es medio si la suma de sus predecesores (1 + 2 + 3 + ... + n – 1) se puede obtener también sumando algunos números contiguos que le siguen:

Ejemplos de números medios y no medios:
 6 es medio porque 1 + 2 + 3 + 4 + 5 = 15 y 7 + 8 = 15. Es decir, la suma de los
predecesores de 6 es obtenible sumando algunos sucesores contiguos de 6.
 35 es medio porque 1 + 2 +...+ 34 = 595 y 36 + 37 +...+ 49 = 595 Es decir, la
suma de los predecesores de 35 es obtenible sumando algunos sucesores contiguos  de 35.
7 no es medio porque 1 + 2 + 3 + 4 + 5 + 6 = 21 y no se puede obtener el valor 21 sumando números contiguos a partir de 8: 8 ≠ 21, 8 + 9 ≠ 21, 8 + 9 + 10 ≠ 21,


Nose por donde cogerlo, podría hacer dos funciones pero nose como. Gracias de antemano