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);
}