Saber numeros primeros en una cadena desordenada pero a voluntad del usuario ?

Iniciado por luis456, 5 Enero 2013, 11:23 AM

0 Miembros y 1 Visitante están viendo este tema.

Novlucker

Al ver las distintas preguntas en el post me pregunto, la idea es que te ayuden con el código o que lo hagan todo por ti?  :¬¬
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

leosansan

Cita de: luis456 en  7 Enero 2013, 09:57 AM
Sera que uso Dev ya que el programa no se detiene a mostrarme los numeros compila bien y todo,pero no me muestra nada de lo rapido que se sale

Además surge una duda, al introducir 2,3,7,0 da como primos 3,7 .... ¿y el 2?.
Para que tengas otro enfoque en el siguiente código:
* se pide al usuario que introduzca previamente el total de números a ingresar.
* Como ordenación he usado el método burbuja.
* Guardo los números primos en un arrray, de tamaño el número de primos que hay, por si tuviera que usarlos posteriormente para otra cosa.

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
using namespace std;

void burbuja(int a[], int n){
     int indiceintercambio, j,i;
     i=n-1;
     while(i>0)
     {
        indiceintercambio=0;
        for(j=0; j<i; j++)
            if(a[j]>a[j+1])
            {
                 int aux = a[j];
                 a[j]=a[j+1];
                 a[j+1]=aux;
                 indiceintercambio=j;
            }
        i = indiceintercambio;
     }

}

int primo(int n){
    int res;
    if(n==1) return false;
    for(int i=2; i < n; i++){
        res = n % i;
        if(res==0) return false;
    }
    return true;
}

int main(){
   bool primos = false;
    int cont = 0,n;
    cout << "Indique el total  de numeros: ";
    cin >>n;
    int numero[n],temp[n];
   for(int j=0;j<n;j++){
        cout << "Introduzca  numero " << j+1 <<": ";
        cin >> numero[j];
    }
   cout << "Desordenados: ";
    for(int k=0;k<n;k++){
        primos = primo(numero[k]);
        if(primos==true) {
            temp[cont]= numero[k];
            cout << temp[cont] <<"  ";
            cont++;
        }
    }
  cout << endl << "Hay " << cont << " numeros primos"<<endl;
  cout << endl<< endl;

   int num_primo[cont];
   for(int k=0;k<cont;k++){
      num_primo[k]=temp[k];
   }
   cout << endl<< "Ordenados: ";
   burbuja(num_primo,cont);
    for(int k=0;k<cont;k++){
      cout << num_primo[k] <<"  ";
   }
cout << endl;
    system ("pause");
    return 0;
}

Saluditos!.
P.D: Cámbiate de Dev a Code::Blocks, además de otras cosas el uso de pestañas y múltiples ventanitas en la misma ventana le hace más versátil . ... y pausa automáticamente el programa .... y es libre.

luis456

Este si tira y tenias razón en lo de los arrray:)

Gracias me sirve un monton y otra cosa ya tengo el codeblok y lo estoy mirando ya lo pase a español pero no esta completo.ejjeje esta medio y medio .pero como sabes el hombre es animal de constumbres.

Gracias
Luis

Que tu sabiduria no sea motivo de Humillacion para los demas