-
Posts
2 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Gabriel Carlesso
-
-
Olá Pessoal, espero que estejam bem!
Estou com dificuldade na criação de uma tabela no quesito alinhamento, ainda não estou vendo struct, contudo vi um tópico a respeito deste assunto, e tentei replicar no meu código sem sucesso. Tópico mencionado: Criar Tabela
Tentei usar o #Define SEPARADOR -10 sugerido no tópico, mas como foi utilizado struct, creio que estou encaixando a explicação do tópico de forma incorreta no meu código.
Desta forma, se alguém conseguir me ajudar entender o problema e encontrar a solução, eu ficaria muito grato, a intenção é deixar as informações da forma mais alinhada possível, contudo, não precisa ser perfeito. (Creio que o problema esta no alinhamento do nome do aluno).
O desafio do exercício é apresentar todos os dados do aluno e a situação final (aprovado ou reprovado).
Código até o momento:
(Agora que estou fazendo o post identifiquei um erro pois estou sobrepondo a nota2 com a prova_sub, mas irei trabalhar nessa correção que não interfere na criação da tabela).
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> #include <ctype.h> #include <conio2.h> #include <time.h> #include <conio.h> #define SEPARADOR -10 char nomes[10][30]; int idades[10], faltas[10]; float nota1[10], nota2[10], media[10], prova_sub[10]; char sit_aluno[10][10]; int main(){ setlocale(LC_ALL, "Portuguese"); //Entrada de dados for(int i=0;i<=1;i++){ printf("Dados do %iº aluno:\n",i+1); printf("\n NOME: "); gets(nomes[i]); strcpy(nomes[i],strupr(nomes[i])); printf(" IDADE: "); scanf("%i",&idades[i]); fflush(stdin); printf(" NOTA 1: "); scanf("%f",¬a1[i]); fflush(stdin); printf(" NOTA 2: "); scanf("%f",¬a2[i]); fflush(stdin); printf("PROVA SUB: "); scanf("%f",&prova_sub[i]); fflush(stdin); printf(" FALTAS: "); scanf("%i",&faltas[i]); fflush(stdin); if(faltas[i] > 80){ do{ printf("\nQuantidade de faltas excede o limite, favor informar um valor de no máximo 80 faltas!\n\n"); printf(" FALTAS: "); scanf("%i",&faltas[i]); fflush(stdin); }while(faltas[i] > 80); } printf("\n"); //processamento da média if(prova_sub[i] > 0){ if(nota1[i] > nota2[i]){ nota2[i]=prova_sub[i]; }else if(nota2[i] > nota1[i]){ nota1[i]=prova_sub[i]; } } media[i]=(nota1[i]+nota2[i])/2; if(media[i] >= 6 && faltas[i] <= 20){ strcpy(sit_aluno[i],"APROVADO"); }else{ strcpy(sit_aluno[i],"REPROVADO"); } } clrscr(); printf("%*s %9s %9s %9s %9s %9s\n", -SEPARADOR, "Aluno", "Nota1", "Nota2", "Prova_Sub", "Média", "Situação"); for(int i=0;i<=1;i++){ printf("%*9s %*9.1f %*9.1f %*9.1f %*9.1f %*9s", SEPARADOR, nomes[i], SEPARADOR, nota1[i], SEPARADOR, nota2[i], SEPARADOR, prova_sub[i], SEPARADOR, media[i], SEPARADOR, sit_aluno[i]); printf("\n"); } printf("\n\n"); return(0); }
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Desafio de Estruturação de uma Tabela
em C/C#/C++
Postado
@JorgeGus Muito obrigado! Atendeu perfeitamente a minha necessidade.
Fiquei apenas confuso com a função do "\t", ainda não conhecia este comando.
O importante é que funcionou haha, muito obrigado!