- 201 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 02:31:07 ]
- [1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク): longが定義されている数の最大値LONGMAXをもとめろ。 例えば、i=1 を2倍していき、LONGMAXの最大値を求める。 別にこの方法でなくてもいい。各自にまかせる。 ちなみに LONGMAXはおよそ2147483647である。 余裕があるものはdouble などもやることが望ましい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc2.95-3) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: (2007年07月25日23:59まで) [5] その他の制限:無制限 さぐりで下のようなところまでは書きました。 #include <stdio.h> #define LONGMAX 2147483647 int main(void) { long int i,i2; /*これは0 ... の無限ループ for(i=1;i<LONGMAX;i*=2) printf("%d ",i); */ for(i=1;;i2=i,i*=2){ printf("%d ",i); if(i<i2){ printf("%d is LONGMAX\n",i); break; }}} までできましたが、値が少し違い微妙です。 それと、コメントカットしたらなぜ無限ループになるのでしょうか? これにかなり悩みました。
|

|