Ir para conteúdo
Fórum Script Brasil
  • 0

C++ Substituição de vetor


matheuslkz

Pergunta

tenho que escolher uma posição do vetor e substituir por um numero que eu escolher, alguém pode me ajudar por favor ?

 

#include<stdio.h>
#define TAM 10

void Set_Elemento(int vetor[], int tam){
    int i,x;
    printf("\n \n Escolha um numero ! = \n");
    scanf("%d",&x);
    for(i=0;i<TAM;i++){
        printf("Vetor[%d] = %d \n",i ,vetor);
    }
    printf("\n escolha a posicao do vetor para trocar o numero ! \n");
    scanf("%d",i);
    vetor = x;
    printf(" \n Vetor[%d] = %d \n",i, vetor[x];    
}
        
//programa principal
int main(){
    int vetor[TAM];
    int i;
    //preenchendo o vetor . . .
    for(i=0;i<TAM;i++){
        printf("\n Preencha o vetor[%d] : \n", i);
        scanf("%d",&vetor);
    }
    // mostrando o vetor . . .
    for(i=0;i<10;i++){
        printf("\n Vetor[%d] = %d", i, vetor);
    }
    Set_Elemento(vetor,TAM);
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Em 07/05/2016 at 20:51, matheuslkz disse:

tenho que escolher uma posição do vetor e substituir por um numero que eu escolher, alguém pode me ajudar por favor ?

 

#include<stdio.h>
#define TAM 10

void Set_Elemento(int vetor[], int tam){
    int i,x;
    printf("\n \n Escolha um numero ! = \n");
    scanf("%d",&x);
    for(i=0;i<TAM;i++){
        printf("Vetor[%d] = %d \n",i ,vetor);
    }
    printf("\n escolha a posicao do vetor para trocar o numero ! \n");
    scanf("%d",i);
    vetor = x;
    printf(" \n Vetor[%d] = %d \n",i, vetor[x];    
}
        
//programa principal
int main(){
    int vetor[TAM];
    int i;
    //preenchendo o vetor . . .
    for(i=0;i<TAM;i++){
        printf("\n Preencha o vetor[%d] : \n", i);
        scanf("%d",&vetor);
    }
    // mostrando o vetor . . .
    for(i=0;i<10;i++){
        printf("\n Vetor[%d] = %d", i, vetor);
    }
    Set_Elemento(vetor,TAM);
}

 

da uma ajuda mano ?

 

tenho que escolher uma posição do vetor e trocar o valor como faço ?

Link para o comentário
Compartilhar em outros sites

  • 0
#include<stdio.h>
#include <stdlib.h>
#define TAM 3

void Set_Elemento(int *vetor){ // Funçao que espera um ponteiro, esse ponteiro indicará onde começa o vetor la na free storage
    int i,x;
    
    printf("\n \n Escolha um numero ! = \n");
    scanf("%d",&x);
    
    do{
        printf("\n escolha a posicao do vetor para trocar o numero ! \n");
        scanf("%d",&i);
    }while( i< || i>TAM );
    
    vetor[i] = x;   
}

//programa principal
int main(){
    int *vetor=(int*)malloc(sizeof(int)*TAM); // vetor é um ponteiro recorde isso, o espaço está na free storage e não dentro da pilha de main
    int i;
    
    //preenchendo o vetor . . .
    for(i=;i<TAM;i++){
        printf("Preencha o vetor[%d] :", i);
        scanf("%d", &vetor[i]);
    }
    
    // mostrando o vetor . . .
    for(i=;i<TAM;i++){
        printf("\n Vetor[%d] = %d", i, vetor[i]);
    }
    
    Set_Elemento(vetor); // Aqui passo um ponteiro, não preciso por o & adiante por que vetor já é um ponteiro, ele armazena uma direção, que é exatamente o que a funçao ta esperando.
    
    for(i=;i<TAM;i++){
        printf("Vetor[%d] = %d \n",i ,vetor[i]);
    }
    
    free(vetor);
    return ; 
} 

Bem... um ponto em destacar é que um vetor simples somente tem o escopo(visibilidade) dentro de main, se você passar ele você estará passando uma "cópia", isso faz com que o vetor que se modifique em outras funções não seja o original que está em main, si não a copia que recebeu, ao voltar a main o vetor estará igual, ou seja não sofreu alterações. Esse problema tem uma solução... se usamos malloc para reserva de memória seu escopo será em todo o programa(em todas as funções), você somente passa o ponteiro, e lá onde o vetor for, se ele for modificado em qualquer função, ele será modificado dentro de main, na realidade ele está em uma parte especial da memoria chamada "free storage", eu somente indico para as funções que quero que se modifique o mesmo vetor que esta na free storage quando passo o ponteiro, e não uma copia que do vetor quando passo por valor para a função.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...