옥수수와 식빵 그리고 코딩

13장 연습문제 - 구조체와 공용체 본문

카테고리 없음

13장 연습문제 - 구조체와 공용체

옥식 2022. 1. 9. 18:03

01.

 

 

 

02. 분수를 구조체로 선언하여 값을 입력받고 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct fraction
{
    int numerator;
    int denominator;
} Fraction;

void getnum(Fraction* num);
void returnnum(Fraction* num);

int main(void)
{
    Fraction num1, num2;
    getnum(&num1);
    getnum(&num2);
    returnnum(&num1);
    returnnum(&num2);
    return 0;
}

void getnum(Fraction *num)
{
    scanf("%d %d", &num->numerator, &num->denominator);
}
void returnnum(Fraction* num)
{
    printf("%d/%d\n", num->numerator, num->denominator);
}

 

 

03. 2번의 구조체에서 두 분수의 곱을 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct fraction
{
    int numerator;
    int denominator;
} Fraction;

void getnum(Fraction* num);
void resultnum(Fraction* num1, Fraction* num2);

int main(void)
{
    Fraction num1, num2;
    getnum(&num1);
    getnum(&num2);
    resultnum(&num1, &num2);
    return 0;
}

void getnum(Fraction *num)
{
    scanf("%d %d", &num->numerator, &num->denominator);
}
void resultnum(Fraction* num1, Fraction*num2)
{
    printf("%d/%d\n", num1->numerator, num1->denominator);
    printf("%d/%d\n", num2->numerator, num2->denominator);
    double div1, div2, mult;
    div1 = (double)(num1->numerator) / (num1->denominator);
    div2 = (double)(num2->numerator) / (num2->denominator);
    mult = div1 * div2;
    printf("mult = %lf", mult);
}

 

 

04. 3개의 멤버를 갖는 구조체, 구조체 멤버 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct home_address
{
    int st_num;
    char street[30];
    char city[30];
}Address;

void Printad(Address* add);

int main(void)
{
    Address add1 = { 233, "선릉로", "서울시" };
    Address add2 = { .city = "서울시",.st_num = 567,.street = "경인로" };
    Printad(&add1);
    Printad(&add2);

    return 0;
}
void Printad(Address* add)
{
    printf("%s %s %d\n", add->city, add->street, add->st_num);
}

 

 

05. 구조체를 정의하고 사람 3명을 선언후 값을 입력하고 출력

배열로 입력받고 출력했으면 더 좋을 거 같은데 이미 완성한 후였다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct person
{
    char address[20];
    char name[20];
    char phonenum[20];
}Person;

void getperson(Person* p);
void Printperson(Person* p);

int main(void)
{
    Person one;
    Person two;
    Person three;
    getperson(&one);
    getperson(&two);
    getperson(&three);

    printf("     주소         이름       전화번호\n");
    Printperson(&one);
    Printperson(&two);
    Printperson(&three);
}

void getperson(Person* p)
{
    gets(p->address);
    gets(p->name);
    gets(p->phonenum);

}

void Printperson(Person* p)
{
    printf("%s %6s %20s\n", p->address, p->name, p->phonenum);
}

그래서 만들었다! 배열로 구조체 입력받고 배열로 출력하기!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct person
{
    char address[20];
    char name[20];
    char phonenum[20];
}Person;

void getperson(Person* p);
void Printperson(Person* p);

int main(void)
{
    Person one[3];
    for (int i = 0; i < 3; i++)
    {
        getperson(&one[i]);
    }
   
    printf("     주소         이름       전화번호\n");
   
    for (int i = 0; i < 3; i++)
    {
        Printperson(&one[i]);
    }
    return 0;
}

void getperson(Person* p)
{
    gets(p->address);
    gets(p->name);
    gets(p->phonenum);

}

void Printperson(Person* p)
{
    printf("%s %6s %20s\n", p->address, p->name, p->phonenum);
}

결과는 같음 굿

06.나머지는 너무 같은 문제들이라 패스

 

 

 

07.

 

 

 

08.

 

 

 

 

Comments