• ベストアンサー

while for/ if else/do while文を使い”640968592”の各数字を独立させて取り出すことは可能でしょうか?

忙しい中失礼します。 今以下のようなプログラミングを組もうとしています。 1.”640968592”といった9桁の数字を入力→scanfで入力(これは出来ます) 2.各桁の数字を独立させて取り出す:”6” ”4” ”0” ”9” ”6”・・・といった具合に(これも一応出来ます) 3.偶数桁は2倍する   2桁目:4x2=8   4桁目:9x2=18   6桁目:8x2=16   8桁目:9x2=18 そして、私の場合、以下のようなプログラムになるのですが、これがなんとも不細工な感じがし、スマートにプログラムを変更したいと思っています。 抱えている問題:while for/ if else/do while文などを用いて、下記のプログラムを書き直すことは可能なのでしょうか?例え出来たとしても、文int=num1~num35までの定義も減らすことは可能なのでしょうか? 手も足も出ない・・・ プログラム内容 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num1,num2,num3,num4; /*8 9桁目*/ int num5,num6; /*7桁目*/ ・ ・ ・ int num15,num16; /*2桁目*/ int num17; /*1桁目*/ int num19,num20,num21,num22,num23,num24,num25; int num26,num27,num28,num29,num30,num31,num32; int num33,num34,num35; printf("Write the SIN: "); scanf ("%d", &num1); num2=num1 / pow(10, 8); //9桁目 num3=num1 / pow(10, 7); //8桁目 num4=num3 % 10; num5=num1 / pow(10, 6); //7桁目 num6=num5 % 10; ・ ・ ・ num15=num1/pow(10, 1); //2桁目 num16=num15%10; num17=num1%10; //1桁目 num19=num4*2; //8桁目計算 num20=num19/10; num21=num19%10; num22=num20+num21; ・ ・ ・ num31=num16*2; //2桁目計算 num32=num31/10; num33=num31%10; num34=num32+num33; system("pause"); return 0; } こんなのが直ぐにプログラムとして早く組めるようになりたい・・・ どうしても頭に浮かばないのです。アドバイス等あればお願いします。 <使用環境:フリーソフト(Borland?)C ANSI C>

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

プログラム的にはほぼ合っていますが、ループ化するには向きません。 間違いは、ケタが1ketame~3ketameと書いてあるが逆。 ループ化する布石として、 ・なるべく数値を直接使わないで変数から求めるようにする。 1ketameとかは、%dketameで変数からケタを表示する。 /100なら、/ pow(10,変数)で計算する。 両方とも、変数ketaから求められますよね。 keta=3;を初期値として、keta--;で減算しながら書いてみてください。 ketanumも3つでは無く1つの変数で処理します。毎ケタ毎残す必要が無ければ同じ変数を使って良いんです。 できあがったプログラムを見てください。同じような処理の繰り返しでループ化できそうになりませんでしたか?

jpncndgoo2
質問者

補足

度々失礼します。 ANo.5に補足回答を付け加えました。

その他の回答 (5)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.6

powはfloat型ですからね。本当はintにcastしてやらないとだめです。 ketanum = (int)pow(10,keta); と書くのが正しいです。 で、プログラムですが、 ketanum = (int)pow(10,keta-1); q = (num/ketanum)%10; でpが不要になります。

jpncndgoo2
質問者

お礼

成る程、成る程最後まで的確なアドバイスありがとうございます。 貴重な時間を削っての書き込み等色々と本当にありがとうございました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.5

補足。 >間違いは、ケタが1ketame~3ketameと書いてあるが逆。 間違いは言いすぎでしたね。上位1ケタ目と書けば正解です。 私は、下位から数えて何桁目か表示する方がプログラム的に都合が良いので、そう表現してほしかったんです。 あるいは、100の位と表示したほうが分かりやすいかも知れません。

jpncndgoo2
質問者

補足

