Fácil C

Criando e imprimindo uma struct

Enunciado

Defina uma struct chamada Ponto com dois campos int x e int y. No main, crie uma variável Ponto p = {3, 4} e imprima os valores no formato (x, y).

Requisitos

  • Usar struct com campos x e y.
  • Inicializar com {3, 4}.
  • Imprimir exatamente (3, 4).

Código inicial

#include <stdio.h>

// Defina a struct Ponto aqui

int main(void) {
    // Crie e imprima o ponto
    return 0;
}

Saída esperada

(3, 4)
Ver dica

Acesse os campos com p.x e p.y dentro do printf.

Mostrar solução
#include <stdio.h>

// Define o tipo Ponto com dois inteiros
struct Ponto {
    int x;
    int y;
};

int main(void) {
    // Inicializa os campos na ordem de declaração
    struct Ponto p = {3, 4};
    // Acessa cada campo com o operador ponto
    printf("(%d, %d)\n", p.x, p.y);
    return 0;
}

Passo a passo

  1. struct Ponto { int x; int y; }; declara um novo tipo composto com dois campos inteiros.
  2. struct Ponto p = {3, 4}; cria a variável p e inicializa x com 3 e y com 4, na ordem dos campos.
  3. p.x e p.y acessam os campos individualmente usando o operador ponto.
  4. printf formata a saída como (3, 4) e a quebra de linha \n finaliza.

Por que funciona

A struct reserva espaço para os dois inteiros e o inicializador posicional preenche cada campo. O operador . permite ler cada membro diretamente, pois p é uma variável comum (não um ponteiro).

Erros comuns

  • Esquecer o ponto e vírgula após a definição da struct: struct Ponto { int x; int y; } gera erro de compilação. Corrija com };.
  • Inverter a ordem dos campos na inicialização: {4, 3} imprimiria (4, 3). Mantenha a ordem declarada.
  • Usar p->x em uma variável comum: -> só vale para ponteiros. Use p.x.

Outra forma de resolver

Inicialização nomeada, útil quando a struct tem muitos campos:

struct Ponto p = {.y = 4, .x = 3};

Saída esperada

(3, 4)