반응형
학생 점수 관리 프로그램
학생의 이름과 점수를 입력받아 평균 점수를 계산하고, 평균 점수가 60점 이상이면 "합격", 아니면 "불합격"을 출력하는 프로그램을 작성
사용 개념:
구조체(struct)
배열
반복문(for)
조건문(if)
입출력(scanf, printf)
풀이 방법
- 구조체 선언:
- 학생의 이름과 점수를 저장할 struct를 정의
- 학생 데이터 입력:
- for 반복문을 사용하여 학생의 이름과 점수를 입력받고, 구조체 배열에 저장
- 평균 점수 계산:
- 반복문을 통해 입력된 점수의 총합을 계산하고, 평균 점수를 구합니다.
- 합격 여부 판단:
- 평균 점수가 60점 이상이면 "합격", 그렇지 않으면 "불합격"을 출력
코드
#include <stdio.h>
#include <string.h>
// 1. 학생 정보를 저장할 구조체를 정의합니다.
struct Student {
char name[50]; // 학생의 이름을 저장할 변수
int score; // 학생의 점수를 저장할 변수
};
int main() {
int num_students; // 학생 수를 저장할 변수
printf("학생 수를 입력하세요: ");
scanf("%d", &num_students);
struct Student students[num_students]; // 입력된 학생 수만큼 구조체 배열을 생성
int sum = 0; // 점수 총합을 저장할 변수, 초기값은 0
// 2. 학생의 이름과 점수를 입력받습니다.
for (int i = 0; i < num_students; i++) {
printf("학생 %d의 이름을 입력하세요: ", i + 1);
scanf("%s", students[i].name);
printf("학생 %d의 점수를 입력하세요: ", i + 1);
scanf("%d", &students[i].score);
sum += students[i].score; // 입력된 점수를 합산
}
// 3. 평균 점수를 계산합니다.
double average = (double)sum / num_students;
// 4. 평균 점수를 출력하고 합격 여부를 판단합니다.
printf("평균 점수: %.2lf\n", average);
if (average >= 60) {
printf("합격\n");
} else {
printf("불합격\n");
}
return 0; // 프로그램이 정상 종료됨을 알립니다.
}
코드 설명
- 구조체 선언:
- struct Student는 각 학생의 이름과 점수를 저장하기 위한 구조체
- 학생 수 입력받기:
- scanf("%d", &num_students);를 사용해 사용자로부터 학생 수를 입력
- struct Student students[num_students];는 동적으로 학생 수에 맞는 구조체 배열을 생성
- 학생 데이터 입력:
- for 반복문을 사용해 각 학생의 이름과 점수를 scanf로 입력
- 각 점수는 sum 변수에 누적
- 평균 점수 계산:
- double average = (double)sum / num_students;는 총합을 학생 수로 나누어 평균 점수를 계산
- double 타입을 사용해 소수점 이하까지 표시
- 합격 여부 판단:
- if (average >= 60) 조건문으로 평균 점수가 60점 이상인지 확인하고, 이에 따라 "합격" 또는 "불합격"을 출력
- 출력:
- printf를 사용해 평균 점수와 합격 여부를 화면에 출력
반응형
'프로그래밍 > C' 카테고리의 다른 글
[C언어-응용문제] 동적 메모리 할당을 사용한 배열 평균 구하기 (0) | 2024.11.11 |
---|---|
[C언어-응용문제] 파일에 텍스트 저장 및 읽기 (1) | 2024.11.10 |
[C언어-응용문제] 숫자의 합 구하기(for, while) (1) | 2024.11.08 |
[C언어-응용문제] 반복문을 사용한 구구단 출력 (3) | 2024.11.07 |
[C언어-응용문제] 간단한 계산기 프로그램 만들기 (5) | 2024.11.06 |