게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 코딩중에 3시간째 이해가...
게시물ID : programmer_19488짧은주소 복사하기
작성자 : 출석
추천 : 0
조회수 : 1153회
댓글수 : 10개
등록시간 : 2017/01/04 08:41:29
옵션
  • 본인삭제금지
문제가 정수 3개를 입력 받아 그 중 높은 숫자와 낮은 숫자를 출력하는 건데요....

#include <stdio.h>

int input();
int large(int* marr1);
int low(int* marr2);

int main(void)
{
       int arr[3];
       printf("3개의 정수를 입력하세요.\n");
       for (int i = 0; i < 3; i++)
      {
  
                arr[i] = input();
       }

        printf("정수 세 개중 높은 숫자는 : %d 입니다\n", large(&arr[0]));  //&arr[0] <<<<<<<<이해 불가
        printf("정수 세 개중 낮은 숫자는 : %d 입니다\n", low(&arr[0]));
 
        return 0;
}

int input()
{
         int a = 0;
         printf("정수를 입력하세요\n");
         scanf("%d", &a);
         return a;
}

int large(int* marr1)
{
         int num = 0;
         num = marr1[0] < marr1[1] ? marr1[1] : marr1[0];
         num = num < marr1[3] ? marr1[3] : num;
         return num;
}
int low(int* marr2)
{
         int num = 0;
         num = marr2[0] < marr2[1] ? marr2[0] : marr2[1];
         num = num < marr2[3] ? num : marr2[3];
         return num;
}

제목 없음.png

실행 결과 입니다.ㅠㅠ 높은 숫자도 이상하게 나오고 낮은 숫자는 아예 쓰레기 값이 나오네요..

그리고 위에 주석부분에 이해가 안가는게 배열 첫번째 변수가 (arr[0]) 주소를 뜻하는게 아닌가요?

그럼 그냥 arr[0]로 넘겨주고 포인터로 받으면 될줄 알았는데. 프로그램 중지뜨네요.. & 주소연산자? 붙이니까 중지는 안뜨는데

제가 알고 있는게 잘못된 생각인가요??

그리고 결과값이 왜 저렇게 나오는지좀 알려주실분 계신가요 ㅠㅠ

출처
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호