연결 리스트 무한루프좀 잡아주세요 ㅠ
모든
질문 내용 : 다항식 곱셈을 만드는 중인데 노드 추가 부분에서 무한루프가 나네요 .. 표시해뒀습니다 나는 부분..
그리고 나머지 연결 리스트도 뭔가 문제가 있는듯한데 한번만 봐주시면 감사하겠습니다
#includestdio.h
#includestdlib.h
typedef struct Listnode{
float coef;
int expo;
struct Listnode *next;
}listnode;
typedef struct Headnode{
struct Listnode *head;
}headnode;
headnode* createheadnode() //헤드 노드 만들기
{
headnode *h;
h=(headnode*)malloc(sizeof(headnode));
h-head=NULL;
return h;
}
void addlastnode(headnode *h)
{
listnode *p; // 임시
listnode *newnode; // 새로운 노드
newnode=(listnode*)malloc(sizeof(listnode));
newnode-next=NULL;
if(h-head==NULL)
{
h-head=newnode;
}p=h-head;
while(p-next!=NULL)
{
printf(ㅇ); ////////////////////////////////////////////////////// 이 부분 무한루프
p=p-next;
}
p-next=newnode;}
void inputvalue(headnode *h,int polynumber)
{
printf(바보);
listnode *p,*p1;
FILE *fp=fopen(input.dat,rb);
int copiedpolynumber,i;
printf(바보);p=h-head;
p1=h-head;
copiedpolynumber=polynumber; //밑에 포문에서 뺄셈때매 폴리가 바껴서 복사해놈
for(i=0; ipolynumber+1; i++)
{
fscanf(fp,%f,&p-coef);
p=p-next;
}for(i=0; ipolynumber+1; i++)
{
if(p1-coef==0)
{
printf(다항식에 계수 0인 횟수\n);
p1-expo=0; //계수가 0인항, 한마디로 존재 하지 않는 곳엔 차수에 0 들어가있음
copiedpolynumber-=1;
p1=p1-next;
}
else
{
p1-expo=copiedpolynumber; // 계수를 하나씩 떨어뜨리면서 그걸 expo에 넣어줌
copiedpolynumber-=1;
p1=p1-next;
}
}
}
void main()
{
int i,j;
FILE *fp;
int polynumber1=0,polynumber2;
void inputvalue(headnode *h,int polynumber);
headnode *H1;
headnode *H2;
//--------잠시 저장용-------//
fp=fopen(input.txt,wb);
fprintf(fp,5 2 3 0 1 3 0 4 3 1 2 2 -10);
fclose(fp);
fp=fopen(input.txt,rb);
fscanf(fp,%d,&polynumber1); //첫번째 방정식 차수 저장
printf(첫번째 항 차수는 %d \n,polynumber1);
//----------------첫번쨰 방정식---------------------//
H1=createheadnode();
for(i=0; ipolynumber1+1; i++) //상수항 까지 합해서 +1
{
addlastnode(H1);
}
printf(첫번째 항 차수는 %d \n,polynumber1);
inputvalue(H1,polynumber1);//----------------------다항식 A 입력 부분 끝---------------------//
printf(------------다항식 2------------------\n);
H2=createheadnode();
fscanf(fp,%d,&polynumber2); //두번째 방정식 차수 저장
for(i=0; ipolynumber2+1; i++) //상수항 까지 합해서 +1
{
addlastnode(H2);
}
inputvalue(H2,polynumber2);
fclose(fp);
}
-
해련
오~~ 근데 이제 inputvalue 쪽도 좀 봐주심 안될까요 ㅠㅠ 그쪽도 에러남 ㅠㅠ
-
도도한
굿입니다요.
-
상1큼한렩
했습니다
p=h-head;
while(p-next!=NULL)
부분을
else
로 바꿔주세요 -
핫체리
그걸 == 바꾸면 알고리즘 자체가 말이 안되요 ㅠ;
-
처녀자리
잘못봄//.
-
남천
네;; 거기 문제가 아닌디..;
-
헛나발
거기가 문제가 아닌듯한데요..;
-
노랑이
while(p-next! = NULL)
이 부분에서
p-next! 에 NULL 값을 집어넣어버리네요 -
피네
어디가 오타라고 하시는건지 잘;;
-
후예
오타네요
while(p-next! = NULL)
==, * + 등은 오타나면 못잡으니까 한칸 띄어쓰시는게?