C 언어는 두 숫자를 찾아

화이트 배우고 C 언어 클래스를 사용하여, 처음 두 숫자와 주제를했다. 전체 개념은 처음부터 번호 순서 합으로 배열하고, 나중에 합산 회전 각 숫자를 통해, 비교적 간단하고, 대상 번호와 동일 여부를 판단한다. 동일하지 않으면 다음 번호로 진행 한 후 다음 번호와 합산, 같은 최종 번호가 할 수있는 모든 페어 추가, 결과가.

그것은 returnSize가 반환 두 숫자의 배열을 읽기 위해, 2로 설정 후 볼 필요가 있음을, 처음부터하지 두 숫자를 출력했다.
오류 메시지
이상에 의해 상기 에러 도면 여기 배열 기능의 종료 후에 사라지지 않도록하여 오류의 원인이 반환 된 배열이 정적 배열로 설정되어, 그 반환 할 수있다. 최종 실행 코드는 다음과 같습니다 :

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    int i=0,j;
    *returnSize = 2;
    static int r[2]={0,0};
    for(i=0;i<numsSize-1;i++)
        for(j=i+1;j<numsSize;j++)
             {
                if(nums[i]+nums[j]==target)
                {
                     r[0]=i;
                    r[1]=j;
                    return r;
                }
             }
    return 0;
}

결과 :
그림 삽입 설명 여기

출시 일곱 개 원래 기사 · 원의 칭찬 0 · 조회수 (142)

추천

출처blog.csdn.net/qq_44183026/article/details/104595583