boa noite pessoal!
estava revisando tudo que aprendi até agora, mas to encalhado aqui
#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
int main(void){
srand((unsigned) time(NULL));
int vl[6];
cout << "--- Bem vindo a mega sena ---" << endl;
cout << "escolha 6 numeros: ";
for(int ini=1; ini < 7; ini++){
printf("digite numero[%d]: ", ini);
scanf("%d", vl[ini]);
}
}
o que tem de errado?
Eu diria que errado é apenas o uso do scanf que pra funcionar ok deveria passar o endereço de vl[ini], assim: scanf("%d", &vl[ini]);
E outra também é o valor de ini começar em 1 e ir até 6, nas linguagens estruturadas modernas o padrão é começar contar do 0, sendo assim: vl[0] é a posição 1, vl[1] é a posição 2, etc até vl[5] que é a posição 6 do vetor.
Uma coisa que você deverria evitar é misturar C com C++. No seu for, você pode trocar facilmente por:
Como você está usando C++, convém usar <ctime> em lugar de <time.h> e <cstdio> em lugar de <stdio.h>.
using namespace std;
int main(void){
Em C++ (mas não em C!), esse void na lista de parâmetros da função, para indicar que ela não deve receber parâmetro nenhum, é desnecessário, e normalmente não é usado.
srand((unsigned) time(NULL));
int vl[6];
cout << "--- Bem vindo a mega sena ---" << endl;
cout << "escolha 6 numeros: ";
for(int ini=1; ini < 7; ini++){
printf("digite numero[%d]: ", ini);
scanf("%d", vl[ini]);
}
}
o que tem de errado?
Eu diria que errado é apenas o uso do scanf que pra funcionar ok deveria passar o endereço de vl[ini], assim: scanf("%d", &vl[ini]);
E outra também é o valor de ini começar em 1 e ir até 6, nas linguagens estruturadas modernas o padrão é começar contar do 0, sendo assim: vl[0] é a posição 1, vl[1] é a posição 2, etc até vl[5] que é a posição 6 do vetor.
Aqui um cuidado com terminologia e a confusão entre ordenação e cardinalidade. Eu acho inapropriado dizer, por exemplo, que “vl[0] é a posição 1”, mas é correto dizer que “vl[0] é o primeiro elemento”. O índice aplicado a um array ou vetor do C ou do C++ é um deslocamento em relação ao seu início. Esse deslocamento é uma quantidade, e, portanto, um valor cardinal. Entretanto, quando se fala em ordenação, não existe algo como “zerésimo”, porque toda ordenação começa com o primeiro elemento, seguido pelo segundo (que é o primeiro deslocado de uma unidade), pelo terceiro (que é o segundo deslocado de uma unidade ou o primeiro deslocado duas unidades) e assim por diante.
Muitas linguagens modernas vem usando, sim, o índice 0 para designar o primeiro elemento de uma coleção, mas não estou certo de que isso seja uma regra universal, pois tenho a sensação de que linguagens e ferramentas voltadas a aplicações matemáticas usam 1 como indicador da primeira posição de seus arrays, justamente porque esse uso na Matemática é mais comum (por exemplo: quando você aprendeu PA e PG, provavelmente aprendeu a chamar o primeiro elemento de a1, não a0).
De fato, acabei de achar um site que usa exatamente esse argumento, e apresenta várias linguagens, incluindo linguagens modernas, que usam 1 como primeiro índice válido em seus arrays: https://iq.opengenus.org/array-indices-start-from-1/.
Uma coisa que você deverria evitar é misturar C com C++. No seu for, você pode trocar facilmente por:
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)
4. Re: sorteio da mega sena, erro no codigo
SamLusa XUbuntu
Post recolhido
Enviado em 22/12/2021 - 06:13h
paulo1205 escreveu:
Muitas linguagens modernas vem usando, sim, o índice 0 para designar o primeiro elemento de uma coleção, mas não estou certo de que isso seja uma regra universal, pois tenho a sensação de que linguagens e ferramentas voltadas a aplicações matemáticas usam 1 como indicador da primeira posição de seus arrays, justamente porque esse uso na Matemática é mais comum (por exemplo: quando você aprendeu PA e PG, provavelmente aprendeu a chamar o primeiro elemento de a1, não a0).
Valeu Paulo, essa eu não sabia. Eu pensei que somente as linguagens maios antigas que usassem índice 1 como início de array. De qualquer forma, é vivendo e aprendendo.