#include <stdio.h>
#include <conio.h>
// 동적 배열을 지금하시는 건 아니라고 생각되어..
#define CStudent 5 // 학생수를 미리 정의한다.. 배열로 잡기위해
#define CSubject 3 // 과목 수를 정의 한다.
#define CSubjectNameChar 20 // 과목명을 저장할 길이 20문자로 정의
//학생수 국어 수학 영어 등등 합계 평균 순위
int main(int argc, char* argv[])
{
int Item[CStudent][CSubject]; // 학생수만큼 과목수만큼 같이 저장할 2차원배열 정의
int i,j; // i는 학생수로 j는 과목수로 사용할 것임
char SubjectName[CSubject][CSubjectNameChar] = { "국어", "수학", "영어" };
double Sum[CStudent], Avg[CStudent]; // 요건 학생수만큼 있음 되겠죠
for(i=0; i<CStudent; i++) // i는 학생수만큼 증가하며 돌고, 단문이므로 {}생략했음
for(j=0; j<CSubject; j++) // j는 과목수만큼 증가하며 돌기.
{
printf("%d번째 학생의 %s 과목 점수를 입력하시오 : ", i+1, SubjectName[j]); // 과목명 배열은 단순히 출력을 위해 사용했음
scanf(" %d", &Item[i][j]); // 그냥 간단히 과목당 점수를 입력 받습니다.
}
/// 이제 합계와 평균을 구해봅시다
for(i=0; i<CStudent; i++) // i는 학생수만큼 증가하며 돌고, 복문이므로 {}사용
{
Sum[i] = 0.0; // 합계는 학생별로 초기화 해야겠죠..
for(j=0; j<CSubject; j++) // j는 과목수만큼 증가하며 돌기. 단문이므로 {}생략했음
Sum[i] += Item[i][j]; // 과목당 점수를 다 누적합니다.
Avg[i] = Sum[i] / CSubject; // 과목점수의 합계를 과목수로 나누면 평균이죠.
}
/// 이제 합계와 평균을 출력해 봅시다
for(i=0; i<CStudent; i++) // i는 학생수만큼 증가하며 돌고, 단문이므로 {}생략했음
printf("%d번째 학생의 합계: %lf, 평균: %lf\n", i+1, Sum[i], Avg[i]);
// double형의 출력이므로 %lf 사용했음, i는 0부터 시작하므로 1을 더해서 출력했음.
/*
// 위의 3개로 나눈 for구문을 하나로 합쳐서 아래와 같이 해도 됩니다. 한 학생당 한번씩 처리
for(i=0; i<CStudent; i++) // i는 학생수만큼 증가하며 돌고,
{
Sum[i] = 0.0; // 합계는 학생별로 초기화 해야겠죠..
for(j=0; j<CSubject; j++) // j는 과목수만큼 증가하며 돌기.
{
printf("%d번째 학생의 %s 과목 점수를 입력하시오 : ", i+1, SubjectName[j]); // 과목명 배열은 단순히 출력을 위해 사용했음
scanf(" %d", &Item[i][j]); // 그냥 간단히 과목당 점수를 입력 받습니다.
Sum[i] += Item[i][j]; // 과목당 점수를 다 누적합니다.
}
Avg[i] = Sum[i] / CSubject; // 과목점수의 합계를 과목수로 나누면 평균이죠.
printf("%d번째 학생의 합계: %lf, 평균: %lf\n", i+1, Sum[i], Avg[i]);
}
*/
getch();
return 0;
}
//---------------------------------------------------------------------------
ㅇㅇㅇㅇ 님이 쓰신 글 :
: 우선 for문으로 삼각형만들기 정말로힘들어요 그리고 배열 2차원배열요 쉽게이해할수었나요
: for문하고 배열로만 프로그램만들고싶은데 (학생수 국어 수학 영어 등등 합계 평균 순위 )
: 알려주세요
|