Vamos a mais uma dúvida aqui em nosso curso de programação C? Na aula de hoje vamos ver como ler nome e nota de três estudantes e imprimir uma tabela no terminal.
Observe que precisamos ler duas informações de três pessoas, nome e nota. Precisamos pensar em quais estruturas de dados iremos armazenar estas informações.
Para as notas podemos criar um vetor (array unidimensional) de números reais. Contudo, como já vimos aqui no curso, um nome é uma cadeia de caracteres, ou seja, um nome é um vetor de caracteres. Assim, para armazenar três nomes precisamos de uma matriz (array bidimensional) de caracteres, onde cada linha terá um nome. Teremos então as seguintes estruturas de dados:
char nomes[3][30]; // 3 nomes float notas[3]; // 3 notas
Um detalhe importante a ser observado é que não é necessário dois índices para percorrer nossa matriz. Como cada linha terá o nome de um estudante, basta o índice da linha, assim:
for(i = 0; i < 3; i++){ printf("Digite nome e nota do estudante: "); scanf("%s%f", &nomes[i], ¬as[i]); }
Agora podemos montar uma tabela no terminal com duas colunas, a coluna Nome e a coluna Nota.
printf("\n\tNome\tNota\n"); for(i = 0; i < 3; i++) printf("\t%s\t%.2f\n", nomes[i], notas[i]);
Código de exemplo completo em C
/* Aula 203: Dúvida Código escrito por Wagner Gaspar Junho de 2021 Foram digitadas três linhas, onde cada uma das linhas contém o nome e a nota de um aluno. Escreva um programa que leia essas informações e monte uma tabela onde a primeira coluna é o nome e a segunda coluna é a nota. */ int main(){ char nomes[3][30]; float notas[3]; int i; for(i = 0; i < 3; i++){ printf("Digite nome e nota do estudante: "); scanf("%s%f", &nomes[i], ¬as[i]); } printf("\n\tNome\tNota\n"); for(i = 0; i < 3; i++) printf("\t%s\t%.2f\n", nomes[i], notas[i]); return 0; }