Tenho o seguinte exercício…
Crie um programa em Linguagem C/C++ que carregue uma matriz 3x3 somente com números aleatórios múltiplos de 5 e exiba os mesmos.
No caso ele sempre mantém os mesmo números como posso fazer ele ficar saindo aleatório ? no caso toda vez que compilar e executar ?
[code]#include
#include<stdlib.h>
using namespace std;
int main(){
int l,c,num;
int mat[3][3];
for(l=0;l<3;l++){
for(c=0;c<3;c++){
mat[l][c] = (rand()% 100) * 5;
}
}
for(l=0; l<3; l++){
cout << “\n”;
for(c=0;c<3;c++){
cout << mat[l][c];
cout << " ";
}
}
system (“pause>>null”);
}
[/code]
A linguagem é C ou C++? A solução é diferente em ambas.
C++ no caso ficaria muito diferente do C neste caso ?
Mais gostaria no C++ esta solução…
Ficaria assim:
#include <iostream>
#include <random>
using namespace std;
int main(){
//Configura qual é o gerador
default_random_engine gerador;
//Configura qual é o intervalo (nesse caso de 1 até 100)
uniform_int_distribution<int> distribuicao(1,100);
int mat[3][3];
for(int l=0; l<3; l++){
for(c=0;c<3;c++){
mat[l][c] = distribuicao(gerador) * 5;
}
}
for(int l=0; l<3; l++){
for(int c=0; c<3; c++){
cout << mat[l][c] << " ";
}
cout << endl;
}
system ("pause>>null");
}
Veja a lista completa de geradores e distribuições possíveis aqui:
http://www.cplusplus.com/reference/random/
Em C seria:
[code]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
//Inicializa o gerador com um valor baseado no tempo
//Assim esse valor será diferente a cada execução do programa
srand(time(NULL));
int mat[3][3];
for(int l=0;l<3;l++){
for(int c=0;c<3;c++){
mat[l][c] = (rand()% 100) * 5;
}
}
for(int l=0; l<3; l++){
for(int c=0;c<3;c++){
printf("%i ", mat[l][c]);
}
printf("\n");
}
system ("pause>>null");
}[/code]
Em C os números gerados terão um comportamento muitíssimo pior do que em C++. Os algoritmos de geração do C++ são bem melhores, com uma distribuição bem mais uniforme.
Entendi Vini muito obrigado mais uma vez.
Eu nem sabia desse Random em C++…
O pior que meu professor dando exemplo uma vez falou que era só usar o rand em c++ ele misturava o código dele inteiro C e C++ nem compilava não achava os erros isso com coisas simples …
Tenho convicção que nem meu professor conhece isso …
Na prova vou ter que comentar se não nem ele entende ASUHSUSHUSA.
Vlw 
Isso entrou no C++ em 2011.
Por isso ele não deve saber,não estuda mais programação…rs
Vlw
[quote=lucasvvasconcelos]Por isso ele não deve saber,não estuda mais programação…rs
Vlw [/quote]
A mesma coisa em relação a declaração de variáveis. No C, não é mais obrigatório declarar tudo no início do método desde a versão de 99. No C++ provavelmente esse recurso entrou ainda antes…
Mais para frente penso e estudar um pouco de C e voltar estudar o C++ conforme o seu Roadmap.
Thank’s 