入力された数字の整数部分の桁数を表示するプログラムには常用対数log10を使用するか、整数部分が0になるまで10で割り続けてその回数を数える方法があります。
while文やfor文を使用し、if文の条件分岐で繰り返す方法です。
これよりも常用対数を使って桁数を求めた方が簡単です。
よくlog10 2^50は何桁目かという問題が出たと思います。これと意味は同じです。
数学関数を使う為にはmath.hをincludeしないといけません。
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b;
printf("桁数を調べたい数を入力¥n");
scanf("%d",&a);
b = (int)log10((double)a) + 1;
printf("入力された数の桁数は%dです¥n",b);
return 0;
}
int型は小数点を完全に無視して整数のみ表記する奴です。
肝心の常用対数を使用するところのintは.何桁の小数部分を切り捨てる為にintにします。
double型にするのは四捨五入をさせない為に倍精度で表記させます。
9<=x<10のxが9.1だろうと9.2だろうと10桁になりますがintにしていますので9になってしまいます。その為に最後+1する必要があります。
以上です。
本日暇だったので回転するように開くドアの仕掛けをMinecraftで作ろうと思って、3時間かけて作りました。こちらです。
一生懸命作ったんですが、回路が近すぎて別の反応を拾ってしまうようになり、無駄に終わりました。 泣きそう。
仕掛け・回路研究現場(ゴミ置場)
Minecraftは楽しいですね。
計画している時と回路作ってる時が。
完成してしまうとつまらなくなってしまいます。人間は欲深い生き物ですね……。
6月末にxjr400を買ってもらえる可能性が浮上しています!!!!!!
早く単車が欲しい!!!!
現状が動いたらまた報告したいと思います。
ではまた。