エラー解消されません、、、

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tennga
記事: 13
登録日時: 7年前

エラー解消されません、、、

#1

投稿記事 by tennga » 7年前

double onnsoku(double t)
{

double c;
c=331.5+0.6*t;

return c;
}

double hattyou(double c,double f)
{

double r;
r=c/f;

return r;
}

int main(void)
{

double f,c,t;
printf("気温と周波数を入力してください。\n");
scanf("%f %f",&t,&f);
c =onnsoku(t);

printf("波長は%lfです。\n",hattyou(c,f));

return 0;
}

こうなりました、、、
adai2.c: 関数 ‘main’ 内:
kadai2.c:23:3: 警告: 組み込み関数 ‘printf’ の互換性がない暗黙的な宣言です [デフォルトで有効]
printf("気温と周波数を入力してください。\n");
^
kadai2.c:24:3: 警告: 組み込み関数 ‘scanf’ の互換性がない暗黙的な宣言です [デフォルトで有効]
scanf("%f %f",&t,&f);
^

box
記事: 2002
登録日時: 13年前

Re: エラー解消されません、、、

#2

投稿記事 by box » 7年前

printfとかscanfとかのプロトタイプ宣言が書いてあるはずの stdio.h をインクルードすれば、
くだんの警告は出なくなるかもしれません。

コード:

#include <stdio.h>

double onnsoku(double t)
{
    return 331.5 + 0.6 * t;
}

double hattyou(double c, double f)
{
    return c / f;
}

int main(void)
{
    double f, t;

    printf("気温と周波数を入力してください。\n");
    scanf("%lf %lf", &t, &f);
    printf("波長は%fです。\n", hattyou(onnsoku(t), f));
    return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

tennga
記事: 13
登録日時: 7年前

Re: エラー解消されません、、、

#3

投稿記事 by tennga » 7年前

ありがとうございます。
解消されましたが、結果がこうなりました
気温と周波数を入力してください。
17.0
40.0
波長はinfです。

box
記事: 2002
登録日時: 13年前

Re: エラー解消されません、、、

#4

投稿記事 by box » 7年前

tennga さんが書きました: 解消されましたが、結果がこうなりました
気温と周波数を入力してください。
17.0
40.0
波長はinfです。
う~ん、自分のところでは、(計算式が正しければ)正しいと思われる8.5425が出ますけどね。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

tennga
記事: 13
登録日時: 7年前

Re: エラー解消されません、、、

#5

投稿記事 by tennga » 7年前

プログラム同じように書いたんですが結果が、、、

アバター
purin52002
記事: 235
登録日時: 7年前
連絡を取る:

Re: エラー解消されません、、、

#6

投稿記事 by purin52002 » 7年前

横から失礼します。

tenngaさんはscanfで「%f」を使っていますが、boxさんは「%lf」を使っています。
変数がdouble型なら%lfにしないとちゃんと読み込んでくれないんじゃないでしょうか?
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

tennga
記事: 13
登録日時: 7年前

Re: エラー解消されません、、、

#7

投稿記事 by tennga » 7年前

lfにしたんですけど、全く何も変わらないんですよね…

アバター
purin52002
記事: 235
登録日時: 7年前
連絡を取る:

Re: エラー解消されません、、、

#8

投稿記事 by purin52002 » 7年前

原因がわからないのでご自身でデバッグしてみてください。
各関数で値を出力してみてください。

コード:

double onnsoku(double t)
{
    double c;
    c=331.5+0.6*t;
    printf("onsoku_c=%lf\n",c);//同じように各関数での変数の値を確認する。
    return c;
}
波長がinfとなるということは、hatyou関数がおかしい。
hatyou関数では割り算しかしてないから、引数がおかしい。
、、、のように悪さをしていそうな処理をさかのぼっていくと効率がいいかもしれません。
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

返信

“C言語何でも質問掲示板” へ戻る