C·C++
[C언어] 2차원 배열을 사용한 성적 입출력 프로그램 2
삶과계란사이
2021. 2. 15. 15:09
[C언어] 2차원 배열을 사용한 성적 입출력 프로그램 2
1. 프로그램 설명
학생의 학번, 과목별 점수를 입력받아 각각의 2차원 배열에 저장한 후 출력하는 프로그램이다.
2. 소스코드
// 2차원 배열을 사용한 성적 입출력 프로그램 2
#include <stdio.h>
int main(void)
{
char id[100][10]; //학번
int sub[100][3]; //과목(HTML,C 언어,총점)
double avg[100]; //평균
int count = 0; //입력된 학생 수
char key;
for (int i = 0;; i++) //무한반복
{
printf("%d번째 학생 학번: ", i + 1);
scanf_s("%s", id[i], 9); //학번 입력(입력 가능한 문자 수: 9)
while (getchar() != '\n'); //버퍼 비우기
printf("%d번째 학생 HTML 점수: ", i + 1);
scanf_s("%d", &sub[i][0]); //HTML 점수 입력
printf("%d번째 학생 C 언어 점수: ", i + 1);
scanf_s("%d", &sub[i][1]); //C 언어 점수 입력
sub[i][2] = sub[i][0] + sub[i][1]; //총점 저장
avg[i] = (sub[i][0] + sub[i][1]) / 2; //평균 저장
count++; //입력이 끝날 때마다 count 수 증가
while (getchar() != '\n'); //버퍼 비우기
printf("입력을 중지하려면 'Q'를 입력: ");
scanf_s("%c", &key, sizeof(char)); //아무 키나 입력
while (getchar() != '\n'); //버퍼 비우기
if (key == 'Q')
break; //Q가 입력되면 for문 탈출
}
printf("\n입력 정보 출력\n");
printf("==============================================================\n");
printf("순번 학번 HTML C언어 총점 평균\n");
printf("--------------------------------------------------------------\n");
for (int i = 0; i < count; i++) //입력한 학생 수 만큼 출력
printf("%d %s %d %d %d %.1f\n", i + 1, id[i], sub[i][0], sub[i][1], sub[i][2], avg[i]);
return 0;
}
3. 실행결과