paulo1205
(usa Ubuntu)
Enviado em 21/12/2021 - 13:08h
Complementando o que já disse, o SamL, ...
SamL escreveu:
newarch escreveu:
boa noite pessoal!
estava revisando tudo que aprendi até agora, mas to encalhado aqui
#include <iostream>
#include <time.h>
#include <stdio.h>
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:
for(int ini=0; ini < 6; ini++){
cout<<"digite numero["<<ini<<"]: ";
cin >> vl[ini];
}
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)