忙しい中のアドバイスありがとうございます。 ”間違いは言いすぎでしたね。”→気にはしないで下さい。それよりも何よりも非常に助かるアドバイスありがとうございました。 多分解決した!と思います。 プログラミングは以下です。 ”968”と入力すると 3ketame 9 2ketame 6 1ketame 8 と表示されるようになりました。 ※ketanumだけで”ketanum = (num / (pow(10,keta)/10))%10;”という式1を立てましたが、 ”invalid operands `double' and `int' to binary `operator %” というエラーが必ず出るので(%を式1に入れるのがいけないようなのですが、抜くわけにもいかず・・・)、変数’p’’q’を追加して、式1をばらすことによって、期待していた値(3ketame 9等)を求めることにしました。 そういう意味では期待に沿えず申し訳ありませんでした。 9桁→3桁に下げる=難易度を下げる、成る程名刀な考えですね。 zwiさんの記述を通して、少しプログラムの知識を成長させることが出来た、と思います。 本当に適切なアドバイスありがとうございました! #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num,p,q; int keta=3; int ketanum; printf("Enter 3 number; "); scanf("%d", &num); for(keta ; keta >=1 ; keta--) { ketanum = pow(10,keta); p = ketanum /10; q = (num/p)%10; printf("%dketame %d\n",keta,q); } system("pause"); return 0; }

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

混乱しているようですので、プログラムの難度を下げてから考えて見ましょう。まず3桁の処理に減らします。 それと変数が多すぎますので、次の変数だけに減らしてください。 int keta; //今処理中の桁を示す。3から1にカウントダウン処理。 int num; //3桁の値が入る。 int ketanum; //求めた各桁の値が入る。2倍するのもこの変数で。直ちにprintfで出力してこの変数は次の桁にも使いまわす。 これを今の書き方で書いてみてください。変数は増やしてはいけません。 それをループにする方法をこれが出来たら教えます。

jpncndgoo2
質問者

補足

忙しい中の指導ありがとうございます。 1.”int keta; //今処理中の桁を示す。3’桁’から1’桁’にカウントダウン処理。”と解釈させてもらいました。 とはいえこの変数を以下のプログラムでは使いませんでした・・・。 2.”これを今の書き方で書いてみてください。”は私の書いた上記のプログラムを真似る、と解釈し、自分なりに少しスマートにして記入しました。そして、numには”968”という数値を記入してみました。 プログラミングは以下です。多分方向性は間違っているのだろうなぁ・・・と思いつつもこれ以上の考えが出ませんでした。申し訳ありません。 ご指導お願いします。 #include <stdio.h> #include <stdlib.h> int main() { int num; int keta; int ketanum1,ketanum2,ketanum3; printf("Enter 3 number; "); scanf("%d", &num); ketanum1 = (num / 100) % 10; printf("1ketame %d\n", ketanum1); ketanum2 = (num / 10) % 10; printf("2ketame %d\n", ketanum2); ketanum3 = num %10 ; printf("3ketame %d\n", ketanum3); system("pause"); return 0; }

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

結果を出力してる部分がないからプログラム見てもどんな結果が欲しいのかよく分からない。 (もっともプログラムのほうはあまり読んでないけど。) なので >  2桁目:4x2=8 >  4桁目:9x2=18 >  6桁目:8x2=16 >  8桁目:9x2=18 こんな感じの結果が欲しいのだと解釈してコードを書いてみました。 ※インデントに全角空白を使っているのでコピーして使う場合は削除してください。 > while for/ if else/do while文などを用いて、下記のプログラムを書き直すことは可能なのでしょうか? せめて桁の分解は配列とループ使ってこんな感じで書くべきじゃない?  for(i=0;i<9;i++){    figure[i] = num%10; /*i+1桁目の数値*/    num = num/10;  } あと、変数が多いだけならともかく、命名規則が無くてただの連番だから分かりにくい。 > int num1,num2,num3,num4; /*8 9桁目*/ こんなコメント書くくらいなら変数名見ただけで何桁目か分かるようにするべき。 自分で書いてて分かりにくいとか思わなかった? あと、変数が多くなりそうなら配列使えないか考えようよ。 配列使った方が添え字が使えてループにしやすいし。 ----source---- #include <stdio.h> #include <string.h> /* for strlen */ #include <ctype.h> /* for isdigit */ int main(){  char buf[256]; /*文字列バッファ*/  int i,len;  int num;  printf("Input Number: ");  scanf ("%s", buf);  len = strlen(buf);  for(i=1;i<=len;i++){   printf("%d桁目: ", i);   if(!isdigit(buf[len-i])){    printf("not digit\n");    continue;   }   num = buf[len-i] - '0'; /* 数字を数値に変換 */   if(i%2 == 0){ /*偶数桁*/    printf("%d x 2 = %d\n",num,num*2);   }   else{ /*奇数桁*/    printf("%d x 1 = %d\n",num,num);   }  }  return 0; } ----実行結果---- Input Number: 1234567890 1桁目: 0 x 1 = 0 2桁目: 9 x 2 = 18 3桁目: 8 x 1 = 8 4桁目: 7 x 2 = 14 5桁目: 6 x 1 = 6 6桁目: 5 x 2 = 10 7桁目: 4 x 1 = 4 8桁目: 3 x 2 = 6 9桁目: 2 x 1 = 2 10桁目: 1 x 2 = 2

