배열for문;;
찬솔
질문 제목 : 질문 내용 : #include stdio.h
int main()
{
int arr[4];
int max, min, sum, i;
for(i=0;i5;i++)
{
printf(입력:);
scanf(%d,&arr[i]);
}
max=min=sum=arr[0]; // 모든것이 다 arr[0]과 같다.
for(i=1;i5;i++) // i=1 i={1,2,3,4}
{
sum += arr[i]; // arr[i]=
if(maxarr[i])
max=arr[i];
if(minarr[i])
min=arr[i];
}
여기서... 주석무시해주세요... for(i=1;i5;i++) 이거
1 2 3 4 이렇게 4개아닌가여;;?
근데왜 5개로돌아가지 ㅡㅜ
추가로
방금 생각한건데[
sum += arr[i]; 여기에서
sum 은 arr[0] 이니까
arr[i] 로 들어갈땐 arr[1] arr[2] arr[3] arr[4] 이렇게 4개만 들어가는것이 맞나요?
결론적으로 총 5개 arr[0],[1],[2],[3],[4]
sum = sum+arr[i]
sum = arr[0]+arr[i] ( arr[1]~[4])가 맞나여?
-
황소자리
감사합니다 저도 답변 보다가 막힌곳 지나갔어요^^
-
찬들
흠.. 워링이 뜨지 않던가요??
배열은 0부터 만들어집니다.
즉 arr[4] 이렇게 선언한다면... arr[0], arr[1], arr[2], arr[3] 이렇게 4개의 공간을 가져오는걸텐대;;
for 문에서 1~4 까지 한다면 arr[4] 도 값을 넣어주게 되는데.. 이때 arr[4] 라는 값은 만들어 주지 않아서 워링이나 오류가 뜰태고 arr[0] 은 제일 처음에 초기화 해주지 않았기 때문에 쓰래기 값이 들어가 있어 원하는 결과를 얻어오지 못 -
찬들
sum 값에 초기값으로 0번째값을 넣어주었기 때문에 배열 0번째를 사용하지 않고 1부터 4까지 사용하는 것입니다..