본문 바로가기
STUDY/C

[모각코 C언어 메이트 심화편] 구조체 | 학생 정보 입력 받기 | 완전 오랜만의 C언어 공부^^..©

by 23g 2022. 2. 24.

머쓱,,^^ 정말 오랜만의 씨언어 공부,,,~

4학년은 더이상 공부 편식을 할 수 없다!!!

그랟서 하고싶은거 다하고 결국 돌ㅇㅏ온

씨언어 공부~~~

첫번째 시간!

구조체

구조체란 쉽게 생각해서 "변수를 모아둔 박스"

구조체 정의 방법

1.첫 번째는 struct 키워드를 사용

struct 구조체이름
{
		자료형 멤버변수이름1;
		자료형 멤버변수이름2;
		...
};​

2.두 번째 방법은 typedef struct를 사용

typedef struct 구조체이름 {
    자료형 멤버변수이름1;
		자료형 멤버변수이름2;
} 구조체별칭;

정리하기

✔ 변수들을 모아둘 때 구조체를 사용하자!

✔ 기본적으로는 struct로 선언!

✔ typedef를 통해 간단하게 선언할 수 있다!

오늘의 문제!

 

이것이 바로 충격과 공포의

수개월만에 뚜들겨 본

씨언어 코드 ^^,ㅍㅎㅎ

놀라지 마세용!

제가 이미 놀랐답니다

내 머릿속에 지우개

#define _CRT_SECURE_NO_WARNINGS    
#include <stdio.h>

typedef struct _Person
{
    char name[10];
    int age;
    int grade;
    int math;
    int eng;
    int krn;
    
} Person;

int main(void)
{
    Person person;
    printf("이름: ");
    scanf("%s", person.name); 
    printf("나이: ");
    scanf("%d", person.age);  
    printf("학년: ");
    scanf("%d", &person.grade); 
    printf("수학: ");
    scanf("%d", &person.math);
    printf("영어: ");
    scanf("%d", &person.eng);
    printf("국어: ");
    scanf("%d", &person.krn);
    
    printf("이름 : %s,/n 나이 : %d, 학년 : %d, 수학 : %d,영어 : %d,국어 : %d,평균 점수 : %d",
        person.name, person.age, person.grade, person.math, person.eng, person.krn,
        ((person.math+person.eng+person.krn)/3));
    return 0;

오류 투성이의 잘못된 점을 찾아보시오^-^

printf("나이: ");
scanf("%d", person.age);

-> scanf("%d", &person.age);

scanf("%d", &a);

%d는 int형 변환 문자

a는 변수명이고 & 기호는 주소를 구하는 연산자이다

( ※ & 기호의 대한 내용은 포인터 내용에서 ※ )

/n​

-> \n

ㅋㅋㅋㅋ미친거 같아!!! 부끄

그렇게 완성한 최종 코드~

#define _CRT_SECURE_NO_WARNINGS    
#include <stdio.h>

typedef struct _Person
{
    char name[10];
    int age;
    int grade;
    int math;
    int eng;
    int krn;
    
} Person;

int main(void)
{
    Person person;
    printf("이름: ");
    scanf("%s", person.name); 
    printf("나이: ");
    scanf("%d", &person.age);   
    printf("학년: ");
    scanf("%d", &person.grade); 
    printf("수학: ");
    scanf("%d", &person.math);
    printf("영어: ");
    scanf("%d", &person.eng);
    printf("국어: ");
    scanf("%d", &person.krn);
    
    printf("[학년]\n이름 : % s \n나이 : % d \n학년 : % d \n수학 : % d \n영어 : % d \n국어 : % d \n평균 점수 : % d",
        person.name, person.age, person.grade, person.math, person.eng, person.krn,
        ((person.math+person.eng+person.krn)/3));
    return 0;
}

결과

아웅

씨언어 넘 오랜만이라서

아주 버벅이는 중 ㅎ

얼른 페이스 되찾을게요!!!

넘 머쓱하걸랑