初めてこの掲示板を使わせていただきますm(_ _)m
早速ですがわからない問題があります。お知恵を貸していただきたいです。
問題文
「ある青果店では りんご 1個80円, みかん 1個50円, もも1個120円で販売している。
以下の実行結果のように, りんご, みかん, ももの個数をそれぞれ整数で入力すると, 果物の合計の個数と代金を表示するプログラムを完成させなさい. 」
ただし,
- 変数宣言を書き換えたり, 追加してはならない (使用して良い変数は x と price のみ)
- 消費税は考慮しない
- 果物の個数の合計は100個未満と仮定して良い
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
実行結果
りんご> 3
みかん> 4
もも> 5
合計 12点のお買い上げで, 1040円です
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
という問題です。
一応自分なりに考えましたが、果物の合計の部分がどうしてもわかりません。
下のが私が作ったものです。どなたか教えてください。
式と演算子の問題です
Re: 式と演算子の問題です
普通に果物の個数を合計すればいいと思います。
「変数宣言を追加してはならない」という条件があったのですね。考え直します。
「変数宣言を追加してはならない」という条件があったのですね。考え直します。
#include <stdio.h>
int main(void)
{
int x, number = 0, price = 0;
printf("りんご> ");
scanf("%d",&x);
number=number+x;
price=price+x*80;
printf("みかん> ");
scanf("%d",&x);
number=number+x;
price=price+x*50;
printf("もも> ");
scanf("%d",&x);
number=number+x;
price=price+x*120;
printf("合計 %d点のお買い上げで, %d円 です\n",number,price);
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 式と演算子の問題です
「果物の個数の合計は100個未満」という条件があり、果物の個数は負にはならないはずなので、
果物の個数は7ビット(0~127)で表すことができます。
したがって、C言語のint型は少なくとも-32767~32767の整数を格納することができるので、
変数priceの下位1バイト(8ビット)に1個の果物の個数を、
その次の1バイトにもう1個の果物の個数を格納することができます。
3個目の果物の個数は、xに読み込んでそのまま使えばいいでしょう。
また、int型に十分大きな数を格納できる環境(例えば、典型的なint型が4バイトの環境)では、
priceの下位1バイトに個数の合計を、残りのバイトに値段の合計を格納することもできます。
果物の個数は7ビット(0~127)で表すことができます。
したがって、C言語のint型は少なくとも-32767~32767の整数を格納することができるので、
変数priceの下位1バイト(8ビット)に1個の果物の個数を、
その次の1バイトにもう1個の果物の個数を格納することができます。
3個目の果物の個数は、xに読み込んでそのまま使えばいいでしょう。
#include <stdio.h>
int main(void)
{
int x, price = 0;
printf("りんご> ");
scanf("%d",&x);
price=x;
printf("みかん> ");
scanf("%d",&x);
price=price+x*256;
printf("もも> ");
scanf("%d",&x);
printf("合計 %d点のお買い上げで, %d円 です\n",
(price%256)+(price/256)+x,
80*(price%256)+50*(price/256)+120*x);
return 0;
}
priceの下位1バイトに個数の合計を、残りのバイトに値段の合計を格納することもできます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 式と演算子の問題です
続けての質問なのですが、次の問題も自分にはよく分かりません(汗
どなたかお知恵を貸していただきたいです。自分のc言語の技術は初心者レベルです。
(すいません。自分のレベルが表現しづらいです…。問題はスレの題名の内容です)
問題
以下の実行結果のように, 正の整数を入力すると, 入力した整数の一の位, 十の位, 百の位の数をそれぞれ順に表示するプログラムを作成しなさい.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
実行結果
正の整数を入力> 98765
一の位は 5
十の位は 6
百の位は 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全然わかりません…。
どなたかお知恵を貸していただきたいです。自分のc言語の技術は初心者レベルです。
(すいません。自分のレベルが表現しづらいです…。問題はスレの題名の内容です)
問題
以下の実行結果のように, 正の整数を入力すると, 入力した整数の一の位, 十の位, 百の位の数をそれぞれ順に表示するプログラムを作成しなさい.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
実行結果
正の整数を入力> 98765
一の位は 5
十の位は 6
百の位は 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全然わかりません…。
Re: 式と演算子の問題です
続けての質問なのですが、次の問題も自分にはよく分かりません(汗
どなたかお知恵を貸していただきたいです。自分のc言語の技術は初心者レベルです。
(すいません。自分のレベルが表現しづらいです…。問題はスレの題名の内容です)
問題
以下の実行結果のように, 正の整数を入力すると, 入力した整数の一の位, 十の位, 百の位の数をそれぞれ順に表示するプログラムを作成しなさい.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
実行結果
正の整数を入力> 98765
一の位は 5
十の位は 6
百の位は 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全然わかりません…。
どなたかお知恵を貸していただきたいです。自分のc言語の技術は初心者レベルです。
(すいません。自分のレベルが表現しづらいです…。問題はスレの題名の内容です)
問題
以下の実行結果のように, 正の整数を入力すると, 入力した整数の一の位, 十の位, 百の位の数をそれぞれ順に表示するプログラムを作成しなさい.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
実行結果
正の整数を入力> 98765
一の位は 5
十の位は 6
百の位は 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全然わかりません…。
Re: 式と演算子の問題です
一の位は
x%10で求められます
98765%10=5
int型の割り算は、小数点以下が切り捨てなので
十の位は
(x/10)%10で求められます
98765/10=9876
9876%10=6
同様に百の位は
(x/100)%10で求められます
これをprintfのところに入れればいいと思います
x%10で求められます
98765%10=5
int型の割り算は、小数点以下が切り捨てなので
十の位は
(x/10)%10で求められます
98765/10=9876
9876%10=6
同様に百の位は
(x/100)%10で求められます
これをprintfのところに入れればいいと思います
とても暇で忙しい
Re: 式と演算子の問題です
質問の内容が違うものになったら、新しくトピックを立てる方がよいと思います。
一、十、百が漢字でないのは、当方の開発環境のせいだと思ってください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 式と演算子の問題です
butterさんboxさんありがとうございます!
いろいろなやり方があるのですね…。
また新しい質問がありましたら新しくトピックを作ろうと思います!
いろいろなやり方があるのですね…。
また新しい質問がありましたら新しくトピックを作ろうと思います!