Galera estou fazendo um exercicio em C onde tenho dois vetores vetorA e vetorB ambos com 100 posições…
O exercicio se baseia em pegar o vetorA atribuir o valor 100 a posição zero vetorA[0] = 100 e ir incrementando 1 até 199 (100x)
E no vetorB tem que atribuir o valor 1000 a posição 99 (ultima) vetorB[99] = 1000 e ir decrementando 1 até chegar a 901
O decremento é feito por um contador que começa em zero portanto nada sera alterado na 1ª volta (rodada)…
O problema é que o programa atribui o valor certinho, faz o somo certinha, porem na hora de mostrar a posição Zero do vetorA ele pula sózinho!! Mostrando o valor da posição 1 no caso 101… resumindo o 1º que aparece é 101 e deveria ser 100. Obs.: É obrigatorio o uso de ponteiro! :?
[code]# include
using namespace std;
int main(){
int i,
*ptrVetorA,
*ptrVetorB,
vetorA[100],
vetorB[100];
Pq complicar tanto? É um exercício? Precisa usar ponteiro? Vc sabia que uma variável do tipo array (“vetor”) em C++ na verdade é um ponteiro?
[code]for ( int i = 0; i < 100; i++ ) {
vetorA[i] = 100 + i;
vetorB[99-i] = 1000 - i;
}
// mostra…
// soma
for ( int i = 0; i < 100; i++ ) {
vetorA[i] += vetorB[i];
}[/code]
[]'s[/quote] davidbuzatto, também não sei pra que complicar tanto, mais o professor exigiu que fosse dessa forma. Tenho que usar ponteiro!
Essa parte que você mostrou esta beleza no código, mais tudo tem que ser feito através de ponteiros mesmo.
O problema esta na primeira linha que devia aparecer e não aparece!
O vetor B parece estar sendo exibido corretamente também.
Flw
[/quote] sic, então é exatamente esse meu problema, não sei oque acontece mais não mostra essa primeira linha do vetor A: vetorA = 100 ptrVetorA = 0xbfba04b8 *ptrVetorA = 100
Ele pula e vai direto para a segunda linha… :? vetorA = 101 ptrVetorA = 0xbfba04bc *ptrVetorA = 101
Estou usando o Visual Studio 2010, mais também teste do DEV-C++ e deu mesma coisa! :shock:
Jura que não modificou em nada o programa? Porque senão essa merda aqui ta doida!!
nenhuma modificação, unica diferença é que compilei e executei no Ubuntu. Para falar que não teve nenhuma diferença tirei aquele system(“pause”) por que o compilador reclamou dele.
Talvez seja o buffer do console que esteja sendo consumido totalmente e você está perdendo justamente o primeiro valor. Tente comentar o código que exibe a soma dos vetores para ver se a posição 0 do vetor A é impressa ou não.
Vishe não deu certo não mano…
O estranho é que mandei agora para um amigo pelo msn e no pc dele também não apareceu!
Começa exibindo da segunda linha!!
[quote=rebinho]Vishe não deu certo não mano…
O estranho é que mandei agora para um amigo pelo msn e no pc dele também não apareceu!
Começa exibindo da segunda linha!! [/quote]
É que o prompt não está mostrando a linha. Tente comentar o código que mostra o vetorB e a soma. Vc vai ver que vai aparecer a primeira linha. O prompt do windows tem um limite de linhas que são exibidas, por isso a primeira linha está sendo “comida”.
[quote=davidbuzatto][quote=rebinho]Vishe não deu certo não mano…
O estranho é que mandei agora para um amigo pelo msn e no pc dele também não apareceu!
Começa exibindo da segunda linha!! [/quote]
É que o prompt não está mostrando a linha. Tente comentar o código que mostra o vetorB e a soma. Vc vai ver que vai aparecer a primeira linha. O prompt do windows tem um limite de linhas que são exibidas, por isso a primeira linha está sendo “comida”.
[]'s[/quote]
Putz, nunca tinha acontecido isso… e eu ja exibe mais linhas de uma vez! :?
Tem como contornar isso? fazer exibir a maldita linha?
Se você estiver executando através do prompt do windows, clica com o botão direito na barra onde tem o botão de minimizar, maximizar e etc. Vai abrir um menu, clique em propriedades.
Na aba Layout tem um painel "Tamanho do buffer da tela"
Configura como: Largura 150 e Altura 9999 e clica em OK.
Tente executar de novo para ver se aparece.
Isso só funcionará se você estiver executando através do prompt do Windows hein.
Se não for possível fazer isso, acho que uma saída é jogar o resultado em um arquivo ao invés de imprimir no console.
[quote=sic]Se você estiver executando através do prompt do windows, clica com o botão direito na barra onde tem o botão de minimizar, maximizar e etc. Vai abrir um menu, clique em propriedades.
Na aba Layout tem um painel "Tamanho do buffer da tela"
Configura como: Largura 150 e Altura 9999 e clica em OK.
Tente executar de novo para ver se aparece.
Isso só funcionará se você estiver executando através do prompt do Windows hein.
Se não for possível fazer isso, acho que uma saída é jogar o resultado em um arquivo ao invés de imprimir no console.
Flw[/quote] sic brigadão parceiro… Tinha procurado algo do tipo ai achei um tutorial na net mais mando fazer diferente ai não deu certo.
Fiz do jeito que tu disse e deu certinho… Mesmo rodando pelo Visual Studio continua as mesmas configurações do prompt!
Agora tudo rodando e exibindo bunitinho!
Muito obrigado, e valeu pela ajuda também davidbuzatto.
Falo abraço!