Ir ao conteúdo

Posts recomendados

Postado

Bom, o programa deve receber e imprimir uma quantidade n de números inteiros ímpares.

O problema é que a função de alocação de memória (obrigatória no exercíco por conta do conteúdo estudado) não está funcionando. Os valores são impressos na quantidade certa, porém o conteúdo é sujeira de memória e não os respectivos valores que deveriam ter sido lidos.

Abaixo, segue o código:

#include <stdio.h>
#include <stdlib.h>
int main(){
    int n, *p, i;
    printf("Quantidade de numeros: ");
    scanf("%d", &n);
    system("cls");
    p=(int*)calloc(n,sizeof(int));
    if(p==NULL){
        printf("Memoria indisponivel");
        exit(1);
    }
    for(i=0;i<n;i++){
        p[i]=0;
        printf("Digite um numero: ");
        getchar();
        scanf("%d", &p[i]);
        if(p[i]==0 || p[i]%2==0)
            i--;
        system("cls");
    }
    for(i=0;i<n;i++)
        printf("%d\n", &p[i]);
    free(p);
    return 0;
}

 

Postado

@KXSY  Cara, eu percebi minha ********** justamente depois que eu fiz esse post, hahahaha!
Mas obrigado por tentar ajudar. E respondendo sua pergunta, o comando if ali serve para garantir que sejam selecionados somente números diferentes de zero ou ímpares. Por isso que se p==0 ou p%2==0, a contagem decrementa (i--) em vez de progredir, fazendo com que outro número, que seja ímpar, ocupe aquela posição. Desse jeito a estrutura for só finaliza quando o ponteiro armazenar n valores ímpares e não só n valores quaisquer.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!