演算プログラムでの記述方法に関して

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

演算プログラムでの記述方法に関して

#1

投稿記事 by kerotan0820 » 15年前

今ニコニコ動画の(nm6237525)にて演算をやっていたのですが、そこで以下のような問題が出ました。

●問題練習2
30-10
30×10
30÷10
を計算するプログラムを作成せよ。
ファイル名はcalc.cとし、引き算の結果をsub,掛け算の結果をmulti,割り算の結果をdivという名前の変数に記憶し、画面の表示に利用せよ。


これの回答はこうでした。
/* calc.c */
#include<stdio.h>
int main(void){
	int sub;
	int multi;
	int div;
	sub=30-10;
	multi=30*10;
	div=30/10;
	printf("引き算:%d\n" ,sub);
	printf("掛け算:%d\n" ,multi);
	printf("割り算:%d\n" ,div);
	return 0;
}

それに対して僕が組んだプログラムはこうでした
/* calc.c*/
#include<stdio.h>
int main(void){
	int a=30;
	int b=10;
	int sub;
	int multi;
	int div;

        sub=a-b;
	multi=a*b;
	div=a%b;

	printf("引き算=%d\n" ,sub);
	printf("掛け算=%d\n" ,multi);
	printf("割り算=%d\n" ,div);
	return 0;
}

僕の場合30と10をaとbに代入して後の計算を楽にしようと思って
最初に
int a=30;
int b=10;
と記述したのですが、正直どちらが正しいのでしょうか。 僕は自分のやり方が正しく思えるのですが…


これはどちらが正しいのですか? 正しくないのがないとして、どちらの方法で今後やるべきでしょうか。

Ma

Re:演算プログラムでの記述方法に関して

#2

投稿記事 by Ma » 15年前

私個人の意見としては、解答としてはどちらも正しいと思います。

ただ、1、2回しか使わない定数だった場合は、int 型を宣言することで余分なメモリを確保してしまうから、
直接コードに書き込む方法が好ましいと思います。
ただし、複雑なコードになってくると書き間違いや読みにくさが発生するので、#define を使うとより好ましいかと。


私なら、int 型として宣言するのは、それが変数であることが前提です。
定数の場合は、あまり変数型としては宣言しません。
結局は読みやすさとメモリの使用量いうことになるのかな。

kerotan0820

Re:演算プログラムでの記述方法に関して

#3

投稿記事 by kerotan0820 » 15年前

■Ma様
#defineとは何でしょうか?初めて目にしたのですが;
あとメモリを確保とかそういうのがわからないのですが…;

読みやすさに関してはわかりました^^ありがとうございます。

Ma

Re:演算プログラムでの記述方法に関して

#4

投稿記事 by Ma » 15年前

できるだけ、ぐぐって調べるくせをつけるようにしましょう。
プログラミングでは、聞くことではなく調べることで成長します。
/* calc.c*/
#define A 30
#define B 10

#include<stdio.h>
int main(void){
	int sub;
	int multi;
	int div;

	sub=A-B;
	multi=A*B;
	div=A%B;

	printf("引き算=%d\n" ,sub);
	printf("掛け算=%d\n" ,multi);
	printf("割り算=%d\n" ,div);
	return 0;
}
#define は、定数を利用するときに使います。
コンパイルするときに(プリコンパイラによって)、自動的にソースコードにはりつけられるため、生成されるファイルにおいては実際に数字を書き込むのとまったく同等のことになります。


メモリに関してあまり詳しいわけではありませんが、
int を宣言するということは、そのデータを保存するための要領(メモリ)をPCのどこか(たぶんRAMかな?)に作るということになりますが、
コードにそのまま書き込めば、これを別途領域を確保する事はありません。
つまり、効率的である、ということです。

初級者

Re:演算プログラムでの記述方法に関して

#5

投稿記事 by 初級者 » 15年前

わり算のところで
% 剰余演算子を使っているのは
大いにまずいです。

Ma

Re:演算プログラムでの記述方法に関して

#6

投稿記事 by Ma » 15年前

>初級者 さん
お、本当ですね。スルーしちゃいました。

割り算は、 % ではなく / でした。
(コピーペースト恐ろしい…)

kerotan0820

Re:演算プログラムでの記述方法に関して

#7

投稿記事 by kerotan0820 » 15年前

■Ma様
すみません。ちょっとしたことは今後ググります。
解説ありがとうございます。理解できました

閉鎖

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