Construa uma estrutura para representar e armazenar os dados contidos na tabela abaixo. Faça um programa para preencher a estrutura com os dados e para, em seguida, imprimir tais dados.
Nome | Avenida/Rua | N° | Bairro | Compl. | CEP | Cidade | UF | Tel. 1 | Tel. 2 |
---|---|---|---|---|---|---|---|---|---|
João | Av. Rio Branco | 421 | Centro | Apto. 501 | 36.046-030 | Juiz de Fora | MG | (32) 32365539 | (32) 984157873 |
Carolina | R. Miguel de Frias | 125/A | Icaraí | - | 36.240-000 | Niterói | RJ | (21) 26135671 | (21) 988569091 |
Jefferson | R. São Clemente | - | Botafogo | Bloco IV | 22.250-040 | Rio de Janeiro | RJ | - | 991940921 |
Passo 1
O enunciado pede um programa em C que represente os dados da tabela (nome, endereço completo, CEP, cidade, UF e dois telefones) usando uma estrutura (
struct
), preencha três registros com os valores fornecidos e depois imprima esses registros na saída. O conteúdo envolve definição de struct
, arrays de struct
, inicialização de strings literais e uso de printf
para exibição.Passo 2
Todos os campos são textos (strings) de tamanho limitado. Vamos definir uma
struct Pessoa
com vetores de char
para cada campo, escolhendo tamanhos seguros:nome[50]
rua[50]
numero[10]
bairro[30]
complemento[20]
cep[10]
cidade[30]
uf[3]
tel1[20]
tel2[20]
Passo 3
Declaramos a
struct
e criamos um array de três elementos, inicializando cada campo com os literais correspondentes da tabela:#include <stdio.h>
typedef struct {
char nome[50];
char rua[50];
char numero[10];
char bairro[30];
char complemento[20];
char cep[10];
char cidade[30];
char uf[3];
char tel1[20];
char tel2[20];
} Pessoa;
int main() {
Pessoa pessoas[3] = {
{
"João",
"Av. Rio Branco",
"421",
"Centro",
"Apto. 501",
"36.046-030",
"Juiz de Fora",
"MG",
"(32) 32365539",
"(32) 984157873"
},
{
"Carolina",
"R. Miguel de Frias",
"125/A",
"Icaraí",
"-",
"36.240-000",
"Niterói",
"RJ",
"(21) 26135671",
"(21) 988569091"
},
{
"Jefferson",
"R. São Clemente",
"-",
"Botafogo",
"Bloco IV",
"22.250-040",
"Rio de Janeiro",
"RJ",
"-",
"991940921"
}
};
Passo 4
Percorremos o array e imprimimos cada registro formatado:
for (int i \(=0\); i < 3; i\(++\)) {
printf("Registro %d:
", i\(+1\));
printf(" Nome : %s
", pessoas[i].nome);
printf(" Endereço : %s, %s, %s
",
pessoas[i].rua, pessoas[i].numero, pessoas[i].bairro);
printf(" Complemento: %s
", pessoas[i].complemento);
printf(" CEP : %s
", pessoas[i].cep);
printf(" Cidade/UF : %s/%s
", pessoas[i].cidade, pessoas[i].uf);
printf(" Tel. 1 : %s
", pessoas[i].tel1);
printf(" Tel. 2 : %s
", pessoas[i].tel2);
}
return 0;
}
Resposta
#include <stdio.h>
typedef struct {
char nome[50];
char rua[50];
char numero[10];
char bairro[30];
char complemento[20];
char cep[10];
char cidade[30];
char uf[3];
char tel1[20];
char tel2[20];
} Pessoa;
int main() {
Pessoa pessoas[3] = {
{
"João",
"Av. Rio Branco",
"421",
"Centro",
"Apto. 501",
"36.046-030",
"Juiz de Fora",
"MG",
"(32) 32365539",
"(32) 984157873"
},
{
"Carolina",
"R. Miguel de Frias",
"125/A",
"Icaraí",
"-",
"36.240-000",
"Niterói",
"RJ",
"(21) 26135671",
"(21) 988569091"
},
{
"Jefferson",
"R. São Clemente",
"-",
"Botafogo",
"Bloco IV",
"22.250-040",
"Rio de Janeiro",
"RJ",
"-",
"991940921"
}
};
for (int i \(=0\); i < 3; i\(++\)) {
printf("Registro %d:
", i\(+1\));
printf(" Nome : %s
", pessoas[i].nome);
printf(" Endereço : %s, %s, %s
",
pessoas[i].rua, pessoas[i].numero, pessoas[i].bairro);
printf(" Complemento: %s
", pessoas[i].complemento);
printf(" CEP : %s
", pessoas[i].cep);
printf(" Cidade/UF : %s/%s
", pessoas[i].cidade, pessoas[i].uf);
printf(" Tel. 1 : %s
", pessoas[i].tel1);
printf(" Tel. 2 : %s
", pessoas[i].tel2);
}
return 0;
}