- ベストアンサー
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>
補足
度々失礼します。 ANo.5に補足回答を付け加えました。