jpncndgoo2
質問者

お礼

忙しい中の回答ありがとうございます。 こんなに直ぐ回答が出せるWernerさんが羨ましくてなりません。 たかがこんなこと、と思われるかもしれませんが、私にとってはかなりのことなのです。本当にありがとうございました。 ”結果を出力してる部分がないからプログラム見てもどんな結果が欲しいのかよく分からない。”そうですね。その通りです。 ぐぅの音も出ません。次回からは気をつけたいと思います。 ・・・これは余談ですが、私の求めたい出力結果は以下なのです。 1.”640968592”といった9桁の数字を入力 2.偶数桁を2倍にして表示”680186165182” 3.偶数桁の数値を18=1+8⇒9, 6⇒6, 16=1+6⇒7 4.”680967592”という出力結果を得る。 1と2が組むことが出来れば、3と4はどうにかなるかな、と思っています。 お粗末さまでした。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

入力用1個、桁分解用4個、組み上げように8個あれば事足りそうです // 入力用 int num; // 桁分解用 int bunkai1,bunkai3,bunkai5; int bunkai7,bunkai9; // 組み上げ用 int kumiage20, kumiage21, kumiage40, kumiage41; int kumiage60, kumiage61, kumiage80, kumiage81; // 変更しない桁の抽出 bunkai1 = num % 10; bunkai3 = ( num / 100 ) % 10; bunkai5 = ( num / 10000 ) % 10; bunkai7 = ( num / 1000000 ) % 10; bunkai9 = ( num / 100000000 ) % 10; // 変更する桁の抽出 kumiage20 = ( num / 10 ) % 10; kumiage40 = ( num / 1000 ) % 10; kumiage60 = ( num / 100000 ) % 10; kumiage80 = ( num / 10000000 ) % 10; // 2桁目 kumiage20 *= 2; kumiage21 = kumiage20 / 10; kumiage20 %= 10; // 4桁目 kumiage40 *= 2; kumiage41 = kumiage40 / 10; kumiage40 %= 10; // 6桁目 kumiage60 *= 2; kumiage61 = kumiage60 / 10; kumiage60 %= 10; // 8桁目 kumiage80 *= 2; kumiage81 = kumiage80 / 10; kumiage80 %= 10; といった具合にして bunkai9 kumiage81 kumiage80 bunkai7 kumiage61 kumiage60 bunkai5 kumiage41 kumiage40 bunkai3 kumiage21 kumiage20 bunkai1 の順に出力すればいいかと この際 kumiageX1が0かどうか確認して桁を増やすかどうか決めましょう 配列を使って組んだほうがすっきりしますよ

jpncndgoo2
質問者

お礼

忙しい中にもかかわらずの回答ありがとうございました。 ( num / 100 ) % 10・・・そうですよね。そうすれば変数の省略も可能ですよね。 また、”bunkai9・・・bunkai1の順に出力すればいいかと”のところですが、私の分かりにくい説明文ではなく、プログラミングを細かく見て頂いたことがしれます。 アドバイスありがとうございました。

関連するQ&A

  • for文

    整数を読み込んで、その値を0までカウントダウンしながら表示するプログラム作りたいのですが、 while文ではできたのですが、for文ではうまくいきません。 どこが間違っているのでしょうか? OS:Windows XP C++Builder X パーソナル #include <stdio.h> int main(void) { int i; int num; printf("整数を入力してください:"); scanf("%d", &num); for(i = num; i <= 0; --i) { printf("%d", i); } return 0; } 宜しくお願いします。

  • do while 文の使い方

    #include<stdio.h> main() { int i; do{ scanf("%d",&i); }while(i%6==1,2,3,4,5); } だと6の倍数打っても終わらないのですが、 include<stdio.h> main() { int i; do{ scanf("%d",&i); }while(i%6!=0); } } だと6の倍数を入力すれば終了します。 やはり、「1,2,3,4,5」という表現ではだめなのでしょうか? 

  • while文の作成について

    キーボードに整数を打ち込み、0を打ち込むと終了し、その合計を出すプログラムを以下のように作りました。 #include<stadio.h> int main(void){ int num=0 int sum=0 printf("整数を入力"\n"); do{ scanf("%d",&num); sum +=num; }while(num); printf("合計は%dです。\n",sum); returen 0; } 次に負の値が入力されるまで整数を読み込み続け、その合計をを求めるプログラムを作りたいのですが、whileのところを }while(num>=0); としてみたのですが、うまくいきません。また分かり易くするため、入力した整数の個数も表示できるようにしたいです。どうすればよいでしょうか。詳しい方、教えてください。

  • ???ダメなんです(分からないんです)。 for文内の結果を呼び出す感じのプログラム文???

    いつもいつも大変忙しい中失礼します。http://oshiete1.goo.ne.jp/qa3432182.htmlでも質問しましたが、現在そのプログラムをさらに発展させて、下記のようなプログラム文を組もうとしています。<私のプログラム文>から ”123” と入力した場合、偶数桁のみを2倍した後、 ”答え 4” の値を返そうとしていますが、相も変わらず出来ません・・・。どなたか分かる方がいらっしゃいましたらアドバイス等願います。・・・本当にいつもいつも迷惑かけます。 出力結果 数字3桁入力:”123”と入力  (余談:最終的には数字を5桁まで増やします。”12345”→”14385”と出力するつもりです。) ---計算過程---偶数桁”2”を2倍する 答え 4 ←これを導き出すことが出来ません(私の回答: 答え 2147348480 ) といいますか、返したいのですが、出来ないのです。 何故? <参照プログラム文>を真似て、<私のプログラム文>を自分なりに作り、コンパイルは通るのですが、・・・値が期待したものと違い、どこをどういじればいいのかに悩んでいます。 <参照プログラム文>を私なりに解説させていただくと、printf文内の”triple(number)”のnumberはint xを意味しています。int triple(int x)文内のプログラムを返すらしいのです。 <私のプログラム文> #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int valid(int x); int number; int tra; printf("数字3桁入力: "); scanf("%d", &number); printf("答え %d\n", valid(number)); system("PAUSE"); return 0; } int valid(int x) { int i; int inptnum; int tra; for (i=3; i>=1; i--) { if(i%2==0){ inptnum=pow(10,i-1); tra=(x/inptnum)%10; tra=(tra*2)/10+(tra*2)%10; } return tra; } } <参照プログラム文> #include <stdio.h> #include <stdlib.h> int main() { int triple(int x); int number; printf("数字? \n"); scanf("%d", &number); //printf("%d\n", number*3); printf("%d\n", triple(number)); system("PAUSE"); return 0; } int triple(int x) { x *= 3; return x; }

  • 簡単なようで分からない?for文での加算処理方法及び出力表示方法

    忙しい中失礼します。 ・・・???分からないので質問させていただきます。 プログラム過程 1.5桁の数値入力: 68562 2.偶数桁のみ2倍する: 8x2=16 6x2=12 3.68592→6165122という処理を行う。 4.6165182→処理:6 1+6 5 1+2 2→再度5桁表示:67532 (※2桁目と4桁目の数字が1.とは異なります) 5.67532各桁の加算処理を行い(6+7+5+3+2=23)、”23”をディスプレイ上に表示させる。 希望出力結果:    5桁入力 68592 67532 合計 23    ←加算処理方法及び出力表示方法(ここが分からないのです) を望んでいます。 分からないところ:どうやって67532の加算処理を行い、どうやってそれをディスプレイ上に表示させれば良いのかが分かりません???            以下のプログラム[1]、[2]から、[2]を[1]に組み込もうとしています。ですが、[2]for文のカッコ内()の条件???、及び[2]を[1]のどこに組み込めば”合計23”が表示されるのかも分かりません。 そもそもfor文で行うこと自体が無理?そんなことはない、と思っているのですが・・・。それとも[2]を[1]に組み込もうとしてること自体が間違っている?のですかね??? 大変忙しいとは思いますが、アドバイス等ありましたらお願いします。 <使用環境: Borland?? C> [1] 1~4までのプログラミング(完成済) #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num,tra; int inpt=5; int inptnum; int s; printf("5桁入力; "); scanf("%d", &num); for(inpt ; inpt >=1 ; inpt--) { if(inpt%2 == 0) { inptnum = pow(10,inpt-1); tra = (num/inptnum)%10; s=(tra*2)/10+(tra*2)%10; printf("%d",s); } else {inptnum = pow(10,inpt-1); tra = (num/inptnum)%10; printf("%d",tra);} } system("pause"); return 0; } [2]単独での加算処理プログラム(完成済) #include <stdio.h> #include <stdlib.h> int main() { int count; int Sum; Sum=0; for (count = 1; count <= 6; count++) {printf("%d ",count); Sum = Sum + count; } printf("\nSum%d\n", Sum); system("pause"); return 0; }

  • while文を使った問題なのですが・・

    はじめまして。 C言語初心者です。 while文のところまでやっとたどり着きましたが、次の問題がどうしても解くことができません。 ********************** 整数を入力し、入力された整数の数だけ「*」を横一列に表示し、最後に改行するプログラムを while 文を使って作りなさい。 但し、0または負の値が入力された場合は、「*」は表示せず、改行のみを表示すること。 ********************** #include<stdio.h> int main(void) { int a; scanf("%d", &a); while(a!==0){ printf("%d*\n", a); } } こんな感じでつくってみたのですが、whileの条件部分がさっぱり分かりません。 int a の数字文だけ、*で表示する、というのも方法が思いつきません。 アドバイス、お願いいたします。

  • while文でつまづいています

    C言語はじめたばかりのものです。 単細胞生物が翌日(2日目)には分裂して2細胞になるとする。1匹もしなないとすると 1万匹を超えるのは何日目になるかを算出するプログラムを作成しています。 「15日目に16384個の細胞数になります。」という結果を出したいのですが、 「1日目に1個の細胞数になります。」と表示され、1日目までしか計算されません。 まだscanfやiprintf、ifやwhileぐらいしか習っていません。 どう直したらよいでしょうか? #include<stdio.h> #include<math.h> main() { int n; /*細胞数*/ int d = 1; /*日数*/ while(n > 10000) { n = pow(2,d-1); d = d + 1; if(n > 10000) break; } printf("%d日目に%d個の細胞数になります。",d,n); }  

  • for文を別のint内で定義し、初めのint文内で呼び出す??? 何という名のプログラム名?ですか???

    毎度毎度忙しい中失礼します。現在<私のプログラム>を基に<参照プログラム>のようにプログラムを作り変えようとしていますが、正直お手上げ状態です。 どうしても<参照プログラム>に基づいてプログラムを組まなければならないのです。 どこがお手上げ状態かといえば、<参照プログラム>を参考にすると、int multInts(int x, int y)内の条件の組み方が<私のプログラム>内でどのようにして組めばいいのかが全くもって分かりません。かなり考えても分からないレベルです・・・私にとっては。 int multInts(int x, int y)の定義の仕方を真似て<私のプログラム>でも真似てみるのですが・・・出来ないのです。何をどう直せば良いのでしょうか???初期化でtra=0;とすると、表示は"0"になったりするし・・・。簡単かと思われるかもしれませんが・・・私にとってはかなり難しいのです。 ”丸投げ”みたいな感じで恥ずかしいのですが、どうかアドバイスだけでも下さい。お願いします。 出力結果 1.5桁数字入力:"12345"と入力 (これは出来ます) 2.偶数桁のみ抽出して2倍にする→"14385" (最不明部: <参照プログラム>内のmultInts内の条件を<私のプログラム>内でどのようにして組むのかが分かりません) 3.各桁の数値を足し合わせる→1+4+3+8+5=21(不明部: 2.が出来ないので出来ません) 4.その数値が”妥当”か”不当”かをDOS?画面に表示(不明部:2.と3.が出来ないので出来ません) <私のプログラム> #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num,tra; int inpt=5; int inptnum; int sum=0; //#define 0 printf("5桁入力; "); scanf("%d", &num); if (num==0){ printf("その値は0です。 \n"); } else{ for(inpt ; inpt >=1 ; inpt--) { if(inpt%2 == 0) { inptnum = pow(10,inpt-1); tra = (num/inptnum)%10; //printf("%d",tra*2); tra=(tra*2)/10+(tra*2)%10; printf("%d",tra); } else{ inptnum = pow(10,inpt-1); tra = (num/inptnum)%10; printf("%d",tra); } sum += tra; } printf("\n %d\n",sum); sum= sum%10; if(sum==0) { printf("妥当な数値です。\n"); } else { printf("不当な数値です。\n"); } } system("pause"); return 0; } <参照プログラム> #include <stdio.h> #include <stdlib.h> int main(){ int multInts(int x, int y); int num1,num2,answer; printf("間にスペース設けて2つの値入力: "); scanf("%d%d", &num1, &num2); answer = multInts( num1, num2); printf("%d * %d=%d\n", num1, num2, answer); system("pause"); return 0; } int multInts(int x, int y) { int result = 0; int i; for (i=1 ;i<=y ;i++) { result=result + x; } return result; }

  • Cプログラムの条件文  if,else if ,elseについて教えてください。

     こんにちは。課題でどうしても解らないところがあるので教えてください。  次のプログラムは一桁の数(0~9)が偶数(EVEN)か奇数(ODD)かを表示するものです。  #include <stdio.h> main() { int num; printf("please enter a number[0~9]:"); scanf("%d",&num); if (num % 2 ==0) printf("%d is an EVEN. \n", num); else printf("%d is an ODD. \n", num); } というプログラムをコンパイルして実行すると、ちゃんと実行されるのですが、10以上の数や負数を入力しても動作してしまうんです。  そこで0~9の範囲以外の数が入力されていないかを確認して、その場合を偶数、奇数の判断や表示をせず、エラーメッセージだけを表示して終了するプログラムに書き換えなくてはならないのですが、まず  (1)判断する条件式(変数numの内容が0~9の範囲にあるか)で、num >= 0 && num <= 9 をどこに入れればいいか。  (2)please enter a number[0~9]: 8 8 is an EVEN.  (←例えば8を入れると普通こうなるのですが)   please enter a number[0~9]:12   ERROR:12 is in out of range!!  (←0~9以外ののものだったら、この様にエラー表示にしたいのです。  私が考えたプログラムは  #include <stdio.h> main() { int num; printf("please enter a number[0~9]:"); scanf("%d",&num); if (num % 2 ==0) printf("%d is an EVEN. \n", num); if else printf("%d is an ODD. \n", num); else(num >= 0 && num <= 9) printf("ERROR:%d is in out of range!! \n",num); } という風に考えたのですがコンパイルできません。プログラミング初心者なので、書いている内容も解りにくいんですが、どうかよろしくお願いします。

  • if~else文の中にまたif~else文をいれるには。

     このプログラムを思うように実行したいのですが、できません。 コンパイルはできるのですが、警告が4つほど出て、結果も自分が思ってるのとは違います。 プログラムのどこを改善すべきか教えてください。 OSはWindows XPで、コンパイラはボーランドのフリーコンパイラを使用しています。 #include<stdio.h> int main(){ int a,b,c,d; printf("1か0を入力してください。\n"); scanf("%d",&a); if(a=0) { printf("2か3を入力してください。\n"); scanf("%d",&b); if(b=2){ printf("今まで合計は%dです。\n",a+b); } if(b=3){ printf("今まで合計は%dです。\n",a+b); } else { printf("指定した数字を入力して下さい。\n"); } } else if(a=1) { printf("あなたは%dを入力しました。\n",a); } else { printf("指定した数字を入力してください。\n"); } return 0; }

専門家に質問してみよう