C言語
1#include <stdio.h> 2#include <math.h> 3 4int main(void) { 5 float a,k,i,m; 6 int b; 7 m=1; 8 k=log(10*10*10*10*10*10)/log(2); 9 b=(int)k; 10 printf("%d\n",b); 11 for(i=0;i<=k;i=i++); 12 m=m*2; 13 printf("%d",m); 14 15}
元々「log2(1000000)」で得られた値の分、2を累乗して←の式の真数の値をだすプログラムを作ろうとしていたのですが底を2にする方法が分からなかったので、底の変換公式を用いて↑のプログラムのような形にしました。
for(i=0;i<=k;i++);
m=m*2;
で2を累乗して10000000にしたいです。ですが結果は「0」と表示されてしまいます。ここが質問させて頂いた所です。ご授お願い致します。
どう見てもC#ではないですえねぇ。
>底を2にする方法が分からなかった・・・mthrさんの環境で-srd=c99以上は使えませんか?
The log2 functions (C99)→http://www.c-tipsref.com/reference/math/log2.html
遅れてすみません。c99がどうか分かりません。そして上記のlog2を試しましたが、エラーメッセージで「log2が定義されていない」と表示されて実行出来ません。
ちなみに使用しているコンパイラーもしくは IDE は何ですか?
苦Cのやつです
参考までにC99→https://ja.wikipedia.org/wiki/C99
通常コンパイルオプショに "-std=c99"と、指定します。
出来ました。
他の皆さんもありがとうございました。