• ベストアンサー

数字の位ごとの値を表示するプログラム

scanfで入力した数字の位ごとの値を表示するプログラムを作りたいのですがどうしたらいいですか? 例えば1234という数字を入れたら 10の位・・・3 1の位・・・4 という感じです

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

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 10の位・・・3 1234を10で割って小数点以下を切り捨て。→123.4→123 123を10で割った余りを求める。→3 > 1の位・・・4 1234を1で割って小数点以下を切り捨て。→1234 1234を10で割った余りを求める。→4 とか。

slawter
質問者

お礼

なるほど、こういう方法があったとは・・・。 ありがとうございました

その他の回答 (1)

回答No.2

課題か何かですよね? N=1234 とします。 1の位 Nを1で割る 次にその値を10で割って余りを求めると4 10の位 Nを10で割る 次にその値を10で割って余りを求めると3 100の位 Nを100で割る 次にその値を10で割って余りを求めると2 1000の位 Nを1000で割る 次にその値を10で割って余りを求めると1 10000の位 Nを10000で割る 割った商が0なのでおしまい。 どうですか?規則性があるでしょ? for~next 使ってループしてやれば簡単です。 10で割って余りを求めるというのは %10 というのを使えば一発です。

関連するQ&A

  • A1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示

    エクセル初心者です セルのA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示されるようなものを作りたいのですが・・・ どなたかご教授お願いします 例えば、A1に1を入れるとB1の値"北海道"がA1に表示され、A2に2を入れるとB2の値"青森"がA2に表示といった感じでです 宜しくお願いいたします

  • 百の位以上からの数字を取り出す

    エクセルの関数で、RIGHT(A1,10)は値の右から10個の数字を返しますが、数字の一の位と十の位を抜かした、百の位以上からの数字を返すようにするには、どうしたら良いでしょうか? よろしくお願いいたします。

  • 8進数と16進数で表示するプログラム

    int型変数bに10進数として数値を入力し、その値を実行結果のように8進数と16進数で表示するプログラムを作成しなさい という問題にとりかかっているのですが、いまいち理解できません scanfで値を入力させる項目は必要とわかるのですが、その他がどうしてもわかりません、ご教授して頂ければ幸いです

  • √2の値を表示させるプログラムを教えてください。

    √2の値を表示させるプログラムを教えてください。

  • floatの値について

    初心者的質問です。暇な方お答え願います。 分かりやすく教えてくださると嬉しいです。 例えば、簡単な main() { float a; printf("値を入力して下さい ==> "); scanf("%f",&a); printf("入力した値は%fです",a); } という感じで値を入力して出力するプログラムがあったとします。 このとき,例えば値を 166.5と入力すれば、166.500000とでますが 166.7と入力すると、166.699997とでるのはなぜでしょうか? doubleで変数宣言した場合は、このようにならないのですが。

  • 数字探索について、プログラムかフローチャートを教えてください(>_<)

    数字探索について、プログラムかフローチャートを教えてください(>_<) 使用するアプリケーションはMicrosoftOffice2007-ExcelのVisualBasicです。 5桁の数字500個の中から、指定した数字があるかどうかを探索したいと思ってます。 2つ以上の位で、値が一致したときに、その数字を表示したいです。 ※数字について、"40"のように、5桁に満たない数字は、"00040"と、"0"を前に付けています。 Ex. 探索する数字:"04256" 探索される数字↓↓ 46025……一致する位なし 74596……2桁一致 02256……4桁一致 34210……2桁一致 よって、メッセージボックスには 「2桁一致は」 「74596」 「34210」 「3桁一致はありませんでした」 「4桁一致は」 「74596」 「完全一致はありませんでした」 のように表示させたいと思っています。 フローチャートさえ書ければ、あとは試行錯誤、自分で頑張ってみるので、フローチャートだけでも、一緒に考えて頂けませんか。 お手数ですが、お力添え願いますm(__)m

  • 九九を表示させるプログラム

    掛け算の九九、和の九九、差の九九を表示するプログラムを組むという問題ですが、コメント文の所のプログラムが分からないので教えてください。プログラムは以下の通りに与えられています。 #include<stdio.h> main(){ int x,y,z; int yn,op; do{ do{ printf("[*(1),+(2),-(3)]"); scanf("%d",&op); }while( 1 > op || op > 3 ); //ここに、九九を計算し表示するプログラムを入れる //変数opの値が1なら、掛け算の九九 //変数opの値が2なら、和の九九 //変数opの値が3なら、差の九九 を計算し表示 do{ printf("Continue[1/0]?"); scanf("%d",&yn); }while( 0 > yn || 1 < yn ); }while( yn == 1 ); }

  • プログラムについて教えて下さい。

    ある値を入力し、0以上100以下のときだけ平方根を計算するプログラムで、負の値や100よりも大きな値を入力したときは何も表示せず、 再度入力するようなプログラムを教えて下さい。 #include <stdio.h> #include <math.h> main() { int n,i; printf("0から100までの値を入力してください。"); scanf("%d",&n); i=0; do{ i++;} while(i<=100); if(100>=0) printf("%dの平方根は%dです。\n",n,sqrt(i)); return(0); } どうか、お願いします。

  • エクセルにてA1に1と入力したらB1の値を表示

    エクセル初心者です セルのA1に数字の1を入力するとB1の値が表示、A2に数字の2を入力するとB2の値が表示されるようなものを作りたいのですが・・・ どなたかご教授お願いします 例えば、A1に1を入れるとB1の値"北海道" A2に2を入れるとB2の値"青森"といった感じでです 宜しくお願いいたします

  • C言語のプログラムみてください(isdigit)

    質問は2つあります。 (1) scanf関数を使って、 時給: と表示されたところに一文字打ち込み、数字以外ならばもう一度 時給: と表示されるプログラムを作りたいです。 以下のプログラムなら、 isdigit関数は数字を渡せば0以外の数を返す(真)から、 while文の条件式(偽)のようにすれば、 ・数字を一文字うちこめばwhile文の条件式にあてはまらない、すなわち下のプログラムではisdigit(payment) != 0 となり、return 0; が実行され、プログラムが終わる ・数字以外を一文字打ち込めばwhile文の条件式が真となり、printf関数とscanf関数が実行されて入力待ち状態になる と思ったのですが、どうやら違うようです。実際には ・数字一文字打てばまた入力待ちになる ・数字以外を一文字打てば永遠にprintf関数とscanf関数が実行される のはなぜでしょうか。 #include <stdio.h> #include <ctype.h> int main(void){ int payment; do{ printf("時給[円]:"); scanf("%d",&payment); } while (isdigit(payment) ==0) ; return 0; } (2) 実際には、一文字の制限なく、数字以外の何かを入力したら、再び入力待ちになるプログラムを作りたいのですが、これはどうしたらいいのでしょうか。 つまり 時給: のところに数字以外ならまた 時給: となるようにしたいのです。お願いします。