• ベストアンサー

プログラミングについての質問です

「xパーセントの砂糖水yグラムに砂糖zグラムを加えると,wパーセントの砂糖水になる」のプログラミングを制作する.xとyとzをキーボードから入力し,wをわかりやすく表示する.ただし,x,y,z,wとも小数第二 位まで扱うこと.という問題のフローチャートとソースコードを教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

#include <stdio.h> int main() { double w, x, y, z; scanf("%lf %lf %lf", &x, &y, &z); w = (y * (x / 100) + z) / (y + z); printf("%.2lf", (double)(int)(w * 100) / 100); return 0; }

その他の回答 (1)

回答No.1

丸投げはダメヨ。 ヒント 宿題だったら 「溶解度は温度によって変化するから温度に関するパラメタが無いので回答不能」 って書くこと。

関連するQ&A

  • プログラミングについての質問です

    時速xキロメートルの速さを小数第2位までキーボードから入力し,秒速メートルで小数第2位までわかりやすく表示する.という問題のフローチャートとソースコードを教えて下さい.

  • プログラミングについての質問です

    秒単位の時間(30,000秒以内)を整数でキーボードから入力し,時間,分,秒の単位で画面に表示する. という問題のフローチャートとソースコードを教えて下さい。

  • 対称式の証明が出来ずに困っています。

    数学の問題が解けずに困っています!どなたか、お力をお貸しください。 問題は、以下のような問題です。 四つの正の数 x,y,z,w が与えられています。 それらは、x+y+z+w=1 を満たしています。このとき {x^2/(x+y)}+{y^2/(y+z)}+{z^2/(z+w)}+{w^2/(w+x)} >= 1/2 を、示しなさい。 私は、以下のようにアプローチしました。ご参照ください。 まず、x >= y >= z >= w ・・・(1) と仮定する。 x+y+z+w=1 を 2 でわって (x/2)+(y/2)+(z/2)+(w/2) = 1/2 とする。 次に、左辺の各項のそれぞれの文字を分子、分母に掛ける (x^2/2x)+(y^2/2y)+(z^2/2z)+(w^2/2w) = 1/2 ・・・(2) ここで、(1)から 2x >= x+y ・・・(3) 逆数を取って (1/2x) <= 1/(x+y) 両辺に x^2 を掛けて x^2/2x <= x^2/(x+y) これを、(2)の各項で繰り返して 1/2 = (x^2/2x)+(y^2/2y)+(z^2/2z)+(w^2/2w) >= {x^2/(x+y)}+{y^2/(y+z)}+{z^2/(z+w)}+{w^2/(w+x)} としたかったのですが… wについて、(3)をしようと思っても 2w >= w+x が成り立たず、証明が不十分になってしまいます。 この証明方法でうまくいく方法は、無いでしょうか?最後の詰めだけうまくいけば、スマートな方法だと思うのですが…。 それとも、他に良い手がある場合には、ご教授願えればと思います。 皆様のお知恵をお貸しください。よろしくお願いいたします。

  • 実線形空間の部分空間について

    通常の実数系空間R^4={(x,y,z,w)|x,y,z,w∈R}の 部分空間をなすかどうかを、いかについて判別せよ。 部分空間を成さないものについてはその根拠を例で示せ。 (1) {(x,y,z,w)∈R^4|x+y+z+w=0} (2) {(x,y,z,w)∈R^4|x+2y+3z+4w=0} (3) {(x,y,z,w)∈R^4|x=0} (4) {(x,y,z,w)∈R^4|x=2y=3z=4w=0} (5) {(x,y,z,w)∈R^4|x^2+y^2+z^2+w^2=1} (6) {(x,y,z,w)∈R^4|x+y+z+w≧0} ↑部分空間かどうかを判別する方法、またその根拠を 「例」であげる、ということの意味がよくわかりません。 どなたか教えて頂けないでしょうか?よろしくお願いします。

  • 配列を用いたC言語プログラミングについて

    以下のルンゲクッタ法を用いたプログラムに配列などを使いさらに短くしたいのですが どのような方法が有りますか? #include <stdio.h> #include <math.h> double f1(double t1,double w,double x,double y,double z); double f2(double t1,double w,double x,double y,double z); double f3(double t1,double w,double x,double y,double z); double f4(double t1,double w,double x,double y,double z); //箱Aの関数 double g1(double t1,double a,double b,double c,double d); double g2(double t1,double a,double b,double c,double d); double g3(double t1,double a,double b,double c,double d); double g4(double t1,double a,double b,double c,double d); //箱Bの関数 int main(void) { double t1,w,x,y,z,a,b,c,d,dt,t1max,t2max,lam,gam,lat,dw,dx,dy,dz,da,db,dc,dd ; double k1[4],k2[4],k3[4],k4[4],l1[4],l2[4],l3[4],l4[4] ; ///宣言 t1 = 0.0; dt = 0.3; t1max = 40.0; //時間初期値 w = 200.0; x = 40.0; y = 30.0; z = 30.0; ///箱A初期値(w:感受性人口、x:潜伏人口、y:感染人口、z:隔離人口) a = 20.0; b = 8.0; c = 12.0; d = 10.0; ///箱B初期値(a:感受性人口、b:潜伏人口、c:感染人口,d:隔離人口) for(t1=0.0;t1<=t1max;t1+=dt) { k1[0]=dt*f1(t1,w,x,y,z); k1[1]=dt*f2(t1,w,x,y,z); k1[2]=dt*f3(t1,w,x,y,z); k1[3]=dt*f4(t1,w,x,y,z); k2[0]=dt*f1(t1+dt/2.0,w+k1[0]/2.0,x+k1[1]/2.0,y+k1[2]/2.0,z+k1[3]/2.0); k2[1]=dt*f2(t1+dt/2.0,w+k1[0]/2.0,x+k1[1]/2.0,y+k1[2]/2.0,z+k1[3]/2.0); k2[2]=dt*f3(t1+dt/2.0,w+k1[0]/2.0,x+k1[1]/2.0,y+k1[2]/2.0,z+k1[3]/2.0); k2[3]=dt*f4(t1+dt/2.0,w+k1[0]/2.0,x+k1[1]/2.0,y+k1[2]/2.0,z+k1[3]/2.0); k3[0]=dt*f1(t1+dt/2.0,w+k2[0]/2.0,x+k2[1]/2.0,y+k2[2]/2.0,z+k2[3]/2.0); k3[1]=dt*f2(t1+dt/2.0,w+k2[0]/2.0,x+k2[1]/2.0,y+k2[2]/2.0,z+k2[3]/2.0); k3[2]=dt*f3(t1+dt/2.0,w+k2[0]/2.0,x+k2[1]/2.0,y+k2[2]/2.0,z+k2[3]/2.0); k3[3]=dt*f4(t1+dt/2.0,w+k2[0]/2.0,x+k2[1]/2.0,y+k2[2]/2.0,z+k2[3]/2.0); k4[0]=dt*f1(t1+dt,w+k3[0],x+k3[1],y+k3[2],z+k3[3]); k4[1]=dt*f2(t1+dt,w+k3[0],x+k3[1],y+k3[2],z+k3[3]); k4[2]=dt*f3(t1+dt,w+k3[0],x+k3[1],y+k3[2],z+k3[3]); k4[3]=dt*f4(t1+dt,w+k3[0],x+k3[1],y+k3[2],z+k3[3]); ///箱Aルンゲクッタ l1[0]=dt*g1(t1,a,b,c,d); l1[1]=dt*g2(t1,a,b,c,d); l1[2]=dt*g3(t1,a,b,c,d); l1[3]=dt*g4(t1,a,b,c,d); l2[0]=dt*g1(t1+dt/2.0,a+l1[0]/2.0,b+l1[1]/2.0,c+l1[2]/2.0,d+l1[3]/2.0); l2[1]=dt*g2(t1+dt/2.0,a+l1[0]/2.0,b+l1[1]/2.0,c+l1[2]/2.0,d+l1[3]/2.0); l2[2]=dt*g3(t1+dt/2.0,a+l1[0]/2.0,b+l1[1]/2.0,c+l1[2]/2.0,d+l1[3]/2.0); l2[3]=dt*g4(t1+dt/2.0,a+l1[0]/2.0,b+l1[1]/2.0,c+l1[2]/2.0,d+l1[3]/2.0); l3[0]=dt*g1(t1+dt/2.0,a+l2[0]/2.0,b+l2[1]/2.0,c+l2[2]/2.0,d+l2[3]/2.0); l3[1]=dt*g2(t1+dt/2.0,a+l2[0]/2.0,b+l2[1]/2.0,c+l2[2]/2.0,d+l2[3]/2.0); l3[2]=dt*g3(t1+dt/2.0,a+l2[0]/2.0,b+l2[1]/2.0,c+l2[2]/2.0,d+l2[3]/2.0); l3[3]=dt*g4(t1+dt/2.0,a+l2[0]/2.0,b+l2[1]/2.0,c+l2[2]/2.0,d+l2[3]/2.0); l4[0]=dt*g1(t1+dt,a+l3[0],b+l3[1],c+l3[2],d+l3[3]); l4[1]=dt*g2(t1+dt,a+l3[0],b+l3[1],c+l3[2],d+l3[3]); l4[2]=dt*g3(t1+dt,a+l3[0],b+l3[1],c+l3[2],d+l3[3]); l4[3]=dt*g4(t1+dt,a+l3[0],b+l3[1],c+l3[2],d+l3[3]); ///箱Bルンゲクッタ w=w+((k1[0]+2.0*k2[0]+2.0*k3[0]+k4[0])/6.0); x=x+((k1[1]+2.0*k2[1]+2.0*k3[1]+k4[1])/6.0); y=y+((k1[2]+2.0*k2[2]+2.0*k3[2]+k4[2])/6.0); z=z+((k1[3]+2.0*k2[3]+2.0*k3[3]+k4[3])/6.0); a=a+((l1[0]+2.0*l2[0]+2.0*l3[0]+l4[0])/6.0); b=b+((l1[1]+2.0*l2[1]+2.0*l3[1]+l4[1])/6.0); c=c+((l1[2]+2.0*l2[2]+2.0*l3[2]+l4[2])/6.0); d=d+((l1[3]+2.0*l2[3]+2.0*l3[3]+l4[3])/6.0); } return 0; }

  • 行列式の問題です

    4x+y+z+w=1 x-y+2z-3w=0 2x+y+3z+5w=0 x+y-z-w=1 解き方はわかるのですが、答えが合いません。 途中式をおねがいします。

  • このガウスの消去法を解いてください!

    2つあるのですがとけません x+2y+3z+4w=0 2x+y+3z-w=1 3x-2y+4z+3w=5 8x+2y+13z+5w=7 また -3x-3z+6w=-2 -x+y+5w=-1 5x+7z=44/9 です。 よろしくお願いします。

  • 連立微分方程式

    x=x(t), y=y(t)をtの関数として、次の連立微分方程式を考える。    dx/dt=2x+y dy/dt=x+2y (1)z=x+y, w=x-yとおいて、z,wについての微分方程式に書き換えなさい。 z+w=2x, z-w=2yつまり、x=(z+w)/2, y=(z-w)/2 これを、x,yにするだけでよいのでしょうか?

  • プログラミングについて質問です。

    プログラミングについて質問です。 ゲームのプログラミングの一部を作っているところで たとえば H13 D5 C2 D6 H1 S12 と表示されているとき、D6とキーボードで入力すると、その文字だけ消えて、 H13 D5 C2 H1 S12 と表示しなおされる(全ての文字が消えるまで繰り返す)、というプログラミングを書きたいと思っています。 しかしどうやったらいいのかわからないので、教えていただけたら嬉しいです。 使っているのはC++言語です。 授業でハングマンのゲームをやったときに キーボード入力された文字が、配列の文字と一致するか調べる、というものをやったので それが応用できるかなと思うのですが… そのハングマンのプログラミングは #include <iostream> #include <string.h> using namespace std; void tryAndSee() { char x[100], y[100], c; strcpy(x, "hippopotamus"); strcpy(y, "____________"); cout << "character?"; cin >> c; for(int i=0;i<100;i++){ if(x[i]=='\0'){ break; } else if(x[i]==c){ y[i]=c; } } cout << y << "\n"; } main() { tryAndSee(); } です。 ほんとに初心者なので、解説付きで教えていただけると嬉しいです。 よろしくお願いします。

  • 線形代数 二次形式 符号

    (1)次の2次形式の符号を求めよ。 f(x,y,z,w) = x^2+4y^2+4z^2-w^2+2xy-2xz+2xw+6yz+4yw という問題で、 f(x,y,z,w) = x^2+4y^2+4z^2-w^2+2xy-2xz+2xw+6yz+4yw       =(x+y-z+w)^2-(y-z+w)^2++4y^2+4z^2-w^2+6yz+4yw =(x+y-z+w)^2+3y^2+3z^2-2w^2+8yz+2wy+2zw というところまでは求まったのですがその先はyについて行うというのは分かっているのですがその先が行き詰まってしまっています。 途中経過も含めて解答していただけると幸いです。