お願いします。以下のコードは、多項式関数を表現するために作られ、その多項式をソートされます。リンクリストを使用して多項式を表現しソートするIN C
#include <stdio.h>
#include <stdlib.h>
typedef struct PolyNode *pnode;
typedef struct PolyNode {
float coef;
int expon;
pnode next;
};
pnode Make_Node(pnode ptr, float coef, int expon) {
ptr->coef = coef;
ptr->expon = expon;
ptr->next = NULL;
return ptr;
}
pnode Input_Node(pnode ptr, float coef, int expon) {
if (ptr->expon < expon || ptr) {
pnode temp = NULL;
temp = malloc(sizeof(pnode));
temp = Make_Node(temp, coef, expon);
temp->next = ptr;
ptr = temp;
return ptr;
} else {
pnode temp = NULL;
temp = malloc(sizeof(pnode));
temp = Make_Node(temp, coef, expon);
pnode pol;
pol = ptr;
while (pol->next && pol->next->expon > expon) {
pol = pol->next;
}
temp->next = pol->next;
pol->next = temp;
return ptr;
}
}
void Print_Pol(pnode ptr) {
pnode temp;
temp = ptr;
while (temp) {
printf("%gx^%d", temp->coef, temp->expon);
if (temp->next != NULL) {
printf(" + ");
}
temp = temp->next;
}
}
int main() {
pnode ptr;
ptr = (pnode)malloc(sizeof(pnode));
ptr = Make_Node(ptr, 2, 3);
ptr->next = NULL;
ptr = Input_Node(ptr, 2, 4);
printf("%s%d\n", &ptr, ptr->expon);
ptr = Input_Node(ptr, 3, 6);
printf("%s%d\n", &ptr, ptr->expon);
// ptr = Input_Node(ptr, 3, 7);
Print_Pol(ptr);
return 0;
}
は私を助けて! // ptr = Input_Node(ptr、3,7)の前に "//"を消去したとき。プログラムは実行されません。
typedefの後ろにポインタの本質を隠してはいけません!あなたを含む誰もが混乱します。 –
このコメントが表示されても実行されません – CIsForCookies
エラー出力を質問にテキストとして入力することをおすすめします。時間が経ってもイメージリンクは引き続き機能するという保証はありません。 – Jacob