![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
整数を格納した5つのノードを持つリスト構造を用意し、それを降順にソートするプログラムなのですが、途中で止まってしまいます。 (*maxp)->next=tmp;という箇所で止まってしまいます。(以下のソースコード中にコメントしてあります。)止まる理由がわかる方がいらっしゃたら、教えていただけるとありがたいです。
#include <stdio.h>
#include <stdlib.h>
struct node{
int value;
struct node *next;
};
int main(void)
{
struct node *p,*lp;
p=(struct node *)malloc(sizeof(struct node));
lp=p;
int i;
for(i=1;i<4;i++){
lp->value=1000*rand()/RAND_MAX;
lp->next=(struct node *)malloc(sizeof(struct node));
lp=lp->next;
}
lp->value=1000*rand()/RAND_MAX;
lp->next=NULL;
lp=p;
while(lp!=NULL){
printf("%d\n",lp->value);
lp=lp->next;
}
struct node **as,**maxp,*tmp,**bs;
as=&p;
while(1){
maxp=as;
bs=&(*as)->next;
while(1){
if((*maxp)->value<(*bs)->value)maxp=bs;
if((*bs)->next==NULL)break;
bs=&(*bs)->next;
}
tmp=(*as)->next;
(*as)->next=(*maxp)->next;
/*ここで止まる*/
(*maxp)->next=tmp;
tmp=*as;
*as=*maxp;
*maxp=tmp;
if((*as)->next->next==NULL)break;
as=&(*as)->next;
}
lp=p;
while(lp!=NULL){
printf("%d\n",lp->value);
lp=lp->next;
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- C言語・C++・C# leetcode21 1 2022/04/21 11:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InvokeMemberメソッドとは何を...
-
構造体のリスト削除
-
コールバック関数はnullになら...
-
Enterキーを押されたら次の処理...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
信頼区間の1.96や1.65ってどこ...
-
【C++】関数ポインタの使い方
-
Aの値からBの値を除するとは??
-
プログラムでの数字につく”f”の...
-
10個出力で改行したいのですが...
-
C言語階乗の総和を求める
-
既定のコンストラクタがありま...
-
fgetsなどのときのstdinのバッ...
-
*をユーザーが入力した数字の数...
-
マイナスからプラスへ転じた時...
-
数字以外が入力されたらエラー...
-
DWORDの実際の型は何でしょうか
-
2÷3などの余りについて
-
複数桁10進数の*桁目だけを抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報
「動作を停止しました。」というメッセージボックスが表示されます