Commit 30f4e096 authored by João Denis Rodrigues's avatar João Denis Rodrigues

adicione exemplos sobre structs

parent 727724f2
#include <stdio.h>
#include <stdlib.h>
struct coord {
int x;
int y;
};
struct retang {
struct coord esqcima;
struct coord dirbaixo;
};
void main() {
int altura, largura;
long area;
struct retang quadro;
/* recebe as coordenadas */
printf("Digite a coordenada x superior esq.: ");
scanf("%d", &quadro.esqcima.x);
printf("digite a coordenada y superior esq.: ");
scanf("%d", &quadro.esqcima.y);
printf("Digite a coordenada x inferior dir.: ");
scanf("%d", &quadro.dirbaixo.x);
printf("digite a coordenada y inferior dir.: ");
scanf("%d", &quadro.dirbaixo.y);
/* calcula o comprimento e a largura */
largura = quadro.dirbaixo.x - quadro.esqcima.x;
altura = quadro.esqcima.y - quadro.dirbaixo.y;
/* calcula e informa a area */
area = abs(largura * altura);
printf("O retangulo tem uma area de %ld unidades.\n", area);
//O exemplo da apostila daria numero negativo
}
/* Passando argumentos por valor e referencia */
#include <stdio.h>
struct coord {
int x;
int y;
};
void por_valor( struct coord );
void por_ref( struct coord * );
void main () {
struct coord ponto;
ponto.x = 2;
ponto.y = 4;
printf("Antes de chamar por_valor(): x = %d, y = %d\n", ponto.x, ponto.y);
por_valor(ponto); /* chamada por valor */
printf("Depois de chamar por_valor(): x = %d, y = %d\n", ponto.x, ponto.y);
por_ref(&ponto); /* chamada por referencia */
printf("Depois de chamar por_ref(): x = %d, y = %d\n", ponto.x, ponto.y);
}
void por_valor(struct coord ponto) {
ponto.x = ponto.y = 0;
}
void por_ref(struct coord *ponto) {
ponto->x = ponto->y = 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment