HOGERA3 の回答履歴
- 型変換??
int RANDOM_FUNCTION( int n ) { return (int)( rand() / (float)RAND_MAX * n ); } について Q1.この関数は0からn-1までの乱数を作るそうなのですが,何故ですか? 0<=rand()<=RAND_MAX だから0からnまでの乱数ができるような気がするのですが. Q2.RAND_MAXではなく(float)RAND_MAXとキャストしてある意味は何ですか? Q3.srand((unsigned)time(NULL));と srand((unsigned int)time(NULL));では何か違いますか? Q4. static int first = 0; if (first == 0){ srand((unsigned)time(NULL)); first = 1; } という処理でsrand((unsigned)time(NULL));は最初の一回だけ呼び出されるようになっているようですが,この部分を srand((unsigned)time(NULL)); というように毎回呼び出すようにするとどうなりますか? 一回呼び出すだけで乱数系列の初期値が呼び出される時に変化しているのですか? Q5.この関数とは関係ない質問ですが,例えば a:int型 b:int型 c:double型 d:float型 のとき d = a / b + c という演算は 1 a:int型,b:int型より(a / b)の結果はint型(小数になった場合は小数点以下切り捨て) 2 (a / b):int型,c:double型,int<doubleより (a / b + c)の結果はdouble型 3 d:float型,『=のあるときは左辺の型に合わせる』よりdはfloat型 というように型変換されているという解釈でいいのでしょうか??
- 型変換??
int RANDOM_FUNCTION( int n ) { return (int)( rand() / (float)RAND_MAX * n ); } について Q1.この関数は0からn-1までの乱数を作るそうなのですが,何故ですか? 0<=rand()<=RAND_MAX だから0からnまでの乱数ができるような気がするのですが. Q2.RAND_MAXではなく(float)RAND_MAXとキャストしてある意味は何ですか? Q3.srand((unsigned)time(NULL));と srand((unsigned int)time(NULL));では何か違いますか? Q4. static int first = 0; if (first == 0){ srand((unsigned)time(NULL)); first = 1; } という処理でsrand((unsigned)time(NULL));は最初の一回だけ呼び出されるようになっているようですが,この部分を srand((unsigned)time(NULL)); というように毎回呼び出すようにするとどうなりますか? 一回呼び出すだけで乱数系列の初期値が呼び出される時に変化しているのですか? Q5.この関数とは関係ない質問ですが,例えば a:int型 b:int型 c:double型 d:float型 のとき d = a / b + c という演算は 1 a:int型,b:int型より(a / b)の結果はint型(小数になった場合は小数点以下切り捨て) 2 (a / b):int型,c:double型,int<doubleより (a / b + c)の結果はdouble型 3 d:float型,『=のあるときは左辺の型に合わせる』よりdはfloat型 というように型変換されているという解釈でいいのでしょうか??
- arcsinxの積分は?
タイトルのとおり、arcsinx の積分を求めたいのですが、どうすればいいか分かりません。 部分積分を使って解こうとしたのですが、うまくいきませんでした。 どなたか教えていただけませんか? よろしくお願いします。
- arcsinxの積分は?
タイトルのとおり、arcsinx の積分を求めたいのですが、どうすればいいか分かりません。 部分積分を使って解こうとしたのですが、うまくいきませんでした。 どなたか教えていただけませんか? よろしくお願いします。
- ファイルの読み書きと行移動について
ファイルaとファイルbから1行ずつ順にデータを読み込んでその行の大小関係を比較して、小さい方の行(同じ大きさなら両方)をファイルcに書き込むプログラムを作成したいと考えています。 そこで、以下のようなソースコード(途中まで)を書いてみました。 #include <stdio.h> main() { FILE *fpa,*fpb,*fpc; char fpa_data[200],fpb_data[200]; fpa=fopen("filea.txt","r"); fpb=fopen("fileb.txt","r"); fpc=fopen("filec.txt","a"); fscanf(fpa,"%s\n",fpa_data); fscanf(fpb,"%s\n",fpb_data); x = strcmp( fpa_data,fpb_data); if(x<0) fprintf(fpc,"%s\n",fpa_data); else if(x=0) fprintf(fpc,"%s\n%s\n",fpa_data,fpb_data); else fprintf(fpc,"%s\n",fpb_data); } このソースコードですと、最初の1行目のみが正しく実行されると思いますが、これを2行目以降の行に対しても行うようにするには、どのようにすればよいでしょうか? ご回答宜しくお願いします。
- ベストアンサー
- linuxbeginner
- C・C++・C#
- 回答数8
- ファイルの読み書きと行移動について
ファイルaとファイルbから1行ずつ順にデータを読み込んでその行の大小関係を比較して、小さい方の行(同じ大きさなら両方)をファイルcに書き込むプログラムを作成したいと考えています。 そこで、以下のようなソースコード(途中まで)を書いてみました。 #include <stdio.h> main() { FILE *fpa,*fpb,*fpc; char fpa_data[200],fpb_data[200]; fpa=fopen("filea.txt","r"); fpb=fopen("fileb.txt","r"); fpc=fopen("filec.txt","a"); fscanf(fpa,"%s\n",fpa_data); fscanf(fpb,"%s\n",fpb_data); x = strcmp( fpa_data,fpb_data); if(x<0) fprintf(fpc,"%s\n",fpa_data); else if(x=0) fprintf(fpc,"%s\n%s\n",fpa_data,fpb_data); else fprintf(fpc,"%s\n",fpb_data); } このソースコードですと、最初の1行目のみが正しく実行されると思いますが、これを2行目以降の行に対しても行うようにするには、どのようにすればよいでしょうか? ご回答宜しくお願いします。
- ベストアンサー
- linuxbeginner
- C・C++・C#
- 回答数8
- タイトルがわかりません(乗客皆が共謀)
クリスティだったと思うのですが、「列車内で殺人事件が起こるが、たまたま乗り合わせた乗客みんなが犯人に同情して口裏を合わせて犯人を疑われないようにする」という小説を以前読み、面白かった記憶があります。しかし、この小説が何だったか、思い出せません。 「オリエント急行殺人事件では?」と言われて読んでみましたが違いました。(こちらは一等寝台が舞台ですが、私が探している方は、普通の向かい合わせの座席が主な舞台だったと思います。また、あとで警察に聞かれたとき疑われないよう、「何時から何時までみんなでトランプをしていたことにしよう」などと言って、口裏を合わせる為に一生懸命トランプするシーン等が印象的だったけれど、そういったシーンはありません。) ピンと来たかた、私が探している小説は何だったか、教えて下さい。(ちなみに、我が家のどこかに埋もれていると思いますので、購入したいというわけではありません。タイトルと著者がわかればと思います。)
- 締切済み
- noname#63648
- 書籍・文庫
- 回答数3
- 算数の計算(暗算)についてなんですが・・・。
こんにちは、私中学生なんですが理数系が大の苦手で計算がほんと出来なくて困っています。掛け算や割り算はまだいいんですが、足し算や引き算の暗算がまったくだめです。ずっと悩み続けて来てこんな歳になり尚更恥ずかしくて言えないので、いい解決方法や勉強法を教えて下さい。
- ファイルの読み書きと行移動について
ファイルaとファイルbから1行ずつ順にデータを読み込んでその行の大小関係を比較して、小さい方の行(同じ大きさなら両方)をファイルcに書き込むプログラムを作成したいと考えています。 そこで、以下のようなソースコード(途中まで)を書いてみました。 #include <stdio.h> main() { FILE *fpa,*fpb,*fpc; char fpa_data[200],fpb_data[200]; fpa=fopen("filea.txt","r"); fpb=fopen("fileb.txt","r"); fpc=fopen("filec.txt","a"); fscanf(fpa,"%s\n",fpa_data); fscanf(fpb,"%s\n",fpb_data); x = strcmp( fpa_data,fpb_data); if(x<0) fprintf(fpc,"%s\n",fpa_data); else if(x=0) fprintf(fpc,"%s\n%s\n",fpa_data,fpb_data); else fprintf(fpc,"%s\n",fpb_data); } このソースコードですと、最初の1行目のみが正しく実行されると思いますが、これを2行目以降の行に対しても行うようにするには、どのようにすればよいでしょうか? ご回答宜しくお願いします。
- ベストアンサー
- linuxbeginner
- C・C++・C#
- 回答数8
- ファイルの読み書きと行移動について
ファイルaとファイルbから1行ずつ順にデータを読み込んでその行の大小関係を比較して、小さい方の行(同じ大きさなら両方)をファイルcに書き込むプログラムを作成したいと考えています。 そこで、以下のようなソースコード(途中まで)を書いてみました。 #include <stdio.h> main() { FILE *fpa,*fpb,*fpc; char fpa_data[200],fpb_data[200]; fpa=fopen("filea.txt","r"); fpb=fopen("fileb.txt","r"); fpc=fopen("filec.txt","a"); fscanf(fpa,"%s\n",fpa_data); fscanf(fpb,"%s\n",fpb_data); x = strcmp( fpa_data,fpb_data); if(x<0) fprintf(fpc,"%s\n",fpa_data); else if(x=0) fprintf(fpc,"%s\n%s\n",fpa_data,fpb_data); else fprintf(fpc,"%s\n",fpb_data); } このソースコードですと、最初の1行目のみが正しく実行されると思いますが、これを2行目以降の行に対しても行うようにするには、どのようにすればよいでしょうか? ご回答宜しくお願いします。
- ベストアンサー
- linuxbeginner
- C・C++・C#
- 回答数8
- char str[256]の256の意味は?
よく入門者などにchar str[256]という記述があります。 この256という数字には何か特別な意味があるのですか? 勿論2の8乗から来ているのでしょうが。 charって1バイト=8ビット=256ですよね。 str[256]というのを良く見かけるので、最初strは最大256個しか確保できないと思っていました。 でも、実際は1000でも良いのですよね。 ということで、どうして256という数字を使うのですか? 意味ありげな数字を使われると、初心者は混乱するので100とか200とかの方が良いと思うのですが。 特別な理由があるのでしょうか?