Baixe o app para aproveitar ainda mais
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); }
Compartilhar