C언어 배열을 사용해서 최대.최소값, 총점, 평균 구하기

2018. 9. 29. 21:17개발노트

배열을 사용하기 전에 배열을 먼저 만들어줍시다.

5개의 수만 입력 받을꺼라 


int num[5];  이라고 배열을 만들어 줬습니다.


총점과 평균을 구하려면 모든 값의 합이 들어있는 변수가 필요합니다.


int temp = 0; 이라고 변수를 만들었습니다.


int i는 for문을 돌리기 위해 필요합니다. 


그리고 최대값과 최소값을 구하려면


int min , int max 가 필요한데

배열값과 직접 비교해주기 때문에 아래와 같이 값을 넣어줍니다.


int max = num[0];

int min= num[0];


이렇게 해도 상관없다고 하는데..

최소값을 구하는데 오류가 생겨서


int max = num[0];

int min = 10;


이렇게 변수를 만들었습니다.

max 값도 배열말고 정수로 정의해도 값은 잘 나옵니다.


유효점수는 배열에서 최소값과 최대값을 제외한 수를 출력합니다.

1
2
3
4
5
6
7
8
for (i = 0; i < 5; i++) {
        if (max == num[i] || min == num[i]) {
            printf("");
        }
        else {
            printf("유효점수 %d \n", num[i]);
        }
    }
cs

이렇게 하면 제외된 수들만 출력됩니다.


전체 소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<stdio.h>
 
int main() {
 
    int num[5];
    int temp = 0;    //임의로 MAX값 넣을 공간
    int i;      //FOR문 증가값
    int max = num[0];
    int min = 10;
    //  정수를 돌아가면서 num[]에 넣는다            
    for (i = 0; i<5; i++)
    {
        printf("%d 번째 값을 입력하세요: ", i + 1);
        scanf_s("%d", &num[i]); //입력 받아서 num[i]에 넣는다
        temp += num[i];    //총점과 평균을 구하기 위해 temp에 모든 값 더하기
        if (max < num[i]) {
            max = num[i];
        }
        if (min > num[i]) {
            min = num[i];
        }
    }
    printf("최대값은 %d 최소값은 %d 입니다. \n", max, min);
 
    for (i = 0; i < 5; i++) {
        if (max == num[i] || min == num[i]) {
            printf("");
        }
        else {
            printf("유효점수 %d \n", num[i]);
        }
    }
 
    printf("총점 %d 평균 %d", temp, temp / i);
 
    return 0;
 
}
cs