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>
お礼
すいません。補足部分値間違えました。 とりあえず、納得できたので 大丈夫です。ありがとうございました。
補足
n1の値をかくにんすると10 9 8 7 ・・・と続くので 解説文は正しいです。ただし、 何も解決にはつながりませんが。