최소값 찾기 코드에 대한 질문입니다!

결과값:

1 2 3 4 5 6 7 8 9 10

28 81 60 83 67 10 66 97 37 94

최솟값은 10입니다.

코드를 짜봤는데 오류는 안뜨더라구요
다만

  1. 14,15번째줄에 있는 scanf의 길이를 줄여서 간단하게 입력받을 순 없을까라는 고민이 있습니다.
  2. 18번째줄에 prices[i-1]을 사용해도 되는지 궁금합니다.
  3. 해설에는 rand()함수를 사용했는데 왜 사용했고 왜 100으로 나눈 나머지를 사용하는지도 모르겠습니다.
    위의 세가지가 이해가 안됩니다…

c언어 선배님들 도와주세요ㅠㅠㅠ

<맨아래 해설답안 첨부했습니다.>

// 작성자가 작성한 코드
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

int numbers[SIZE] = {0};
int prices[];
int minimum;
int i;

int main(void) {
printf("-----------------------------------------\n");
printf(“1, 2, 3, 4, 5, 6, 7, 8, 9, 10\n”);
printf("-----------------------------------------\n");
scanf("%d, %d, %d, %d, %d, %d, %d, %d, %d, %d", &prices[i], &prices[i], &prices[i], &prices[i], &prices[i], &prices[i], &prices[i], &prices[i], &prices[i], &prices[i]);

for( i=1; i < SIZE; i++) {
	if( prices[i] < prices[i-1])
		minimum = prices[i];
}

printf("최소값은 %d입니다.", minimum);

return 0;

}

// 해설 답안
제목_없음

  1. scanf를 반복해서 사용하면 됩니다. for문이나 loop문을 이용해서요
  2. prices[i - 1] 에서 [] 안에 있는 숫자가 0 혹은 양의 정수이어야 하고, 그 최댓값은 prices의 최대 크기를 넘기면 안됩니다. i - 1이 이 조건에 해당하는지 확인해보세염
  3. rand()는 임의의 정수를 반환하는 함수입니다. 대체로 우리는 값을 쓸 때 원하는 범위가 있고 그 범위가 0~99라면 % 100 같은 연산을 사용합니다.
1 Like

crmerry님 감사합니다!!
덕분에 막혔던 것들이 시원하게 풀리네요ㅎㅎ