C_C++

(C언어) 구조체를 이용한 성적처리

고니자니 2022. 11. 12. 10:18
반응형

[문제] 키보드로 이름, 국어, 영어, 수학 점수를 입력받아 평균과 전체 평균을 구하여 출력하는 프로그램을 작성하시오.

 

 

(입력 데이터)

홍길동 100 100 100
이순신 99 99 99
오만원 88 77 66
오아름 95 99 98
이기자 77 88 98

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

struct  student {
	char name[10];
	int kor, eng, mat;
};

int main()
{
	struct student st[5];
	int i, tot, ttot = 0;

	for (i = 0; i < 5; i++)
	{
		scanf("%s %d %d %d", 
			st[i].name, &st[i].kor, &st[i].eng, &st[i].mat);
	}

	printf("\n이름      국어 영어 수학   평균\n");
	printf("--------------------------------\n");
	for (i = 0; i < 5; i++)
	{
		tot = st[i].kor + st[i].eng + st[i].mat;
		ttot += tot;
		printf("%-10s %3d  %3d  %3d  %6.2f\n",
			st[i].name, st[i].kor, st[i].eng, st[i].mat, 
			(float)tot / 3);
	}
	printf("--------------------------------\n");
	printf("전체 평균 : %.2f\n", (float)ttot / (3*5));  // 3과목, 5명
	return 0;
}

 

(Output)

 

 

키보드로 입력하지 않고 프로그램에 데이터를 저장해서 처리하는 코드

#include <stdio.h>
#include <math.h>

struct  student {
	char name[10];
	int kor, eng, mat;
};

int main()
{
	struct student st[5] = 
	{
		{ "홍길동", 100, 100, 100 },
		{ "이순신", 99, 99, 99 },
		{ "오만원", 88, 77, 66 },
		{ "오아름", 95, 99, 98 },
		{ "이기자", 77, 88, 98 }
	};
	int i, tot, ttot = 0;

	//for (i = 0; i < 5; i++)
	//{
	//	scanf("%s %d %d %d", 
	//		st[i].name, &st[i].kor, &st[i].eng, &st[i].mat);
	//}

	printf("\n이름      국어 영어 수학   평균\n");
	printf("--------------------------------\n");
	for (i = 0; i < 5; i++)
	{
		tot = st[i].kor + st[i].eng + st[i].mat;
		ttot += tot;
		printf("%-10s %3d  %3d  %3d  %6.2f\n",
			st[i].name, st[i].kor, st[i].eng, st[i].mat, 
			(float)tot / 3);
	}
	printf("--------------------------------\n");
	printf("전체 평균 : %.2f\n", (float)ttot / (3*5));  // 3과목, 5명
	return 0;
}

 

 


데이터 파일에서 성적 데이터를 읽어서 처리하기  ↙↙

https://gonyzany.tistory.com/148

 

(C언어) 성적처리: 파일에서 데이터 읽어 구조체에 저장하기

#성적처리 #파일 #읽기 #구조체 #배열 #struct #fopen #feof [문제]다음과 같은 조건에 맞게 프로그램을 작성합니다. 1. 구조체를 정의한다. 2. 데이터 파일에서 성적 데이터를 읽어 구조체 배열에 저장

gonyzany.tistory.com

 

반응형