整数を格納した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ランキング
-
大学で出されたc言語の課題に...
-
InvokeMemberメソッドとは何を...
-
線形リスト(C言語)
-
空のカラムを挿入
-
2÷3などの余りについて
-
Enterキーを押されたら次の処理...
-
信頼区間の1.96や1.65ってどこ...
-
マイナスからプラスへ転じた時...
-
fgetsなどのときのstdinのバッ...
-
*をユーザーが入力した数字の数...
-
C言語のfor文です。 繰り返しの...
-
C言語
-
「指定されたキャストは有効で...
-
float型とdouble型の変数の違い...
-
プログラムでの数字につく”f”の...
-
printf で二進表示を行いたい。
-
10個出力で改行したいのですが...
-
ガンマ変換 C言語でプログラ...
-
doubleの変数にintとintの割り...
-
DWORDの実際の型は何でしょうか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InvokeMemberメソッドとは何を...
-
構造体のリスト削除
-
C# ref引数のnull判定
-
双方向リストのバブルソートに...
-
コールバック関数はnullになら...
-
今度はdoubly linked listの問...
-
C♯ 2段構造のcontextMenuStrip?
-
空のカラムを挿入
-
C#でのEXCEL出力に関して
-
「Nz」は何て読むのでしょうか?
-
ソートを自作
-
ばばぬきプログラムについて
-
バブルソートを使って文字列を...
-
ポインタを使った連結リストへ...
-
C言語 dequeue
-
API 録音 MCI
-
マイナスからプラスへ転じた時...
-
Enterキーを押されたら次の処理...
-
2÷3などの余りについて
-
C言語での引数の省略方法
おすすめ情報
「動作を停止しました。」というメッセージボックスが表示されます