
No.7ベストアンサー
- 回答日時:
★アドバイス
>-1*subという書き方はしませんか?
↑
絶対値を表示する計算式は間違ってはいません。
でも最後の printf 行の『絶対値』を表示するときの sub 変数は絶対値に
なっていないのでこの質問的には間違いです。
>エラーがでてしまうのですが、…
↑
エラーが出ますか?
補足のソースには全角空白文字が混じっています。
エラーはこのせいでしょう。
・ここではサンプル・ソースのインデント部を全角空白の文字で書き込みます。
だからコピー&ペーストするときにはエディッタなどの置換命令で半角空白の文字に
一括変換して下さい。
本題:
・『-1*sub』は絶対値の計算式としてはあっていますが、sub 変数に代入されていません。
だから sub 変数に『-1*sub』を代入すれば良いです。
つまり
sub = (-1 * sub);
を if-else のブロックで記述します。
ゼロ以上の場合は特に記述する必要はないですが分かりやすく
sub = (+1 * sub);
などを対応して書いておくのも良いですね。
この辺は自由ですが…。
・ちなみに if-else のブロック内では printf の記述はなくて良いのではないでしょか?
最後の1行の printf で絶対値の sub 変数を書き出しているので。
・以上。出来たらソースを貼り付けて下さい。見ます。
この回答への補足
sub=(1*sub);
sub=(-1-*sub);
を
#include<stdio.h>
int main( void )
{int a, b, sub;
scanf( "%d", &a );
scanf( "%d", &b );
sub = a - b;
sub=(1*sub);
sub=(-1-*sub);
if (sub >=0 )
{printf("%d",sub);
}else{printf("%d",-1*sub);
}printf( "絶対値=%d\n", sub );
return 0;} のどこに入れますか?
if elseの中にそれぞれ入れてもエラーがでます。
全て半角にしました。
No.6
- 回答日時:
★アドバイス
・まずは質問のタイトルから入ります。
>整数を二つ読み込み、それらの差の絶対値を書き出すプログラム
↑
これはそのまま
>これは数学での絶対値同様、例えば
>2 -5 と入力したら7と出て、
>2 5と入力したら3と出るものですか?
↑
この考えていいと思います。
『差』を求めたらその値に対して数学での絶対値を書き出せば良いのです。
・プログラミングの流れを書きますと
(1)scanf() 関数などで2つの整数を読み込む
(2)読み込んだ整数の『差』を求める
(3)『差』の絶対値を計算する
(4)絶対値を printf などで書き出す
これだけです。
ここで重要なのはきっと『差』の値が負か、正かを分岐して負なら -1 を掛けるか、
abs() という絶対値を計算してくれる関数を使います。abs() 関数を使うかどうかは
個人の自由です。あるは課題などで使う、使わないの指示通りにして下さい。
・下にサンプルを載せときます。
サンプル:
int main( void )
{
int a, b, sub;
// 2つの整数を読み込む
scanf( "%d", &a );
scanf( "%d", &b );
// 差を求める
sub = a - b;
// 差の絶対値
if ( 条件式 ){
…記述…
}
else{
…記述…
}
// 結果を書き出す
printf( "絶対値=%d\n", sub );
return 0;
}
以上。『条件式』や『…記述…』は埋めてみましょう。
この回答への補足
#include<stdio.h>
int main( void )
{int a, b, sub;
scanf( "%d", &a );
scanf( "%d", &b );
sub = a - b;
if (sub >=0 ){
printf("%d",sub); }
else{printf("%d",-1*sub);}
printf( "絶対値=%d\n", sub );
return 0;}
でエラーがでてしまうのですが、-1*subという書き方はしませんか?
No.5
- 回答日時:
#2です。
プログラムというのは、#1の方のやり方と私が#2で答えたやり方が違うように、考え方によって何通りでもできるものです。(この『考え方』がアルゴリズムです。)
今回、課題などで『整数を2つ読み込み、それらの差の絶対値を書き出すプログラムを作りなさい』と言われたのなら、それは質問でおっしゃっているように数学での絶対値を出力するものを作成すれば良いと思います!
No.4
- 回答日時:
>2 -5 と入力したら7と出て、2 5と入力したら3と出るものですか?
確かに少し曖昧な問題ですが、私的には
2つ整数の差と言っているので計算としては
2 - (-5) = 7
2 - 5 = -3
つまりこれらの絶対値である、7 と 3で良いと思います。
#課題なら出した人にどっちか聞いてみた方が早いかと。
>そうすると、答えが負にならないようにするのですか?
絶対値とは0からどれだけ離れた数値を表すものなので、
符号はつきません。(ここでいう符号とは+-を意味します)
・+1は0から 1 はなれた数値である
・-1は0から 1 はなれた数値である
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB6.0】 あるフォームから他...
-
定数を構造体で・・・
-
【HTML、VBScript】HTAアプリケ...
-
VBA public変数はどのようなこ...
-
エクセルVBAでテキストボッ...
-
VBAでcallで呼び出したsubを終...
-
ClickとChangeイベントの違いは...
-
SavePictureで保存できない
-
ドラゴン曲線を再帰で書く
-
C言語で32Bit*32Bitの演算は出...
-
texで図と表を並べたい
-
他のフォームから別のフォーム...
-
アクセスできない保護レベルエ...
-
String型の値にスラッシュをつ...
-
C#のループでtextboxに値を入れ...
-
Excel VBAでsub,dimは何の略?
-
VB6でForm_Load中にイベントを...
-
[Excel2000]auto_closeを止めさ...
-
vb.net 文字コードから漢字へ変換
-
チェックボックスを操作できな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB6.0】 あるフォームから他...
-
パーソナルXLSBのfuctionを呼び...
-
【HTML、VBScript】HTAアプリケ...
-
定数を構造体で・・・
-
プロシージャまたは関数の引数...
-
VB6の変数宣言について
-
VB6のFriendについて
-
引き渡したループ処理で変数がn...
-
Callで呼び出したプロシージャ...
-
excellvbaで
-
PL/SQLのプロシージャ間でカー...
-
ArrayListに格納したクラス内の...
-
文字列をINTEGER型に変換
-
変数の宣言はすべきでしょうか...
-
VBA subで戻り値指定するか宣言...
-
整数を二つ読み込み、それらの...
-
VB2010からPROCEDUREを実行でエ...
-
【VBScript】変数のスコープ
-
VB初心者の私に教えてください!
-
エクセルVBAでテキストボッ...
おすすめ情報