프로그래밍

 3198, 1/160 회원가입  로그인  
   sedcreta
   C언어 프로그래밍 질문...구구단(배운거 까지 응용)

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2823 [복사]



#include<stdio.h>

/* 2차원공간(?)서 좌표를 입력 받아 사각형의 넓이를 구하는 식 만들기 */

int val[2]={0,};        //x의 결과와 y의 결과를 저장.
int* val1;                //넓이 값
int result(int* inputx,int* inputy);
int main()
{
        int inputx[2]={0,};        //x값을 배열로
        int inputy[2]={0,};        //y값을 배열로
        
//        val1=val;
/* *******************************************x,y의 값을 입력 받는 부분******************************************** */
        for(int i=0;i<2;i++)
        {        
                puts("x좌표의 첫번째 좌표를 입력하시오.");
                scanf("%d",inputx[0]);                                                                        //input에 '&'연산자를 넣지 않는것은 배열명은 주소를나타내기 때문에 주소(번지)를 '&'연산자를 쓰지 않습니다.
                fflush(stdin);        

                printf("현재 입력된 좌표 : (%d,y),(x,y)",inputx[0]);

                puts("x좌표의 두번째 좌표를 입력하시오.");
                scanf("%d",inputx[1]);
                fflush(stdin);

                printf("현재 입력된 좌표 : (%d,y),(%d,y)",inputx[0],inputx[1]);
        }
        for(int a=0;a<2;a++)
        {
                puts("y좌표의 첫번째 좌표를 입력하시오.");
                scanf("%d",inputy[0]);        
                fflush(stdin);
                printf("현재 입력된 좌표 : (%d,%d),(%d,y)",inputx[0],inputy[0],inputx[1]);
                
                puts("y좌표의 두번째 좌표를 입력하시오.");
                scanf("%d",inputy[1]);
                fflush(stdin);
                printf("현재 입력된 좌표 : (%d,%d),(%d,%d)",inputx[0],inputy[0],inputx[1],inputy[1]);
        }
        
        

/* ******************************************* x,y의 값을 입력 받는 부분 ******************************************** */

        result(inputx,inputy);        //거리 계산을 위한 식을 함수로 선언(가로,세로)
        return 0;
}


int result(int* inputx,int* inputy)
{
        val[0]=inputx[1]-inputx[0];
        printf("현재 x의 연산 결과(가로의 길이) : %d",val[0]);
        val[1]=inputy[1]-inputy[0];
        printf("현재 y의 연산 결과(세로의 길이) : %d",val[1]);
        
        *val1=*(val+0)**(val+1);


        return *val1;
}



답은 아니어두 좋습니다...

다만 지금 너무 머리가 복잡해서 어디부터 공부해야될지 모르겠네요...욕심두 나구...아는건지 모르는건지 머릿속에서 정리두 안되구...

뭐 핑계구 귀찮아서 그러하겠지요...

그렇지만...뭐가 잘못됐는지...;;는 잘 모르겠지만...

뭘 공부해야 될지 방향좀 알려주시면 좋겠습니다..

링크에서 오류가 나오던데...;;

  Hit : 5195     Date : 2010/12/28 12:28



    
dawon15 저 코드는 뭔가요..?
저 코드를 설명해달라는 건가요...?

그렇다면 일단

scanf("%d",inputx[0]); // inputx 가 inputx 배열의 주소값을 나타내는 것입니다. inputx[0]은 inputx란 이름을 가진 배열의 첫 번째 값을 말합니다. 그러니까 입력받을 때도 &inputx[0] 라고 해야합니다.

fflush(stdin); // 비울 버퍼가 없고 fflush 함수엔 stdin이 정의되어 있지 않습니다. 잘못된 함수의 사용입니다.

return *val1; // 이미 전역변수인데 리턴할 이유가 없죠.
result(inputx,inputy); // 그리고 여기서 아무데도 저장을 하고 있지 않습니다.

*val1=*(val+0)**(val+1);
/*
*(val+0) // 이 문장의 의미는 val[0] 이 저장되있는 주소값을 0 증가하고 그 주소에 저장되어있는 값을 의미합니다.
의도하신 대로인가요?
*/
2010/12/28  
dawon15 공부 방향이라도 해도 뭐 별거 없습니다.
생각나는 거 코드로 짜보고
이것 저것 눈에 보이는 코드 다 분석해보고 ㅇ.ㅇ

기본적인 공부 (변수, 연산자, 조건&반복문, 배열, 포인터, 구조체, 함수, 등등등 뭐 이런거요 ㅇ.ㅇ 그냥 책보면 C++의 시작! 뭐 이렇게해서 나오는 거 있죠? 그부분요) 끝나셨으면 그냥 저렇게 해보시고
더 공부하고싶다 하면 이제 그 뒷장으로 넘기시면 됩니다.
전처리기, 레퍼런스, 함수의 이용(함수포인터, 인라인함수 이런거...), 파일입출력 등 이런게 기다리고 있을거구요...

이것도 끝났고 자신있으면 뭐 하냐구요?
알고리즘, 자료구조 파보세요
그거로 30년 뻐길 수 있으니 ...
2010/12/28  
sedcreta 문제 해결 했네요...혼자 싸매느라 머리가 좀 아팠지만..ㅋ;

답변은 감사합니다
2010/12/29