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

Ponteiros


Isabella

Pergunta

Boa noite, estou tentando fazer o seguinte programa

Elabore um programa que armazene valores aleatórios em um vetor de inteiros de 10 posições. Depois, em outro vetor de ponteiros de inteiros de tamanho 10, coloque os endereços dos valores do vetor de inteiros de forma ordenada crescente, ficando a primeira posição do vetor de ponteiros com o endereço do menor valor até a última posição que conterá o endereço do maior valor.

entretando, qndu vai imprimi em ordem crescente o valor da memoria, ele imprime, como se todos os endereços fossem iguais, ae vai o meu codigo

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int vetor[10], testou=1, temp, i;
    int *pt;
    pt=&vetor[10];
    
    printf("Valores do vetor\n\n");  
    for (i=0;i<10;i++)
    {
    printf("Digite o %d elemento do vetor:",i+1);
    scanf("%d",&i+1);
    }
  
    while(testou == 1)
    {
    testou = 0;
    for(i=0; i<10; i++)
    {
    if(vetor[i]>vetor[i+1])
    {
    temp = vetor[i];
    vetor[i] = vetor[i+1];
    vetor[i+1] = temp;
    testou = 1;
    }
    }
    }
    printf("---------------------------------------");
    printf("\nPosicoes de memoria em ordem Crescente\n");
    printf("---------------------------------------\n");
    for(i=0; i<10; i++)
    {
    printf("%p\n",pt);
    }
    
    printf("\n");
    system("pause");
}

Editado por Isabella
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

a mas você ta imprimindo sempre o mesmo pt.

você não devia por um pt++ dentro do for pra ele ir avancando as posicoes??

e otra coisa, pra pegar o endereco do array não era pra ser só assim??

pt = vetor;
porque se você fizer isso:
pt=&vetor[10];

você ta pegando o enderco da posicao 10 (q nem existe, pois vai ate o 9).

e otra coisa ainda, pelo q eu entendi, era pra você criar dois arrays no seu programa. uma pra dexar os valores e otro os enderecos. e você fez so o array pros valores. e você ta ordenando os valores, mas pelo q eu entendi, era só pra pegar os enderecos de acordo com a ordenacao dos valores.

o seu print no final vai mostrar os enderecos na sequencia, mas pelo q entendi era pra ser os enderecos na sequencia dos valores.

Link para o comentário
Compartilhar em outros sites

  • 0

Gente me ajuda aqui na atribuição, eu to querendo fazer um vetor e o outro de ponteiros de vetores, so q não estou conseguindo,nesse programa eu quero digitar os 10 numeros e imprimir o endereço de memoria deles, porém não estou conseguindo

#include <stdio.h>
#include <stdlib.h>

int main ()
{
    int a[10],i;
    int *pa[10];
    
 for(i=0;i<10; i++)
    {
    printf("\n Digite o %d°=",i+1);//Digitar os elementos
    scanf ("%d", &a[i]);
    }
    printf ("\n\n");
    
pa=&a[10];


      for(pa=0;pa<10;pa++)
      {
      printf("%u",&pa);
      }

system("pause");;
}

Editado por Isabella
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...