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

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

by DRIN 2016. 9. 25.

목차

    반응형

    1.

    #include <stdio.h>

     

    int main()

    {

    int x = 0x12345678;

    unsigned char *xp = (char*)&x;//x의배열주소를char형으로*xp포인터로넘김

    printf("바이트순서:%x %x %x %x\n", xp[0], xp[1], xp[2], xp[3]);//각각배열을출력

    return 0;

    }

     

     

     

     

    2.

    #include <stdio.h>

     

    void get_sum_diff(int x, int y, int *p_sum, int *p_diff)

    {

    *p_sum = x + y

    *p_diff = x - y

    return 0;

    }

    int main()

    {

    int x, y;

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

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

    get_sum_diff(x, y,&x,&y);

    printf(": %d\n: %d\n", x, y);

    }

     

     

     

     

    3.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    void array_fill(int *A,int size)

    {

    int i;

     

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

    {

    A[i] = rand();

    printf("A[%d]=%d\n", i, A[i]);

    }

    }

    int main()

    {

    int A[10];

    srand((unsigned)time(NULL));

    array_fill(A,10);

    }

     

     

     

     

     

    4.

    #include <stdio.h>

    void array_print(int *A,int size)

    {

    int i;

    printf("A[]={");

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

    {

    A[i] = i + 1;

    if (i == 0)

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

    else

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

    }

    printf("}\n");

    }

    int main()

    {

    int A[5];

    array_print(A,5);

    }

     

       

     

     

    5.

    #include <stdio.h>

    void convert(double *grades, double *score, int size)

    {

    int i;

     

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

    {

    score[i] = (100 * grades[i]) / 4.3;

    printf("score[%d] %5.2f\n", i, score[i]);

    }

    }

    int main()

    {

    double score[10];

    double grades[] = {4.3, 3.7, 4.2, 4.0, 3.8, 3.2, 4.1, 4.0, 3.9, 3.5};

    convert(grades,score,10);

    }

     

     

     

     

     

     

     

     

    6.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    void array_copy(int *A, int *B, int size)

    {

    int i;

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

    {

    B[i] = A[i];

    printf("A[%d]=%d B[%d]=%d\n", i, A[i], i, B[i]);

    }

    }

    int main()

    {

    int A[10] = { 0 };

    int B[10] = {0};

    int i;

    srand((unsigned)time(NULL));

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

    {

    A[i] = rand() % 100;

    }

    array_copy(A,B,10);

    }

     

     

     

     

     

     

     

     

    7.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    void array_add(int *A, int *B, int *C, int size)

    {

    int i;

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

    {

    C[i]= B[i]+A[i];

    printf("A[%d]=%3d B[%d]=%3d C[%d]=%3d\n", i, A[i], i, B[i],i,C[i]);

    }

    }

    int main()

    {

    int A[10] = { 0 };

    int B[10] = { 0};

    int C[10] = { 0 };

    int i;

    srand((unsigned)time(NULL));

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

    {

    A[i] = rand() % 100;

    B[i] = rand() % 100;

    }

    array_add(A,B,C,10);

    }

     

       

     

     

     

    8.

    #include <stdio.h>

    int array_sum(int *A, int size)

    {

    int i, sum=0;

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

    {

    sum += A[i];

    }

    return sum;

    }

    int main()

    {

    int A[6] = {10,20,30,40,50,60};

    printf("직원의월급총합계:%d\n", array_sum(A, 6));

    }

     

     

     

     

     

    9.

    #include <stdio.h>

     

    int search(int *A, int size, int search_value)

    {

    int i;

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

    {

    if (A[i] == search_value) {

    return i;

    break

    }

    }

    }

    int main()

    {

    int A[5] = { 100,150,180,200,250 };

    printf("월급200만원은A[%d]\n", search(A, 5, 200));

    }

     

       

     

     

     

    10.

    #include <stdio.h>

     

    void get_lcm_gcd(int x, int y, int *p_lcm, int *p_gcd)

    {

    int temp,i;

    i = x*y

    while (x)

    {

    if (x>y)

    x = x % y

    else

    {

    temp = x x = y y = temp;

    }

    }

    *p_gcd = y

    *p_lcm = i/y

    }

    int main()

    {

    int gcd, lcm;

    int x, y;

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

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

    get_lcm_gcd(x, y, &lcm, &gcd);

    printf("최대공약수: %d\n", gcd);

    printf("최소공배수: %d\n", lcm);

    }

     

       

     

     

     

    11.

    #include <stdio.h>

    void merge(int *A, int *B, int *C, int size)

    {

    int i,j=0,k=0;

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

    {

    if (j == 4)

    {

    while (k<size)

    {

    C[i++] = B[k++];

    }

    break;

    }

    else if (k == 4)

    {

    while (j<size)

    {

    C[i++] = A[j++];

    }

    break;

    }

    else if (A[j] > B[k])

    {

    C[i] = B[k];

    k++;

    }

    else

    {

    C[i] = A[j];

    j++;

    }

    }

    }

    int main()

    {

    int A[4] = { 2,5,7,8 };

    int B[4] = { 1,3,4,6 };

    int C[8] = { 0 };

    int i;

    merge(A, B, C, 8);

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

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

    printf("\n");

    }

     

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

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

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


    반응형