#include <iostream>
using namespace std;
struct sungjuk{
int num;
char name[20];
int kor;
int eng;
int mat;
int tot;
float ave;
}stu[20];
void sungjukinput();
void sungjukoutput();
int main()
{
struct sungjuk stu[20];
int a;
cout<<"성적처리 프로그램입니다. 원하시는 번호를 선택하세요";
cout<<"\n1.성적 입력하기";
cout<<"\n2.성적 출력하기";
cout<<"\n3.끝내기 ";
cout<<"\n >>";
cin>>a;
switch(a){
case 1 :
sungjukinput();
return main();
case 2 :
sungjukoutput();
return main();
case 3 :
return;
break;
}
};
void sungjukinput(){
int i;
cout<<"번호를 입력하세요 : ";
cin>>i;
cout<<"\n이름을 입력하세요 : ";
cin>>stu[i].name;
cout<<"\n국어성적을 입력하세요 : ";
cin>>stu[i].kor;
cout<<"\n영어성적을 입력하세요 : ";
cin>>stu[i].eng;
cout<<"\n수학성적을 입력하세요 : ";
cin>>stu[i].mat;
stu[i].tot = stu[i].kor + stu[i].eng + stu[i].mat;
stu[i].ave = stu[i].tot / 3.00;
stu[i].num = i;
}
void sungjukoutput()
{
int i;
cout<<"\n번호\t이름\t국어\t영어\t수학\t총점\t평균\n";
for(i=1;i<20;i++)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].kor<<
"\t"<<stu[i].eng<<"\t"<<stu[i].mat<<"\t"<<stu[i].tot<<"\t"<<stu[i].ave<<"\n";
};
구조체로 프로그래밍을 했습니다.
결과는 생각보다 괜찮았는데 좀 아쉬운 부분이
아래그림에 비어있는 공간은 0이 나오지않게 하는 방법은 없나요??
학생수만큼만 출력을 하고싶은데 제가 20이라고 지정한 공간만큼 모두 출력이되요
이걸 어떻게 바꿔야 학생수만큼만 출력이 가능할까요?