掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

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

No.24619

配列同士の比較をしてある条件にあった値を返すプログラム
投稿者---fuji(2005/12/08 19:47:25)



いつも拝見させていただいております。

現在、表題のようなプログラムを作成しております。しかしどうしても、最終段階でうまく行きません。
みなさんのアドバイスを頂きたく投稿しました。
プログラムの概要はg_a_d[70]の個々の値と
Cd_Bd_mtrx[][]の[1][1]〜[70][70]の値を比較して絶対値を取り
その絶対値の値が、0〜1の範囲のときのCd_Bd_mtrx[1+i][0],[0][1+i]の
値、Ad1、Dd[i]の値を表示させる、という感じです。
現在の結果としては、Ad1の表示はOKなのですが、Cd_Bd_mtrx[1+i][0],[0][1+i]、Dd[i]の値がすべて0と表示されてしまいます。
Dd[]には24〜94の値が入っています。
よろしくお願いいたします。


int main()
{
int i, j;
double g_a_d[70], Cd_Bd_mtrx[71][71],Dd[70];
double delta;
scanf("%d",&Ad1 );

for (i=0; i<69; i++){

delta = g_a_d[i] - Cd_Bd_mtrx[1][i+1] ;

if(delta < 0){
delta = delta * -1;
}
else
delta = delta * 1;

if ( 0 <= delta && delta < 1 ){
printf(%d %d %d %d\n,Ad1, Cd_Bd_mtrx[1+i][0],
               Cd_Bd_mtrx[0][1+i], Dd[i]);
}

delta = g_a_d[i] - Cd_Bd_mtrx[i+1][1] ;

if(delta < 0){
delta = delta * -1;
}
else
delta = delta * 1;

if ( 0 <= delta && delta < 1 )
printf( %d %d %d %d\n,Ad1, Cd_Bd_mtrx[1+i][0],
              Cd_Bd_mtrx[0][1+i], Dd[i]);
}
</pre>


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> ★★★ソースの添付は字下げしてくださるようにお願いします 24620 管理人 2005/12/08 19:51:41
<子記事> Re:配列同士の比較をしてある条件にあった値を返すプログラム 24621 円零 2005/12/08 21:49:45
<子記事> Re:配列同士の比較をしてある条件にあった値を返すプログラム 24622 wiz 2005/12/08 22:16:04


No.24620

★★★ソースの添付は字下げしてくださるようにお願いします
投稿者---管理人(2005/12/08 19:51:41)


投稿の際には「確認画面」でご確認の上、字下げをしたプログラムを再投稿してくださるようお願いいたします。




この投稿にコメントする

削除パスワード

No.24621

Re:配列同士の比較をしてある条件にあった値を返すプログラム
投稿者---円零(2005/12/08 21:49:45)


>現在の結果としては、Ad1の表示はOKなのですが、

printfの書式指定がおかしいのにOKなはずはないんですが…

よくわかりませんがその「OK」な状態を出発点に話をするなら、
その時のソースコードをそのまま載せるべきでしょう。
もしソースコードに手を入れてから貼るのであれば、
コンパイルが通る状態にして、症状が再現するのを確かめた上で投稿すべきです。

また、書き込みの途中で確認画面を経たはずですが、
それを見ておかしくなってることに気付かなかったでしょうか。
多分コピーすべき部分の一部しかコピーできていなかったはずです…


この投稿にコメントする

削除パスワード

No.24622

Re:配列同士の比較をしてある条件にあった値を返すプログラム
投稿者---wiz(2005/12/08 22:16:04)


提示されたコードは見た感じコンパイルすら通らないのですが、
結果がOKとはどういうことでしょうか。。。?
printf関数の書式もそうですが、Ad1などの変数の定義すらありません。

if文の条件もおかしいです
    if(delta < 0){
      delta = delta * -1;
    }
    else
      delta = delta * 1;

    //この段階ですでにdeltaは0以上です
    //elseに意味があるのかはしりませんが。。。

    if ( 0 <= delta && delta < 1 )
    //この中身が実行されるのは結局0の時だけ 




この投稿にコメントする

削除パスワード

No.24624

Re:配列同士の比較をしてある条件にあった値を返すプログラム
投稿者---Hermit(2005/12/08 22:56:23)


if ( 0 <= delta && delta < 1 )
//この中身が実行されるのは結局0の時だけ

delta は double なので、実行されるのは 0.0 以上 1.0 未満だと思われます。

ま、ソースが変なのでなんともいえないのだが・・・
単純に、配列にデータが入っていないだけな気もしますが・・・。


この投稿にコメントする

削除パスワード

No.24625

Re:配列同士の比較をしてある条件にあった値を返すプログラム
投稿者---wiz(2005/12/08 23:50:48)


>delta は double なので、実行されるのは 0.0 以上 1.0 未満だと思われます。

doubleみてませんでした。。。。
ご指摘どうもです。

#printfで%dになってるんで0にしか見えないとは思いますが。。。;


この投稿にコメントする

削除パスワード

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