ショッピングモール  


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.2906

無限ループになってしまうんですが
投稿者---ととろ(2004/11/05 13:35:11)


こんにちわ。今回以下のような問題が発生して投稿させていただきました。
koma[40][26]という二次配列にはファイルから読み込んだもので
数値が入っています。
hyouka()という関数は私が作成したその配列を評価する関数で
数値が小さくなるほど良い評価といったものです。
その評価がよくなるように1から11の数字を入れていって
評価がよくなれば更新したいのですが、
無限ループになってしまいうまくいきません。
最初のfor文で40回だけ回るように指定したいです。


<pre>for(j=0;j&lt;40;j++){    
                    if(koma[j][3]==2){
                        for(i=1;i&lt;11;i++){
                            result1=hyouka1(10,1);
                            koma[j][1]=z[i];
                            result2[j]=hyouka1(10,1);
                            if(result2 &gt;= result1){
                                koma[j][1]=a[j];
                            }
                        }
                    }
                    printf(&quot;%d  %d  %d\n&quot;,result1,result2,koma[j][1]);
                }
        



何かお気づきの点がありましたらご教授ご鞭撻のほどを。
よろしくお願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:無限ループになってしまうんですが 2907 あかま 2004/11/05 16:32:04


No.2907

Re:無限ループになってしまうんですが
投稿者---あかま(2004/11/05 16:32:04)


for(j=0;j<40;j++){    
    if(koma[j][3]==2){
        for(i=1;i<11;i++){
            result1=hyouka1(10,1);
            koma[j][1]=z[i];
            result2[j]=hyouka1(10,1);
            if(result2 >= result1){
                koma[j][1]=a[j];
            }
        }
    }
    printf("%d  %d  %d\n",result1,result2,koma[j][1]);
}

とりあえず化けてるので貼りなおしてみる。

見た感じfor文で回してるi,jを変更していないので普通無限ループにはならないと思いますが、これをどこかで変更していませんか?
大域変数になってて、hyouka1(10,1);の中で使っているとか。

無限ループとは関係ないけどhyouka1(10,1);は2回呼ばれているけど引数が同じなのはなぜ?


この投稿にコメントする

削除パスワード

No.2908

Re:無限ループになってしまうんですが
投稿者---ぽこ(2004/11/05 16:36:22)


>見た感じfor文で回してるi,jを変更していないので普通無限ループにはならないと思いますが、これをどこかで変更していませんか?

何をもって無限ループと判断したのか気になりますね。
#1回も回ってなかったり。。。


この投稿にコメントする

削除パスワード

No.2909

Re:無限ループになってしまうんですが
投稿者---あかま(2004/11/05 16:48:11)


result1=hyouka1(10,1);
result2[j]=hyouka1(10,1);
if(result2 >= result1){
printf("%d %d %d\n",result1,result2,koma[j][1]);

怪しいところ発見。2行目。result2は配列ですか?


この投稿にコメントする

削除パスワード

No.2950

Re:無限ループになってしまうんですが
投稿者---ととろ(2004/11/12 12:55:03)


>result1=hyouka1(10,1);
>result2[j]=hyouka1(10,1);
>if(result2 >= result1){
>printf("%d %d %d\n",result1,result2,koma[j][1]);
>
>怪しいところ発見。2行目。result2は配列ですか?

配列ではありません。配列でないとまずいのですか?



この投稿にコメントする

削除パスワード

No.2953

Re:無限ループになってしまうんですが
投稿者---あかま(2004/11/12 16:22:34)


>>怪しいところ発見。2行目。result2は配列ですか?
>配列ではありません。配列でないとまずいのですか?
result2[j]=hyouka1(10,1);
配列でないのに配列として扱ってますよね。




この投稿にコメントする

削除パスワード

No.2949

Re:無限ループになってしまうんですが
投稿者---ととろ(2004/11/12 12:52:31)




>見た感じfor文で回してるi,jを変更していないので普通無限ループにはならないと思いますが、これをどこかで変更していませんか?

その通りでした。ありがとうございます。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity