#include <stdio.h>
int main(void) {
int arr[5], n, max = 0, min = 0, total = 0;
printf("5개의 정수를 입력하시오 : ");
for (n = 0; n < 5; n++)
scanf_s("%d", &arr[n]);
for (n = 0; n < 5; n++) {
if (arr[n] > max)
max = arr[n];
}
printf("입력된 정수중 최댓값 : %d\n", max);
for (n = 0; n < 5; n++) {
if (arr[n] < min)
min = arr[n];
}
printf("입력된 정수중 최솟값 : %d\n", min);
for (n = 0; n < 5; n++)
total += arr[n];
printf("입력된 정수의 총 합: %d\n", total);
}
최댓값과 총 합을 구하는 방법은 구현했지만, 최솟값을 구현하지 못하였다.
실행 결과, 계속 최솟값이 0이 나왔다. 이유
min 값을 0으로 주면, arr 배열의 어떠한 값과도 같거나 작았을 것이다.
아래 코드처럼, [총 합과 최솟값, 최댓값]을 한 번에 구하는 for문을 이용해 구현하는 방법이 있었다.
#include <stdio.h>
int main(void) {
int arr[5];
int max, min, sum, i;
for (i = 0; i < 5; i++)
{
printf("쓰고 엔터 : ");
scanf_s("%d", &arr[i]);
}
max = min = sum = arr[0];
for (i = 1; i < 5; i++)
{
sum += arr[i];
if (max < arr[i])
max = arr[i];
if (min > arr[i])
min = arr[i];
}
printf("최대: %d", max);
printf("최소: %d", min);
printf("총합: %d", sum);
}
#include <stdio.h>
int main(void) {
char arr[9] = { 'G','O','O','D',' ','T','I','M','E' };
int arrLen = sizeof(arr) / sizeof(char);
for (int i = 0; i < arrLen; i++)
printf("%c", arr[i]);
printf("\n");
return 0;
}
char형 1차원 배열을 선언과 동시에 char형 문자로 초기화 하였다.
arrLen -> 배열 길이를 굳이(?) 배열의 크기에 char형 크기를 나눠 알아냈고, 출력하였다.
아주 중요한 정보를 얻었습니다, 감사합니다.