Ir ao conteúdo
  • Cadastre-se

C erro na hora de imprimir


CARRETA PCZAO

Posts recomendados

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

//cabeçalho
int *p;
int i,pos,num,cont[5];
char op;
main(){
	do{
	p = (int*) calloc(5,sizeof(int));
		printf("INFORME UM NUMERO :");  fflush(stdin); scanf("%i",&num);
		printf("INFORME UMa posiçao de 1 a 5 :"); fflush(stdin); scanf("%i",&pos);
     *(p+pos)=num;
	 cont[i]= *(p+pos)=num;
	 
		printf("DESEJA CONTINUAR?"); fflush(stdin); op=getchar();
	

    	//inicializa com 0 para mim coloca-olo na 1 pposiçao teri de somar mais 1
	    
	
		
 	}while(op!='n');
	 	for( i=1;i<5;i++){
		
	
	  printf("\n a posiçao %i de  endereço  %i tem o valor de %i o %i",i,p,*(p+i),cont[p+i]); //pois aqui ele soma a posiçao
	  }
		}



 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Olá, tudo bem?

Então ...

 

Em 06/11/2018 às 16:00, limpa o c disse:

cont[ i ]= (* (+ (pos)))= num;

 

Ocorrem imprevistos quando não iniciamos as variáveis, e usamos  imediamento imediatamente de índice numa estrutura de dados (arranjo) que, possivelmente, acessará locais proibidos, senão, pode subscrever dados importantes do processo ou ler informações incoerentes, entre tantos outros erros ate segmentation fault. Previna erros lógicos desse tipo como por exemplo ao iniciar a variável em vermelho na declaração, logicamente, para dá mais um sentido à declaração senão o fará antes do uso.

 

 

Em 06/11/2018 às 16:00, limpa o c disse:

contp i ]

 

O que será que você quis dizer com isso, olha a polemica; o índice para um valor do vetor é o valor da referencia no apontador mais 1 até 4. Whatssss 😖 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

entao consertei estav fazendo errado colocquie a alocaçao dentro do for e o cont era porque todo ponteiro é internamente um vetor

 

aqui esta o codigo corrigdo

#include<stdio.h> 
#include<stdlib.h> 
void imprime(); 
//cabeçalho 
int *p=NULL;
int i,pos,num,cont; 
char op; 
main(){ 
    p = (int*) calloc(5,sizeof(int));
    if(p==NULL){
    printf("ERRO: Memoria Insuficiente");
    } 
    do{ 
        printf("INFORME UM NUMERO :"); fflush(stdin); scanf("%i",&num); 
        printf("INFORME UMa posiçao de 0 a 5 :"); fflush(stdin); scanf("%i",&pos); 
        *(p+pos)=num; 
        printf("DESEJA CONTINUAR?"); fflush(stdin); op=getchar(); 
        if(op=='s')cont++;
        if(op=='n'){ 
            imprime();    
        } 
    }while(op=='s'); 
} 
void imprime(){ 
    for( i=0;i<=cont;i++){ 
    printf("\n a posiçao %i de endereço %i tem o valor de %i ",i,p,*(p+i)); //pois aqui ele soma a posiçao 
    } 
    printf("\n \n \n \n " );
    system("pause");
}

 

Link para o comentário
Compartilhar em outros sites

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...