Pesquisar neste blog

11/05/2018

Exercicios resolvidos com ponteiro em C/C++

#include <stdio.h>

#include <stdlib.h>



/* 1 - ESCREVA UM PROGRAMA QUE DECLARE UM INTEIRO, UM REAL E UM CHAR, E PONTEIROS PARA INTEIRO, REAL, E CHAR. ASSOCIE AS VARIÁVEIS AOS PONTEIROS(USE &). MODIFIQUE OS VALORES DE CADA VARIÁVEL USANDO PONTEIROS. IMPRIMA OS VALORES DAS VARIÁVEIS ANTES E APÓS A MODIFICAÇÃO.*/



main (void){



int num = 15;



double valor= 20.77;



char letra = 'h';



int *Endint = &num;



float *Endfloat = &valor;



char *Endchar = &letra; 



printf("Variavel inteiro = %d \nEndereco ponteiro inteiro = %i\n\n", num, Endint);



printf("Variavel float  =  %.2f\nEndereco do ponteiro float = %i\n\n",valor, Endfloat);



printf("Variavel char  = %c\nEndereco do ponteiro  char = %i\n\n",letra, &letra);



printf("\tAPOS MODIFICACAO:\n");



*Endint = 22;



*Endfloat = 50.35;



*Endchar = 'k';



printf("\nEndereco do ponteiro: %d\nAlterado para o valor: %d\n\n", Endint, *Endint);



printf("Endereco do ponteiro: %d\nAlterado para o valor: %d\n\n", Endfloat, *Endfloat);



printf("Endereco do ponteiro: %i\nAlterado para o caracter: %c\n\n", Endchar, *Endchar);



return EXIT_SUCCESS;



}







#include <stdio.h>



#include <stdlib.h>



/*2- ESCREVA UM PROGRAMA QUE CONTENHA DUAS VARIÁVEIS INTEIRAS.COMPARE



SEUS ENDEREÇOS E EXIBA O MAIOR ENDEREÇO.*/



int main (void){



int a = 27, b = 77;



int *EndA = &a , *EndB = &b;



printf("\tA = %d     B = %d\n\n",a, b);



printf("Endereco de A = %d\nEndereco de B = %d\n",EndA, EndB);



if(EndA > EndB){



if(&a > &b) 



printf("\n\nEndereco %d de A eh maior: \n",EndA);



//printf("\n\nEndereco %d de A eh maior: \n", &a);



}else{



printf("\n\nEndereco %d de B eh maior: \n",EndB);



//printf("\n\nEndereco %d de B eh maior: \n",&b);



}



//ou



/*if(&a > &b){ 



printf("\n\nEndereco %d de A eh maior: \n", &a);



}else{



printf("\n\nEndereco %d de B eh maior: \n",&b);







printf("\n");*/



return EXIT_SUCCESS;



}



#include <stdio.h>



#include <stdlib.h>



/* 3 - Escreva um programa que contenha 2 variaveis inteiras. Leia 



essas variavéis do teclado. Em seguida, compare seus endereços



e exiba o maior endereço.*/



int main (void){



int a, b;



printf("\tDigite o valor de a: ");



scanf("%d",&a);



printf("\n\tDigite o valor b: ");



scanf("%d",&b);



printf("\nValor de a = %i\nValor de b = %i\n\n",a, b);



int *EndA = &a, *EndB = &b;



printf("Endereco de a = %i\nEndereco de b = %i\n\n",EndA, EndB);



if(EndA > EndB){



printf("\n\nEndereco %d de a eh maior:",EndA);



}else{



printf("\n\nEndereco %d de b eh maior:", EndB);



}



printf("\n\n");



return EXIT_SUCCESS;



}





#include <stdio.h>



#include <stdlib.h>



#define SIZE 5



/*4 - CRIE UM PROGRAMA QUE CONTENHA UM ARRAY DE 5 ELEMENTOS INTEIROS. lEIA



ESSE ARRAY DO TECLADO E IMPRIMA O ENDERECO DE POSICOES CONTENDO VALORES PARES.*/



int main (void){



int vet[SIZE], i;



int *Endvet;



Endvet = vet;



printf("\tDigite %d elementos:\n",SIZE);



for(i = 0; i < SIZE; i++){



printf("%d: ",i+1);



scanf("%d", &vet[i]);



}



printf("\n\tELEMENTOS:\n\n");



for(i = 0; i < SIZE; i++){



printf("%d  ",vet[i]);



}



printf("\n\nENDERECOS DO ARRAY:\n");



for(i = 0; i < SIZE; i++){



printf("%i : %i : %i\n",i+1, vet[i], Endvet++);







printf("\nENDERECOS DO ARRAY PAR:\n");



Endvet = vet;



for(i = 0; i < SIZE; i++){



if(vet[i] %2 == 0){



printf("\nNumero %d eh par : Posicao = %d",vet[i], Endvet);



}



Endvet++;



}



return EXIT_SUCCESS;



}



#include <stdio.h>



#include <stdlib.h>



#define SIZE 10



/* 5 - CRIE UM PROGRAMA QUE CONTENHA UM ARRAY DE FLOAT CONTENDO 10 ELEMENTOS.



IMPRIMA O ENDERECO DE CADA POSICAO DESSE ARRAY.*/



int main (void){



float vet[SIZE];



int i, *Endvet;



Endvet = vet;



printf("\tELEMENTOS:\n\n");



for(i = 0; i < SIZE; i++){



printf("[%.2f] ", (vet[i] = 10 + rand() %100) / 3.27);



}



printf("\n\nENDERECOS DO ARRAY:\n\n");



for(i = 0; i < SIZE; i++){



printf("%i : %.2f : %i\n",i+1, vet[i]/3.27, Endvet++);







return EXIT_SUCCESS;



}

Nenhum comentário: