実現したいこと
sizeof演算子を3つ用いて変数合計バイト数を求めたい
前提
学校の課題なのですが、間違いがある指摘されました。siseof演算子を3つ使えと言われいてるのですが僕は3つ使っていると思います。
課題の内容です
また、お手本も全てintになっています
該当のソースコード
ソースコード //標準入出力用のヘッダファイル #include <stdio.h> //メイン関数 int main (void) { int count_variable1; //count__variable1の個数を表すint型変数 int count_variable2; //count__variable2の個数を表すint型変数 int count_variable3; //count__variable3の個数を表すint型変数 int sum; //合計バイト数を代入するためのsumというint型変数 //変数の個数を入力 printf("それぞれの変数の個数"); //実行したときに (例) 1 1 1 というように入力します scanf("%d %d %d",&count_variable1,&count_variable2,&count_variable3); //合計のバイト数を求めてsumに代入 sum = sizeof(int) * count_variable1 + sizeof(int) * count_variable2 + sizeof(int) * count_variable3; //計算結果を表示 printf("variable1 %d個 、variable2 %d個、variavble3 %d個で、合計%dバイト\n", count_variable1,count_variable2,count_variable3,sum); //正常終了 return 0; }
試したこと
sizeof演算子が使われている箇所に間違いがあると言われ、考えてみたのですが、何が違うのかわかりませんでした。int変数は4バイトなので,1 1 1と入力すると、合計12バイトと出力されます。また、sizeof演算子は3使われていますよね?
3 種類の変数はすべて int 型ですか?
はいそうです
> 学校の課題を解決したい
それは「プログラムの問題」ではありません。プログラムについて問題になっていることをタイトルにしましょう。
で、「sizeof演算子を3つ用いて変数合計バイト数を求めたい」では全く意味をなさないので、課題の全文を示してください。何をしようとしているのかが不明ではアドバイスのしようもありません。
> 1 1 1と入力すると、合計12バイトと出力されます
なにを入力したとしても、count__variable1, ~2, ~3変数はそれぞれ1個です。その場合、"count__variable1の個数"とは何の意味をもっているのでしょう?
2 2 2と入力したら24と表示されますね。それは題意に沿っているのでしょうか。
余談。
> int変数は4バイト
今どきのメジャーな環境ではそうであることが多いですが、C言語一般としてsizeof(int)が4であるという決まりはありません。
題意を読み間違えているのではないでしょうか。。。
そのようなはずは無いと思うのですが,,,
問題文には「char型、int型、short型の個数は〜」と書かれていますが、解答には char型とshort型に対する処理が見当たりません。
問題文の入力メッセージに「char型・short型・int型の個数は?」とあります。
なぜ、intにそろえて構わないと判断されたのでしょうか?
1 1 1 と入力したら合計 7 と表示されなければならないのにそうならないのですから、sizeof を三つ使っただけでは課題としては合格していないでしょう。
sizeof 単体の書き方も課題に対しての使う場所も間違ってはいませんが、課題が求めていることを書けていません。
お手本を見て頂ければ分かると思いますが、全てintになっています
>また、お手本も全てintになっています
それは個数を入れる変数であって、sizeof で調べる対象ではありません。
課題中に3つの例が示されているのですから、それと「全く同じ動作」をするプログラムを作りましょう。
例と全く同じ動作をするのに間違いと言われた、ということなら文句を言ってもいいですけれど、
「こういうものを作れ」と言われたものが出来ていないうちに文句をいうものではありません。
決して、「siseof演算子を3つ使え」ばなんでもいいという話ではないはずです。

回答2件
あなたの回答
tips
プレビュー