728x90
반응형
SMALL
#include <stdio.h>
struct student{
int id;
char name[20];
double grade;
};
int main(void){
struct student
s1 = {315, "test1", 2.4},
s2 = {315, "test2", 3.7},
s3 = {317, "test3", 4.4};
struct student max;
max = s1;
if (s2.grade > max.grade) max = s2;
if (s3.grade > max.grade) max = s3;
printf("class : %d\n", max.id);
printf("name : %s\n", max.name);
printf("grade : %.1lf\n", max.grade);
return 0;
}
### 구조체 정의
- `struct student`는 학생 정보를 나타내기 위해 `id`(학번), `name`(이름), `grade`(성적)라는 세 개의 필드를 가집니다.
### 학생 정보 초기화
- `s1`, `s2`, `s3` 세 변수는 `struct student` 타입으로 선언되며, 각각 다른 학생의 정보로 초기화됩니다. 이들 각각은 고유한 학번, 이름, 그리고 성적 값을 가집니다.
### 최대 성적 학생 찾기
- `max` 변수는 `struct student` 타입으로, 세 학생 중 가장 높은 성적을 가진 학생의 정보를 저장하기 위해 사용됩니다.
- 초기에는 `max`를 `s1`의 값으로 설정합니다. 이후 `s2`와 `s3`의 성적을 `max`와 비교하여, 더 높은 성적을 가진 학생의 정보로 `max`를 갱신합니다.
### 결과 출력
- 가장 높은 성적을 가진 학생의 학번, 이름, 그리고 성적이 출력됩니다. `printf` 함수를 사용하여 `max` 변수에 저장된 학생 정보를 출력합니다.
### 실행 결과
이 프로그램을 실행하면, `s1`, `s2`, `s3` 중에서 가장 높은 성적을 가진 학생(`s3`의 경우에 해당)의 학번, 이름, 성적이 다음과 같이 출력됩니다:
```
class : 317
name : test3
grade : 4.4
```
728x90
반응형
LIST
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 18) fread와 fwrite 함수의 차이 (0) | 2024.10.07 |
---|---|
chapter 18) a+ 모드로 파일의 내용을 확인하며 출력 (0) | 2024.10.06 |
chapter 17) 구조체 배열을 초기화하고 출력 (1) | 2024.10.04 |
chapter 17) 자기 참조 구조체로 list 만들기 (0) | 2024.10.03 |
chapter 17) 열거형을 사용한 프로그램 (1) | 2024.10.02 |