본문 바로가기
개념/혼자 공부하는 C언어

chapter 17) 최고 학점의 학생 데이터 출력

by kiseno 2024. 10. 5.
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