PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2007/04/09 22:05:46
Name DeathMage
Subject 다시 상세한 fscanf 질문입니다=ㅂ=;
그러니까, 기본적으로 다항식의 곱셈을 하는 프로그램인데,

링크드리스트를 써야하고, 배열을 사용하면 안됩니다.

input.txt에 있는 데이터 값을 받아서 결과물을 output.txt로 내는 것입니다.

밑에 있는 것으로는

6 5 4 3 // 첫번째 다항식. 6x^5 + 4x^3
8 7 6 5 // 두번째 다항식. 8x^7 + 6x^5

은 연산이 되지만

8 7 6 5 4 3 2 1 // 첫번째 다항식, 8x^7 + 6x^5 + 4x^3 + 2x^1
9 6 4 3 // 두번째 다항식, 9x^6 + 4x^3

은 불가능합니다.

typedef struct poly_STnode { /*<--poly node 구조체-->*/
        int coefficient;
        int exponent;
        struct poly_STnode *link; /*<--링크 필드 설정-->*/
} poly_STnode;

typedef struct { /*<--헤더 구성 구조체-->*/
        poly_STnode *head;
} poly_linkHead;


/*<-- poly list 생성 -->*/
poly_linkHead *polySL() {

        poly_linkHead *P;
        P = (poly_linkHead *)malloc(sizeof(poly_linkHead));
        P->head = NULL;
        return P;
}
.
.
.
.
.

등등등 해서 링크드 리스트를 구성하고요.

그 후에 메인에서 값을 받아서 할려고 했는데..


int main() {


        char *fname_i = "input.txt";

        FILE *input_d;
        if ((input_d = fopen(fname_i,"r"))==NULL){
                printf("파일이 열리지 않았습니다!!\n");
                exit(1);

        }
        
        
/*<--곱셈 시작-->*/
        int c1 = 0, c2 = 0, c3 = 0, c4 = 0;
        int e1 = 0, e2 = 0, e3 = 0, e4 = 0;

        
        poly_linkHead *P1;
        poly_linkHead *P2;
        P1 = polySL();
        P2 = polySL();

/*<--첫번째 다항식-->*/

        fscanf(input_d,"%d %d %d %d",&c1,&e1,&c2,&e2);
        last_data_add(P1,c1,e1); //last_data_add();에 다항식 인자를 넣어서 계산가능
        last_data_add(P1,c2,e2); //링크드 리스트로 구성되어 있습니다.

/*<--두번째 다항식-->*/
        fscanf(input_d,"\n%d %d %d %d",&c3,&e3,&c4,&e4);
        last_data_add(P2,c3,e3); //두번째도 마찬가지
        last_data_add(P2,c4,e4);

        fclose(input_d);
        


/*<--값출력-->*/

        printf("다항식의 곱셈 연산 : \n");
        printList(P1); // 첫번째 다항식 받은값 출력
        printList(P2); // 두번째 다항식 받은값 출력
        printf("-----------------------------------\n");
        fileOUTPUT(MULTIPLICATION_POLY(P1,P2));
//MULTIPLICATION_POLY(P1,P2)는 첫번째와 두번째 다항식의 곱을 구하는 함수
//그걸 파일로 아웃풋을 내기 위한 fileOUTPUT(); 출력함수

}


이렇게 되있습니다.

저가 실은 fscanf를 제대로 배우질 못해서-_-; 많이 어렵네요..

어떻게 하면 더 많은 인자를 받을 수 있을까요?

fscanf로 한줄씩 읽어서(즉 다항식 하나씩) 링크드 리스트에 저장하고,

연산을 하고 싶은데요.. 어떻게 할까요;?






통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
07/04/10 09:18
수정 아이콘
이런 경우에는 fscanf를 쓰지 마시고..
fgets 같은걸로 한 줄을 읽어내신 다음에, strtok로 분해해서 하시는게 좋을 것 같네요.
꿀호떡a
07/04/10 17:39
수정 아이콘
제 생각에도 fgets로 입력받아서 자르시는 편이 좋을 것 같네요.
굳이 fscanf를 쓰셔야 한다면, 입력파일에서 다항식마다 항의 개수 N을 처음에 입력받고 시작한다거나 하는 방법이 있겠습니다[...]
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
공지 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 90914
163976 야구 질문입니다 [6] 一切唯心造75517 13/04/03 75517
163975 이런 계산이 가능한가요? [5] 시미군92456 13/04/03 92456
163974 4월말-5월초에 입고 나가기 좋은 스타일 어디서 볼 수 있나요? [2] 자음연타좀74221 13/04/03 74221
163951 쿼티폰 추천부탁드립니다 [11] 천둥64130 13/04/03 64130
163950 요즘 할만한 게임 뭐가 있나요? [10] 목화씨내놔69013 13/04/03 69013
163949 bm코드 짚기가 너무 어려운데 어떻게 하셨나요? [12] 뽀로로75621 13/04/03 75621
163948 여행사에 대해서 궁금한점이 있습니다 [4] 소녀시대컴백59286 13/04/03 59286
163947 세들어사는집을 비워둔 상태인데 수도요금은 계속 내야하는건가요 ? [18] Ha.록74485 13/04/03 74485
163946 이렇게 하면 살을 얼마나 뺄 수 있을까요? [10] 연애박사71290 13/04/03 71290
163945 lol이 중고등학생 친목용 게임으론 최고인 것 같지만... [34] 창이96133 13/04/03 96133
163943 변 질문 ......... [1] 피지컬보단 멘탈58217 13/04/03 58217
163942 혹시 서울 재즈 페스티벌 가려고 계획하시는분 있으세요?! [5] Nujnah_Eab56081 13/04/03 56081
163941 류현진선수 대뷔전 [6] 가게두어라61694 13/04/03 61694
163940 노트북이 맛이 갔습니다. [1] 시지프스58066 13/04/03 58066
163939 축구 룰 질문드립니다 - 홈 & 어웨이 방식 [5] Dwyane56305 13/04/03 56305
163938 니달리와 트포에 대해서. [8] 자기 사랑 둘60429 13/04/03 60429
163937 [퍼드]60랭 진로조언+인벤 활용법좀 [5] 이즈리얼54609 13/04/03 54609
163935 악성코드 이건 어떤 프로그램이 좋나요?? [3] 김치찌개57332 13/04/03 57332
163934 경제 문제 하나 여쭤보고 싶습니다 [2] 643634632656934 13/04/03 56934
163931 미국 학생비자 질문드려요... [3] 神용재57230 13/04/03 57230
163930 발음과 발성은 후천적으로 고칠수 없나요? [12] H266499 13/04/03 66499
163929 저가형 헤드폰 하나 추천해주시겠어요? [3] azurespace52265 13/04/03 52265
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로