[c언어] 난수의 합과 가장 큰 수 구하기 (1차원 배열과 포인터)

2020. 12. 21. 16:57Computer Science/C

 

10개의 엘리먼트중 가장 큰 수를 찾아 출력하는 기능을 추가하는 프로그램을 작성한다.

* 포인터를 사용한다.

 

#include <stdio.h>
#include <stdlib.h>
void generateData();
void printData();
int totalData();
int maxData();
int data[10];

int main(void)
{
    srand(200);
    generateData();
    printf("발생된 10개의 난수 :\n");
    printData();
    printf("\n10개 난수의 합 = %d \n", totalData());
    printf("10개 난수 중 가장 큰 수 = %d \n", maxData());
}

void generateData()
{
    int k;
    int* p;
    p = data;
    for (k = 0; k < 10; k++)
        *p++ = rand() % 100;
}

void printData()
{
    int* pi = data;
    int i;
    for (i = 0; i < 10; i++)
        printf("%d ", *pi++);
}

int totalData()
{
    int* pi = data, sum = 0;
    int i;
    for (i = 0; i < 10; i++)
        sum += *pi++;

    return sum;
}

int maxData()
{
    int* pi = data, max = *pi;
    int i;
    for (i = 0; i < 10;i++) {
        if (max < *pi)
            max = *pi;
        pi++;
    }
    return max;
}

 

결과