
encautrenan
(usa KUbuntu)
Enviado em 02/11/2015 - 20:43h
Gostaria de um exemplo onde são gerados n números aleatórios em binário de 9 digitos e depois convertê-los para decimal e depois escolher o maior ou menor em decimal ..
tentei da seguinte maneira :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <cmath>
int main()
{
int contador,q,x[30],a,b;
int matriz[30][9],selecionado[30];
double aptidao[30],aux,soma=0;
int selecionadomatriz[30][9],decimal[30];
double aptidao2[30];
int aux2[4];
int vezes = 0, maximo = 50;
for(contador=0;contador<30;contador++)x[contador]=0;
//Gerando a população
for(contador=0;contador<30;contador++)
{
for(q=0;q<9;q++)
{
matriz[contador][q] = rand()%2;
}
for(q=0;q<9;q++)
{
printf("%d", matriz[contador][q]);
}
printf("\n");
}
while(vezes<maximo)
{
vezes++;
//Tranformar para decimal
for(contador=0;contador<30;contador++)
{
for(q=0;q<9;q++)
{
x[contador]=x[contador]+ matriz[contador][q]*(pow(2,(8-q)));
}
}
printf("%e \n",aptidao2[contador]);
}
}
}
for(int i=29; i >= 1; i--)
{
for( int j=0; j < i ; j++)
{
if(aptidao2[j]>aptidao2[j+1])
{
aux = aptidao2[j];
aptidao2[j] = aptidao2[j+1];
aptidao2[j+1] = aux;
aux = x[j];
x[j] = x[j+1];
x[j+1] = aux;
}
}
}
porém falta a parte de colocar em ordem crescente