関数の絶対値を求めるプログラムについて教えてください。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ゆうさん

関数の絶対値を求めるプログラムについて教えてください。

#1

投稿記事 by ゆうさん » 13年前

最近C言語を始めたばかりで、簡単な整数のみの絶対値を求めるプログラムは組めるようになりました。
課題で、
数値xを入力し、y=|2x-3|を出力するプログラムを書きなさい。
#include<stdio.h>

//int main(void)

int main(int argc,char*argv[])

{

double x,y;


scanf("%lf",&x);

}

という課題が出ました。
自分で組んだプログラムを実行しても、そのまま2x-3の値が出てきてしまいます。
結局1週間考えたのですが分かりませんでした。
誰か教えてきただけませんか?

華風えくれあ
記事: 25
登録日時: 13年前
住所: 岐阜県大垣市
連絡を取る:

Re: 関数の絶対値を求めるプログラムについて教えてください。

#2

投稿記事 by 華風えくれあ » 13年前

自分で組んだプログラムのコードが見当たらないのですが・・・、
現在どの部分までできているかコードを載せていただけないでしょうか。

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

Re: 関数の絶対値を求めるプログラムについて教えてください。

#3

投稿記事 by box » 13年前

ゆうさん さんが書きました: 数値xを入力し、y=|2x-3|を出力するプログラムを書きなさい。
そもそも、絶対値の数学的な定義は理解されているのですよね?
2x-3≧0ならば、|2x-3|=2x-3
そうでなければ、|2x-3|=-(2x-3)
入力したxの値に応じて、2x-3が0以上かそうでないかを判定するだけのことです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 関数の絶対値を求めるプログラムについて教えてください。

#4

投稿記事 by みけCAT » 13年前

実数の絶対値を求める関数はfabsです。
http://9cguide.appspot.com/r_lib.html#S5
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ゆうさん

質問者です

#5

投稿記事 by ゆうさん » 13年前

この様なプログラムを組んだのですが、何がダメなのでしょうか?
明日提出なので、誰か直していただけると非常に助かります。

#include <stdio.h>

int main(void)
{
double x,y;

printf("x=");
scanf("%lf", &x);

y=2*x-3;
if (y<0.0)
{
y=-y;
}
else
{
y=y;
}
printf("y=%lf\n", x,y);

return(0);

}

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

Re: 質問者です

#6

投稿記事 by box » 13年前

ゆうさん さんが書きました:この様なプログラムを組んだのですが、何がダメなのでしょうか?
「ダメ」というのは、何かご自分で検証してみた上でのことですか?
テストデータとしては、
2x-3=0となるx
2x-3>0となる任意のx
2x-3<0となる任意のx
の3種類を用意して、それぞれのxについて所定の結果が得られれば、
そのプログラムは正しいことになります。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

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

Re: 質問者です

#7

投稿記事 by box » 13年前

ゆうさん さんが書きました:

コード:

    else
    {
        y=y;
    }
まあ、少なくともこの部分は冗長でしょうね。結局何もしていないのですから。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

たいちう
記事: 418
登録日時: 14年前

Re: 関数の絶対値を求めるプログラムについて教えてください。

#8

投稿記事 by たいちう » 13年前

少なくともprintfは間違ってます。
使い方を確認してください。

閉鎖

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