前提・実現したいこと
連結リストから、先頭の値の倍数になる値を持つセルを削除する関数を作りたいのですが、わかりません。
この関数をどのように手直しすればよいですか?
発生している問題・エラーメッセージ
該当のソースコード
C
1struct _list 2{ 3 int value; 4 struct _list* next; 5} 6 7typedef struct _list* List; 8 9void remove_multple(List xs) { 10 List ys = xs->next; 11 List temp; 12 int p = xs->value; 13 14 15 while(ys != NULL){ 16 if(p%ys->value == 0) 17 { 18 temp=ys; 19 ys=ys->next; 20 xs=xs->next; 21 free(temp); 22 } 23 else 24 { 25 ys=ys->next; 26 xs=xs->next; 27 } 28 29 } 30} 31 32
試したこと
補足情報(FW/ツールのバージョンなど)
(回答がついている内容とは別途、)
「先頭の値の倍数になる値を持つセルを」判定する式はソースと逆ではありませんか?
if (ys->value % p == 0) ... // 先頭の値で割り切れたらそいつは倍数だ、消せ!
回答3件
あなたの回答
tips
プレビュー