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

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

by DRIN 2016. 9. 25.

목차

    반응형

    1

    #include <stdio.h>

     

    int main()

    {

    int day[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };

    int i;

    for (i = 1; i < 13; i++)

    {

    printf("%d월은%3d일까지 있습니다.\n", i, day[i - 1]);

    }

    return 0;

    }

     

     

     

     

     

     

    2.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    int main()

    {

    int x[10], i, min, max;

    srand((unsigned)time(NULL));

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

    x[i] = rand();

    min = x[0];

    max = x[0];

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

    {

    if (x[i] < min)

    min = x[i];

    if (x[i] > max)

    max = x[i];

    }

    printf("최대값은%d 최소값은%d입니다.\n", max, min);

    return 0;

    }

     

     

     

     

     

    3.

    #include <stdio.h>

     

    int array_equal(int a[], int b[], int size)

    {

    int i;

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

    {

    if (a[i] != b[i])

    return 0;

    }

    return 1;

    }

    int main()

    {

    int a[10], b[10], i, result;

    printf("배열a의원소를입력하시오(크기는10) : ");

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

    scanf("%d", a+i);

    printf("배열b의원소를입력하시오(크기는10) : ");

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

    scanf("%d", b+i);

    result = array_equal(a, b, 10);

    if (result == 0)

    printf("두배열은다릅니다.\n");

    else

    printf("두배열은같습니다.\n");

    }

     

     

     

     

     

    4.

    #include <stdio.h>

     

    int array_copy(int a[], int b[], int size)

    {

    int i;

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

    b[i] = a[i];

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

    {

    if (a[i] != b[i])

    return 0;

    }

    }

    int main()

    {

    int a[10], b[10], i, result;

    printf("배열a의원소를입력하시오(크기는10) : ");

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

    scanf("%d", a+i);

    result = array_copy(a, b, 10);

    if (result == 0)

    printf("두배열은다릅니다.\n");

    printf("배열b:");

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

    printf("%d ", b[i]);

    }

     

     

     

     

    5.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

     

    int main()

    {

    int i, x, arr[10] = { 0 };

    srand((unsigned)time(NULL));

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

    {

    x = rand() % 10;

    if (x == 0)

    arr[0]++;

    else if (x == 1)

    arr[1]++;

    else if (x == 2)

    arr[2]++;

    else if (x == 3)

    arr[3]++;

    else if (x == 4)

    arr[4]++;

    else if (x == 5)

    arr[5]++;

    else if (x == 6)

    arr[6]++;

    else if (x == 7)

    arr[7]++;

    else if (x == 8)

    arr[8]++;

    else

    arr[9]++;

    }

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

    printf("%d%d\n", i + 1, arr[i]);

    }

     

     

     

     

    6.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

     

    int main()

    {

    srand((unsigned)time(NULL));

    int arr[3][5] = {0};

    int i,j,sum=0;

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

    {

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

    {

    arr[i][j] = rand() % 99 + 1;

    }

    }

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

    {

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

    {

    sum += arr[i][j];

    printf("%4d", arr[i][j]);

    }

    printf("%4d\n", sum);

    sum = 0;

    }

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

    {

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

    {

    sum += arr[i][j];

    }

    printf("%4d",sum);

    sum = 0;

    }

    printf("\n");

    return 0;

    }

     

     

     

    7.

    #include <stdio.h>

    #include <math.h>

     

    int search(int f)

    {

    int i,s;

    for (i = 1; i < 11; i++)

    {

    s = pow(i, 3);

    if (f == s)

    printf("%d의세제곱근은%d", f, i);

    }

    if (f != s)

    return 1;

    }

     

    int main()

    {

    int arr[3][10] = {

    {1,2,3,4,5,6,7,8,9,10}

    };

    int i, j,f;

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

    {

    printf("%5d", arr[0][j]);

    }

    printf("\n");

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

    {

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

    {

    arr[i][j] = pow(j+1,i+1);

    printf("%5d", arr[i][j]);

    }

    printf("\n");

    }

    printf("정수를입력하시오:");

    scanf("%d",&f);

    search(f);

    if (search(f) == 1)

    printf("잘못입력하셨습니다.");

    printf("\n");

    return 0;

    }

     

     

     

     

    8.

    #include <stdio.h>

    #include <math.h>

    #define size 10

    double ave(double m);

    double dev(double v);

    int arr[size] = { 0 };

    double m,v;

    int main()

    {

    int i;

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

    {

    printf("데이터를입력하시오:");

    scanf("%d", &arr[i]);

    }

    printf("평균값은%f\n", ave(m));

    printf("표준편차값은%f\n", dev(v));

    }

    double ave()//평균구하는함수

    {

    int i;

    double sum=0.0;

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

    sum += arr[i];

    m = sum / size

    return m;

    }

    double dev()//표준편차구하는함수

    {

    int i;

    double sum = 0.0;

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

    {

    sum = pow(arr[i] - m, 2);

    v += sum / size

    }

    v = sqrt(v);

    return v;

    }

     

     

     

     

    9.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

     

    int main()

    {

    int arr[10][4] = { 0 };

    int i, j, max, min;

     

    srand((unsigned)time(NULL));

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

    {

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

    {

    if (j == 0)

    arr[i][j] = i + 1;

    else

    arr[i][j] = rand() % 99 + 1;

     

    printf("%4d", arr[i][j]);

    }

    printf("\n");

    }

    for (i = 1; i < 4; i++)

    {

    max = arr[i][1];

    min = arr[i][1];

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

    {

    if (max < arr[j][i])

    max = arr[j][i];

    else if (min>arr[j][i])

    min = arr[j][i];

    }

    printf("%02d시험의최대값: %3d과최소값:%3d\n", i, max, min);

    }

    return 0;

    }

     

     

     

    10.

    a.

    #include <stdio.h>

    int vector_add(double x[], double y[], double z[]);

    int main()

    {

    double a[3], b[3], c[3];

    int i;

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

    {

    printf("x %d좌표의값을입력하시오:", i);

    scanf("%lf", &a[i]);

    printf("y %d좌표의값을입력하시오:", i);

    scanf("%lf", &b[i]);

    }

    vector_add(a, b, c);

    return 0;

    }

    int vector_add(double x[], double y[], double z[])

    {

    int i;

    printf("결과값:");

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

    {

    z[i] = x[i] + y[i];

    printf("%f ", z[i]);

    }

    printf("\n");

    }

     

     

    b.

    #include <stdio.h>

    double vector_dot_prod(double x[], double y[]);

    double result;

    int main()

    {

    double a[3], b[3];

    int i;

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

    {

    printf("x %d좌표의값을입력하시오:", i);

    scanf("%lf", &a[i]);

    printf("y %d좌표의값을입력하시오:", i);

    scanf("%lf", &b[i]);

    }

    vector_dot_prod(a, b);

    return 0;

    }

    double vector_dot_prod(double x[], double y[])

    {

    int i;

    double dot;

    printf("결과값:");

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

    {

    dot = x[i] * y[i];

    result += dot;

    }

    printf("%f", result);

    printf("\n");

    return result;

    }

     

     

     

     

    11.

    #include <stdio.h>

    int main()

    {

    int s[10] = { 1,1,2,2,3,3,4,4,5,5};

    int i;

    while (1)

    {

    printf("찾는상품번호를입력하시오(1~10):");

    scanf("%d", &i);

    printf("%d장소에저장되어있음\n", s[i - 1]);

    }

    return 0;

    }

     

     

     

    12.

    a.

    #include <stdio.h>

    int s_m(int a[][3], int s);

    int arr[3][3] = { { 1,2,3 },{ 4,5,6 },{ 7,8,9 } };

    int main()

    {

    int i, j;

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

    {

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

    {

    printf("%d ", arr[i][j]);

    }

    printf("\n");

    }

    s_m(arr, 2);

    }

    int s_m(int a[][3], int s)

    {

    int i, j;

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

    {

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

    {

    a[i][j] *= s

    }

    }

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

    {

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

    {

    printf("%3d ", arr[i][j]);

    }

    printf("\n");

    }

    return 0;

    }

     

     

     

    b.

    #include <stdio.h>

    int transpose(int a[][3], int b[][3]);

    int arr[3][3] = { { 1,2,3 },{ 4,5,6 },{ 7,8,9 } };

    int ar[3][3];

    int main()

    {

    int i, j;

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

    {

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

    {

    printf("%d ", arr[i][j]);

    }

    printf("\n");

    }

    transpose(arr, ar);

    }

    int transpose(int a[][3], int b[][3])

    {

    int i, j;

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

    {

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

    {

    b[j][i] = a[i][j];

    }

    }

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

    {

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

    {

    printf("%3d ", ar[i][j]);

    }

    printf("\n");

    }

    return 0;

    }

     

     

     

    13.

    #include <stdio.h>

    int main()

    {

    int i, n;

    int binary[32];

    printf("10진수입력:");

    scanf("%d", &n);

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

    {

    binary[i] = n % 2;

    n /= 2;

    }

    printf("변환된2진수:");

    for (i--; i >= 0; i--)

    printf("%d", binary[i]);

    printf("\n");

    }

     

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

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

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


    반응형