Buscar

Atividade Prática em linguagem C - Auxílio respondido

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Dúvida: 
Questão 1/5
 Usando a linguagem de programação C/C++ escreva um programa que 
 armazene em um vetor de até 5 posições as informações de nome, 
 idade e sexo. Sabendo que nome é uma string de até 50 caracteres, 
 idade é um inteiro e sexo é um caractere e que estes dados devem 
 ser armazenados em uma struct.
 
 #include <iostream>
 #include <stdio.h>
 #include <conio.h>
 
 int main()
 {
 char nome[50];
 char sexo[1];
 int idade
 printf("Digite nome:\n");
 scanf("%s",&nome);
 printf("Digite sexo:\n");
 scanf("%s",&sexo);
 printf("Digite idade:\n");
 scanf("%s",&idade);
 
 }
 
Ajuda
Vamos tentar resolver a primeira:
Escreva um programa que armazene em um vetor de até 5 posições as informações de nome, idade e sexo. Sabendo que nome é uma string de até 50 caracteres, idade é um inteiro e sexo é um caractere e que estes dados devem ser armazenados em uma struct.
Primeiro verifique as bibliotecas necessárias:
	#include <stdio.h>
	#include <stdlib.h>
	#include <string.h>
Agora crie uma struct antes da função principal main() que depois a instanciaremos como um vetor de 5 posições.
struct pessoas
{
	char nome[50];
	char sexo;
	int idade
};
Observe que no seu código, você digitou “char sexo[1]”. Se uma variável armazenará somente um carácter, não necessita informar o valor.
Não esqueça que uma struct deve ser encerrada com ponto e vírgula após o fechar de chaves.
 int main()
 {
printf("Digite nome:\n");
 scanf("%s",&nome);
 printf("Digite sexo:\n");
 scanf("%s",&sexo);
 printf("Digite idade:\n");
 scanf("%s",&idade);
 
 }
Ainda, há os seguintes erros no código acima:
a: a variável nome é uma string, logo, a leitura dele não deve ser com o scanf, mas:
gets_s(nome);
b: sexo armazenará somente um carácter, logo, o correto é usar o %c assim: 
scanf_s(“%c”, &sexo);
c: a variável idade é um inteiro, logo o correto é %i e não %s:
scanf_s(“%c”, &idade);
OBS: Se você tiver problemas com o buffer que faz pular de um campo para outro como se você já tivesse pressionado enter, use esse código depois do scanf_s:
getchar(); //limpa o buffer do teclado
Como estamos trabalhando com uma struct, precisamos instanciá-la dentro da função principal main(), chamaremos de p e faremos dela um vetor de 5 posições:
struct pessoas p[5];
Agora precisamos fazer um loop para pegar os dados de cinco pessoas e armazená-las na nossa variável p[5]:
For (int i = 0; i < 5; i++)
{
	printf("\nDigite nome:\n");
	gets_s(p[i].nome);
	printf("\nDigite sexo:\n");
	scanf("%c",&p[i].sexo);
	printf("\nDigite idade:\n");
	scanf_s("%i",&p[i].idade);
	getchar();
}
E agora para mostrar na tela os nomes:
For (int i = 0; i < 5; i++)
{
	printf("\nNome: %s", p[i].nome);
	printf("\nIdade: %d", p[i].idade);
	printf("\nSexo: %c\n\n", p[i].sexo);
}

Continue navegando