다항식 파일 입출력 질문이요~부탁드립니다..조금 급해요
일본어못해요
input.txt에
new
3 4
7 3
3 1
7 0
new
5 4
2 3
1 1
5 0
이런식으로 입력을 하는건데요 제가 해봤는데 조금 막혀서요... 수정좀 부탁드립니다!!
#include stdio.h
#include stdlib.h
typedef struct Node Node;
struct Node{
int coef;
int expon;
Node *link;
};
Node *insert(int coef, int expon, Node *ptr);
Node *node_add(Node *a, Node *b);
Node *node_mul(Node *a, Node *b);
void del(Node *de);
void print(Node *ptr);
main()
{
int i, num, co, exp;
Node *a=0, *b=0, *c=0, *d=0;
//a=b=c=d=0;
FILE *fp=fopen(input.txt, r);
// A 와 B 에 두 다항식을 저장
fscanf(fp, %d, &num);
for(i=0; inum; i++)
{
fscanf(fp, %d %d\n, &co, &exp);
a=insert(co,exp, a);
}
fscanf(fp, %d, &num);
for(i=0; inum; i++)
{
fscanf(fp, %d% d\n, &co, &exp);
b=insert(co,exp,b);
}
fclose(fp);
c=node_add(a,b);
fprintf(fp, Addition);
print(c);
d=node_mul(a,b);
fprintf(fp, Multiplication);
print(d);
del(a);
del(b);
del(c);
del(d);
// 입력파일 닫기
//fclose(fp);
}
Node *insert(int coef, int expon, Node *ptr)
{
Node *temp, *pre;
if(!ptr){
ptr=(Node *)malloc(sizeof(Node));
ptr-coef=coef;
ptr-expon=expon;
ptr-link=0;
return ptr;
}
temp=(Node *)malloc(sizeof(Node));
pre=(Node *)malloc(sizeof(Node));
temp-link=ptr;
while(ptr){
if(ptr-exponexpon){
pre-link=(Node *)malloc(sizeof(Node));
pre-link-coef=coef;
pre-link-expon=expon;
pre-link-link=ptr;
break;
}
else if(ptr-expon==expon){
ptr-coef+=coef;
if(!ptr-coef){
pre-link=ptr-link;
free(ptr);
}
break;
}
else if(!ptr-link){
ptr-link=(Node *)malloc(sizeof(Node));
ptr-link-coef=coef;
ptr-link-expon=expon;
ptr-link-link=0;
break;
}
pre=pre-link;
ptr=ptr-link;
}
ptr=temp-link;
free(temp);
return ptr;
}
Node *node_add(Node *a, Node *b)
{
Node *c=0;
//FILE *fp=fopen(output.txt, w);
//fprintf(fp, Addition\n);
//fclose(fp);
while(a){
c=insert(a-coef, a-expon, c);
a=a-link;
}
while(b){
c=insert(b-coef, b-expon, c);
b=b-link;
}
return c;
}
Node *node_mul(Node *a, Node *b)
{
Node *c=0;
Node *temp=b;
while(a)
{
while(b)
{
c=insert(a-coef*b-coef, a-expon+b-expon, c);
b=b-link;
}
b=temp;
a=a-link;
}
return c;
}
void del(Node *de)
{
Node *temp;
while(de){
temp=de;
de=de-link;
free(temp);
}
}
void print(Node *ptr)
{
FILE *op = fopen(output.txt, w);
// C 출력
if(!ptr)
fprintf(op, 0);
while(ptr){
if(ptr-coef0)
fprintf(op,+);
fprintf(op, %d %d\n, ptr-coef, ptr-expon);
ptr=ptr-link;
}
fclose(op);
}
-
유리
참! 전 new 이부분을 이해를 전혀 못해서그냥 다항식의 수로 해서 저런식으로 했거던요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |