본문 바로가기
프로그램 개발

쉽게 풀어쓴 C언어 express 12장 연습문제

by DRIN 2016. 9. 25.

목차

    반응형

    1(1).

    #include <stdio.h>

    int equal(struct point p1, struct point p2);

    struct point {

    int x, y;

    };

     

    int main(){

    struct point p1;

    struct point p2;

    printf("첫번째xy의값을입력하시오:");

    scanf("%d %d", &p1.x, &p1.y);

    printf("두번째xy의값을입력하시오:");

    scanf("%d %d", &p2.x, &p2.y);

    printf("일치여부(1이면일치, 0이면불일치):%d\n", equal(p1, p2));

    }

    int equal(struct point p1, struct point p2) {

    if (p1.x == p2.x&&p1.y == p2.y)

    return 1;

    else

    return 0;

    }

     

     

     

     

    1(2).

    #include <stdio.h>

    int quadrant(struct point p);

    struct point {

    int x, y;

    };

     

    int main(){

    struct point p;

    printf("첫번째xy의값을입력하시오:");

    scanf("%d %d", &p.x, &p.y);

    quadrant(p);

    }

    int quadrant(struct point p) {

    if (p.x > 0 && p.y>0)

    printf("1사분면\n");

    else if (p.x < 0 && p.y>0)

    printf("2사분면\n");

    else if (p.x < 0 && p.y<0)

    printf("3사분면\n");

    else if (p.x > 0 && p.y < 0)

    printf("4사분면\n");

    else

    printf("어떠한위치에도없습니다.\n");

    }

     

     

     

     

     

    2(1).

    #include <stdio.h>

    int equal(struct point *p1, struct point *p2);

    struct point {

    int x, y;

    };

     

    int main() {

    struct point *p1;

    struct point *p2;

    printf("첫번째xy의값을입력하시오:");

    scanf("%d %d", p1->x, p1->y);

    printf("두번째xy의값을입력하시오:");

    scanf("%d %d", p2->x, p2->y);

    printf("일치여부(1이면일치, 0이면불일치):%d\n", equal(p1, p2));

    }

    int equal(struct point *p1, struct point *p2) {

    if (p1->x == p2->x&&p1->y == p2->y)

    return 1;

    else

    return 0;

    }

     

     

     

     

     

    2(2).

    #include <stdio.h>

    int quadrant(struct point *p);

    struct point {

    int x, y;

    };

    int main(){

    struct point *p;

    printf("첫번째xy의값을입력하시오:");

    scanf("%d %d", &p->x, &p->y);

     

    quadrant(p);<- 이부분이 이상함

    }

    int quadrant(struct point * p) {

    if (p->x > 0 && p->y>0)

    printf("1사분면\n");

    else if (p->x < 0 && p->y>0)

    printf("2사분면\n");

    else if (p->x < 0 && p->y<0)

    printf("3사분면\n");

    else if (p->x > 0 && p->y < 0)

    printf("4사분면\n");

    else

    printf("어떠한위치에도없습니다.\n");

    return 0;

    }

     

     

     

     

     

    3.

    #include <stdio.h>

    int area(struct rectangle r);

    int perimeter(struct rectangle r);

    int is_square(struct rectangle r);

    struct point {

    int x, y;

    };

    struct rectangle {

    struct point a, b;

    };

     

    int main()

    {

    struct rectangle r;

    struct point a, b;

    printf("첫번째점의좌표를입력하시오:");

    scanf("%d %d", &r.a.x, &r.a.y);

    printf("두번째점의좌표를입력하시오:");

    scanf("%d %d", &r.b.x, &r.b.y);

    if (r.a.x < 0)

    r.a.x = -r.a.x;

    if (r.a.y < 0)

    r.a.y = -r.a.y;

    if (r.b.x < 0)

    r.b.x = -r.b.x;

    if (r.b.y < 0)

    r.b.y = -r.b.y;

    area(r);

    perimeter(r);

    is_square(r);

    }

    int area(struct rectangle r) {

    int area;

    area = (r.a.x + r.b.x)*(r.a.y + r.b.y);

    printf("사각형의넓이:%d\n",area);

    }

    int perimeter(struct rectangle r) {

    int perimeter;

    perimeter = ((r.a.x + r.b.x)+(r.a.y + r.b.y))*2;

    printf("사각형의둘레:%d\n",perimeter);

    }

    int is_square(struct rectangle r) {

    if ((r.a.x + r.b.x) == (r.a.y + r.b.y))

    printf("정사각형입니다.\n");

    else

    printf("정사각형이아닙니다.\n");

    }

     

     

     

     

     

    4.

    #include <stdio.h>

     

    struct complex

    {

    double real;

    double imag;

    };

    struct complex complex_add(struct complex c1, struct complex c2);

    int main()

     

    {

    struct complex c1, c2;

    printf("첫번째복소수의실수부분과허수부분을입력하세요\n");

    scanf_s("%lf %lf", &c1.real, &c1.imag);

    printf("두번째복소수의실수부분과허수부분을입력하세요\n");

    scanf_s("%lf %lf", &c2.real, &c2.imag);

    complex_add(c1, c2);

     

    }

     

    struct complex complex_add(struct complex c1, struct complex c2)

    {

    struct complex sum;

    sum.real = c1.real + c2.real;

    sum.imag = c1.imag + c2.imag;

    printf("두복소수의합은%.2f+%.2fi입니다.\n", sum.real, sum.imag);

    }

     

     

     

     

    5.

    #include <stdio.h>

    struct vector add(struct vector v1, struct vector v2);

    struct vector {

    double x, y;

    };

     

    int main() {

    struct vector v1;

    struct vector v2;

    printf("첫번째x,y을입력하세요\n");

    scanf_s("%lf %lf", &v1.x, &v1.y);

    printf("두번째x,y을입력하세요\n");

    scanf_s("%lf %lf", &v2.x, &v2.y);

    add(v1, v2);

    }

    struct vector add(struct vector v1, struct vector v2) {

    printf("결과값:%f,%f", v1.x + v2.x, v1.y + v2.y);

    }

     

     

     

     

     

    6.

    #include <stdio.h>

     

    struct member {

    char i[20];//제목

    char a[30];//수신자

    char s[30];//발신자

    char c[100];//내용

    char d[20];//날짜

    int r;//우선순위

    };

     

    int main() {

    struct member s = { "c언어","qordltkr100@naver.com","ajtwoddl247@naver.com","c언어레포트입니다.","2015.12.07",1 };

    printf("제목:\t%s\n", s.i);

    printf("수신자:\t%s\n", s.a);

    printf("발신자:\t%s\n", s.s);

    printf("내용:\t%s\n", s.c);

    printf("날짜:\t%s\n", s.d);

    printf("우선순위:%d\n", s.r);

    }

     

     

     

     

     

    7.

    #include <stdio.h>

     

    struct food {

    char name[100];

    int calories;

    };

     

    int main() {

    struct food food_arr[3];

    int i;

    for (i = 0; i < 3; i++)

    {

    printf("음식의이름을입력하시오:");

    scanf("%s", &food_arr[i].name);

    printf("칼로리를입력하시오:");

    scanf("%d", &food_arr[i].calories);

    }

    for (i = 0; i < 3; i++)

    printf("음식이름:%s\n 칼로리:%d kcal\n", food_arr[i].name, food_arr[i].calories);

    }

     

     

     

     

     

    8.

    #include <stdio.h>

     

    typedef struct employee {

    int num;

    char name[20];

    char pn[20];//전화번호

    int age;

    }E

     

    int main() {

    E e[10];

    int i;

    for (i = 0; i < 10; i++)

    {

    printf("사번을입력하시오:");

    scanf("%d", &e[i].num);

    printf("이름을입력하시오:");

    scanf("%s", &e[i].name);

    printf("전화번호를입력하시오:");

    scanf("%s", &e[i].pn);

    printf("나이을입력하시오:");

    scanf("%d", &e[i].age);

    }

    for (i = 0; i < 10; i++)

    {

    if(e[i].age>=20&&e[i].age<=30)

    {

    printf("사번:%d\n", e[i].num);

    printf("이름:%s\n", e[i].name);

    printf("전화번호:%s\n", e[i].pn);

    printf("나이:%d\n", e[i].age);

    }

    }

    }

     

     

     

     

     

    9.

    #include <stdio.h>

     

    typedef struct num {

    char name[20];

    char num[20];//전화번호

    char pnum[20];//휴대전화번호

    }E

     

    int main() {

    E e[10];

    char name[10];

    int i;

    for (i = 0; i < 5; i++)

    {

    printf("이름을입력하시오:");

    scanf("%s", &e[i].name);

    printf("집전화번호를입력하시오:");

    scanf("%s", &e[i].num);

    printf("휴대전화번호를입력하시오:");

    scanf("%s", &e[i].pnum);

    }

    printf("찾고자하는이름을입력하시오:");

    scanf("%s", &name);

    for (i = 0; i < 10; i++)

    {

    if (strcmp(name, e[i].name) == 0) {

    printf("이름:%s\n",e[i].name);

    printf("집전화번호:%s\n", e[i].num);

    printf("휴대전화번호:%s\n", e[i].pnum);

    }

    }

    }

     

     

     

     

    10.

    #include <stdio.h>

     

    typedef struct card {

    int value;

    char suit;

    }CARD

    int main() {

    int i;

    CARD a[13];

    for (i = 0; i < 13; i++)//스페이드카드

    {

    a[i].value = i + 1;

    a[i].suit = 's'

    }

    for (i = 0; i < 13; i++)//클로버카드

    {

    a[i].value = i + 1;

    a[i].suit = 'c'

    }

    for (i = 0; i < 13; i++)//하트카드

    {

    a[i].value = i + 1;

    a[i].suit = 'h'

    }

    for (i = 0; i < 13; i++)//다이아카드

    {

    a[i].value = i + 1;

    a[i].suit = 'd'

    }

    }

     

     

     

     

    12.

    #include <stdio.h>

     

    typedef struct music {

    char title[100];

    char artist[100];

    char locate[100];

    char genre[100];

    }MUSIC

    int main() {

    int i = 0, j, search;

    MUSIC a[10];

    char x[100];

    printf("==========\n");

    printf("1.추가\n");

    printf("2.출력\n");

    printf("3.검색\n");

    printf("4.종료\n");

    printf("==========\n");

    while (1) {

    printf("메뉴를선택하시오:");

    scanf("%d", &search);

    switch (search) {

    case 1: {

    if (i > 9) {

    printf("저장공간이부족합니다.");

    break

    }

    printf("제목:");

    scanf("%s", &a[i].title);

    printf("가수:");

    scanf(" %s", &a[i].artist);

    printf("저장된위치:");

    scanf(" %s", &a[i].locate);

    printf("분류(가요클래식영화음악):");

    scanf(" %s", &a[i].genre);

    i++;

    }break

    case 2: {

    printf("현재음악파일\n");

    for (j = 0; j < i; j++)

    {

    printf("제목:%s", a[i].title);

    printf("가수:%s", a[i].artist);

    printf("저장된위치:%s", a[i].locate);

    printf("분류(가요클래식영화음악):%s", a[i].genre);

    }

    }break

    case 3:

    printf("검색할제목을입력하시오:");

    scanf("%s", &x);

    for (j = 0; j < 10; j++)

    {

    if (strcmp(x, a[j].title) == 0) {

    printf("제목:%s", a[j].title);

    printf("가수:%s", a[j].artist);

    printf("저장된위치:%s", a[j].locate);

    printf("분류(가요클래식영화음악):%s", a[j].genre);

    break

    }

    }break

    case 4:

    return -1;

    }

    }

    }

     

     

    2016/09/25 - [소스코드] - 쉽게 풀어쓴 C언어 express 11장 연습문제

    2016/09/25 - [소스코드] - 쉽게 풀어쓴 C언어 express 10장 연습문제

    2016/09/25 - [소스코드] - 쉽게 풀어쓴 C언어 express 9장 연습문제


    반응형