[c언어] 2차원 배열과 포인터

2020. 12. 22. 09:19Computer Science/C

 

0에서 99사이의 난수를 저장한 후 출력하고 전체의 합을 계산해서

출력하는 프로그램을 작성한다. 

 

만들어야 할 함수

 

1. 난수를 저장하는 함수 (generateData)

2. 출력함수 (printData)

3. 전체의 합을 계산하는 함수 (totalData)

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

static int data[3][10];

void generateData()
{
    int* p = &data[0][0];
    int i;
    for (i = 0; i < 30; i++)
        *p++ = (rand() % 100);
}

void printData()
{
    int i, j;
    int* p = &data[0][0];
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 10; j++)
            printf("%d\t", *p++);
        printf("\n");
    }
}

int totalData()
{
     int* p = &data[0][0];
     int i, total = 0;
     for (i = 0; i < 30; i++)
        total += *p++;
     return total;
}

int main(void)
{
    srand(time(NULL));
    
    generateData();
    printData();
    printf("전체의 합은: %d\n", totalData());
}

 

결과는 아래와 같다.