matheuslkz Postado Maio 7, 2016 Denunciar Share Postado Maio 7, 2016 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); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Maio 8, 2016 Denunciar Share Postado Maio 8, 2016 se você pretende escolher a posição do vetor com scanf("%d",i); saiba que está errado. Não seria scanf("%d",&i)? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matheuslkz Postado Maio 9, 2016 Autor Denunciar Share Postado Maio 9, 2016 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 principalint 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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Maio 9, 2016 Denunciar Share Postado Maio 9, 2016 #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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matheuslkz Postado Maio 9, 2016 Autor Denunciar Share Postado Maio 9, 2016 vlw ! :D conseguir fazer baseando no que você me mando vlw manolow (não sei como fecha o topido D:) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
matheuslkz
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
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.