|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3170 [복사]
화면에서 10명의 학생의 이름, 국어, 영어, 수학, 과학 점수를 입력받아 배열에 저장한 후 입력값과 각 학생의 성적평균, 과목별 평균, 전체 평균을 계산해 출력하는 문제입니다.
단 평균점수는 소수 둘째자리까지이고, 결과출력은 다음과 같이 해야합니다.
이름 국어 영어 수학 과학 평균
000 95 56 78 84 81.45
XXX 90 85 95 94 90.06
~~~~~~~~~~~~~~~~~~
평균 83.25 78.46 67.34 76.86 85.35
여기서 제가 평균을 과목당 평균과 전체 평균을 생각지 않고 코드를 짜다가 문제를 보고 헷갈려졌습니다..;;
어떻게 짜야할지 감이 잘 안와서 질문드립니다..ㅠㅠ
p.s.
현재 제가 짠 소스코드는 이렇습니다.
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i, j, total=0;
int sum1=0, sum2=0, sum3=0, sum4=0, sum5=0;
float ave1, ave2, ave3, ave4, ave5, ave6;
char x[60][10];
int a[10][4];
for(i=0; i<10; i++)
{
cin>>x[60][i];
for(j=0; j<4; j++)
{
cin>>a[i][j];
}
sum1=a[i][0]+a[i][1]+a[i][2]+a[i][3];
sum2+=a[i][0];
sum3+=a[i][1];
sum4+=a[i][2];
sum5+=a[i][3];
total+=a[i][j];
ave1=(float)sum1/4;
ave2=(float)sum2/10;
ave3=(float)sum3/10;
ave4=(float)sum4/10;
ave5=(float)sum5/10;
ave6=(float)total/40;
}
cout<<"이름 국어 영어 수학 과학 평균"<<endl;
for(i=0; i<10; i++)
{
cout<<x[60][i]<<" "<<a[i][0]<<" "<<a[i][1]<<" "<<a[i][2]<<" "<<a[i][3]<<ave1<<endl;
}
cout<<"평균"<<" "<<ave2<<" "<<ave3<<" "<<ave4<<" "<<ave5<<" "<<ave6<<endl;
cout<< setiosflags(ios_base:: fixed) << setprecision(2);
return 0;
}
배열을 이용해서 합과 평균 계산하는게 헷갈려서 아무렇게나 짰더니 결과가 똥망이네요.;;
조언 좀 부탁드립니다. |
Hit : 4643 Date : 2011/09/29 08:56
|