1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
498 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 22:04:04 ] よくわからないけど平均値どこ行ったの?
499 名前:358 mailto:sage [2008/10/21(火) 23:39:49 ] >>494 ,495 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7813.zip 参考程度にしてくれ >>497 ロダ死亡 LSIのは、むかし試食版とか使ったことあるけど、もうしらねぇ。 www1.axfc.net/uploader/Ne/so/34790.zip 参考程度にしてくれ DLkey : foo
500 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 00:02:22 ] ちょっと修正、勘違いしていた、気がしないでもない。 ついでに、全ソースもつけといたので、環境に合わせてコンパイルとリンクしてくれ ロダ生きてたみたい kissho1.xii.jp/7/src/7jyou16166.zip.html DLkey : foo ってか、358ってなんだ、前のがそのまんまだった。
501 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 01:44:49 ] [1] 授業単元: プログラミング実習2 [2] 問題文(含コード&リンク):カレンダー風の出力 下に示すようなカレンダー風の出力を行うプログラムをwhile文を使って作成してください。 ・1〜31までの範囲とします。 ・printf関数で表示幅をそろえます。(右揃え) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [3] 環境 Visual C++ [3.1] OS:Windows [3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ [3.3] 言語: C言語 [4] 期限: 2008年10月23日(木)までお願いします。 [5] その他の制限: 逐次処理(順次処理)、条件分岐(選択処理)if,if-else,switch、 繰り返し(反復処理)while,do-while,for、演算子の複合演算子(+=,-=,*=,/=,%=) インクリメント(++)デクリメント(--)は習いました。 お願いします。
502 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 02:23:57 ] >>498 平均値は最大値を求めるだけに使うので、出力とかはしなくていいんです。 ↓(手書きで申し訳ないですけど・・・)イメージ的には↓ kissho.xii.jp/1/src/1jyou52627.bmp.html DLkey:foo >>499 >>500 ありがとうございます。早速、明日学校でコンパイルしてみます。 本当に助かりました。
503 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 03:55:43 ] >>502 圧縮するという事を学ぼう。 テキストはzipに、bmpは形式を変更。
504 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 06:21:16 ] >>501 #include <stdio.h> int main(void) { int i=1; while(i!=32){ printf("%2d ",i); if(!(i%7)) printf("\n"); i++; } return 0; }
505 名前::デフォルトの名無しさん [2008/10/22(水) 11:35:56 ] >>501 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7816.txt
506 名前:デフォルトの名無しさん [2008/10/22(水) 11:47:05 ] オブジェクト形式マクロを用いたNUMBER人の点数を配列tensuに 読込み,秀(90〜100点),優(80〜89点),良(70〜79点),可(60 〜69点),不可(0〜59点),判定不能(0未満あるいは100点より 上)の人数を,それぞれ変数a,b,c,d,e,fに格納・表示し,更に最高 点,最低点,合計点,平均点を表示するプログラムを作成せよ.た だし,最高点,最低点,合計点,平均点の計算において,判定不能 の点数は除外すること. なおNUMBERの値は10とし,平均点は小数点以下第2位まで表示 すること. という問題誰か教えてください。
507 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:48:05 ] [1] 授業単元: [2] 問題文(含コード&リンク): 5.6 29.2 ・・・・25.2 2.7 ・・・ ・ ・ ・ -1.0 mozi 6.7 ・・・・ という様に数値データが書かれたファイルを読み込む。各行に100個の正の実数が書かれている。 これを1次元配列data[100]に順番に入れて、表示する。 これをファイルの終わりまで行う。 -1.0から始まる行があるが、その行は読み飛ばし、次の行から処理を行うようにすること [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C [4] 期限:今日 [5] その他の制限: なし
508 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:55:37 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):文字列を入力すると,英小文字を大文字に変換して出力するプログラムをポイン タを用いてつくりなさい。但し,ライブラリ関数toupper を用いないこと。また,文字 列の入力には,ライブラリ関数であるgets 関数を用いること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月23日23:00まで よろしくお願いします。
509 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 12:47:36 ] [2] ・dx/dt = t という式についてx(t=0)=0として,x(t) をt=0 から1 まで求めるEuler法のプログラムを作れ. 時間刻み(h)をどの程度小さくすると,真値(解析解:x=0.5*t*t)にどの程度近づくかを調べよ. ・FitzHugh-Nagumo方程式の解軌跡を求めるプログラムを作成せよ. ・作成したプログラムを使って、興奮性を示すx,yの初期値を一組探しグラフで結果を示せ. 初期値も自由に設定して良いが、うまくパラメータが見つからない場合は、a=0.7, b=0.8, c=20, z=1.0 を使用すること. dx/dt=c(x-x^3)/(3+y+z) dy/dt=(a-x-by)/c [3] 環境 [3.1] Windows [3.2] コマンドプロンプト [3.3] C [4] 明日17時 [5] わからないのを3つ載せましたが、1つでも構わないのでなんとかお願いします。
510 名前::デフォルトの名無しさん [2008/10/22(水) 13:08:58 ] >>508 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7817.txt
511 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 13:52:57 ] >>510 ありがとうございました!
512 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:32:51 ] わざわざ文字列の長さを求めなくてもAllCharactersToUpperのfor文の条件をstr[i]!='\0'にすればいいと思う。
513 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:50:28 ] >>509 Cじゃないけどエクセルで作ってみたw kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7818.zip
514 名前::デフォルトの名無しさん [2008/10/22(水) 15:14:32 ] >>507 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7819.txt
515 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:41:27 ] 2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算をした画像を作りたいんですが どのような感じで作ればいいでしょう?
516 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:55:18 ] 2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算するような感じで 作ればいいと思います
517 名前::デフォルトの名無しさん [2008/10/22(水) 16:21:40 ] >>507 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7820.txt
518 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:25:34 ] >>514 最初の1行しか読まれないんですが・・・
519 名前::デフォルトの名無しさん [2008/10/22(水) 16:30:51 ] >>518 >>517 で試してみて
520 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:32:18 ] >>519 3つめでしょうか?
521 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:36:01 ] >>518 プログラムざっとみたけど1行目しか読んでない
522 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:42:31 ] >>519 3つめでやったら、コンパイルは通るんですが、バッファーオーバーランでとまります・・・
523 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:50:24 ] do-while間のi初期化忘れてるな
524 名前:523 mailto:sage [2008/10/22(水) 16:53:21 ] 投稿者が見てるか分からんが i=0; ←追加 do{ (略) }while(dp = strtok(NULL,gDlim)); これで動くように一見見える
525 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:54:36 ] >>524 動きました。がやはり1行目しか読まれないみたいです
526 名前:523 mailto:sage [2008/10/22(水) 17:01:18 ] char *dp,*p,*gDlim = " \n\r"; ↓ char *dp,*p,*gDlim = " "; これもミスっぽいな
527 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:17:20 ] >>504-505 お二人とも本当に有難う御座いました。 助かりました。
528 名前::デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:25:24 ] >>525 読み込むファイルアップしてみ
529 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:29:51 ] fgets後にstrtokで" \r\n"渡してるからじゃん? これだと行頭しか処理されないよ。
530 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:31:44 ] strtokとか使う必要あんの?普通にfscanfのほうがよくね?とか無責任に言ってみる
531 名前:517 mailto:sage [2008/10/22(水) 17:39:35 ] 行頭に-1.0がある行は無視するという条件だから 行中に-1.0があっても読み込むためにstrtokを使った ちなみにfscanfつかったソースは#if 0〜#endif の間に残してある
532 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:42:21 ] >>529 そうなんですか?やはり1行目しか読まれません
533 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:47:15 ] あと1行1列が2回表示されます・・・
534 名前:デフォルトの名無しさん [2008/10/22(水) 17:53:07 ] >>533 だから読み込むファイルアップしてみ
535 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:57:21 ] >>534 見落としてました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7821.txt これです。横に100個って書いたんですが、12個のファイルしかなかったです。 先ほど頂いたソースは100のところを12に書き換えました。
536 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:59:29 ] >>534 俺も適当にddata.txt作ってみたけど1列目が2回出たなあ
537 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:03:30 ] 実数が100個並ぶのにバッファは512かあ。
538 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:15:03 ] >>535 なんかこれでいいかわかんないけどつくってみた #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ FILE* fp; char buf[1024],*cp; double data[100]; int i,cnt; if((fp = fopen("in.txt","r")) == NULL) return 1; while(fgets(buf,sizeof(buf),fp) != NULL){ if(strnicmp("-1.0",buf,strlen("-1.0")) == 0) continue; cp = buf; cnt = 0; while((cp = strtok(cp," \t\r\n")) != NULL){ data[cnt++] = atof(cp); cp = NULL; } for(i=0;i<cnt;i++) printf("%f\n",data[i]); } fclose(fp); }
539 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:19:14 ] return 0; わすれちゃった。
540 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:42:16 ] >>538 うまくうごきました。ありがとうございます。
541 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:01:36 ] [1] 授業単元:C [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7823.txt 問1.このプログラムではxの零乗が3x{0}と表示されるため3と出力されるようにする 問2.このプログラムでは入力の逆順に単項式が出力されるためそれを入力した順番に単項式が出力するようにする [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: お任せ [3.3] 言語: C [4] 期限: 2008年10月24日hh:mmまで
542 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:25:10 ] 画像を読み込み、引き算したプログラムを自分なりに作ったんですが #include <stdio.h> #include <stdlib.h> #include<math.h> #define XL 900 #define YL 900 int main(int argc, char**argv) { FILE *fp1, *fp2, *fp3; int i; float opx, px1, px2; fp1 = open("argv[1]", "rb"); fp2 = open("argv[2]", "rb"); fp3 = open("argv[3]", "wb"); for(i=0; i<XL*YL; i++){ fread(&px1,sizeof(float),1,fp1); fread(&px2.sizeof(float),1,fp2); opx = px1-px2; write(&opx,sizeof(float),1,fp3); } fclose(fp1); fclose(fp2); fclose(fp3); return 0; } コンパイルが通らず、エラーがでてしまいます; アドバイスを頂けるとうれしいです
543 名前:デフォルトの名無しさん [2008/10/22(水) 19:26:15 ] 380 >>407 遅くなりましたが、回答ありがとうございました!! もっと自分で学習せないかんですね・・・
544 名前:デフォルトの名無しさん [2008/10/22(水) 19:27:58 ] fread(&px1,sizeof(float),1,fp1); fread(&px2.sizeof(float),1,fp2); write(&opx,sizeof(float),1,fp3); &いるっけ?
545 名前:デフォルトの名無しさん [2008/10/22(水) 19:28:47 ] ごめん、いるわw 勘違いでした
546 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:47:51 ] ×fp1 = open("argv[1]", "rb"); ○fp1 = open(argv[1], "rb"); ×fread(&px2.sizeof(float),1,fp2); ○fread(&px2.sizeof(float),1,fp2); ^
547 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:48:27 ] ああ、まちがえた。 ×fread(&px2.sizeof(float),1,fp2); ○fread(&px2,sizeof(float),1,fp2); ^
548 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:11:32 ] 483 484 お二人ともありがとうございました。質問の内容がわかりにくくてすいません。 ありがとうございました
549 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:26:48 ] >>541 問1 最後のfor内を次のようにする printf("%+d", pwork->coef); if(pwork->degree_of_x) printf("x^{%d}", pwork->degree_of_x); 問2 printf("Input the coefficient: ");の前にpmx->next = poly;を入れる poly = pmx;の後ろのpmx->next = poly;を消す
550 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:22:28 ] [1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。 この作業をファイルの最後の2097152個目の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho6.xii.jp/14/src/1yon14506.zip.html DLKey:data A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。 同様に3行目、4行目、・・・と順次最大値を出力させなさい。 例:peak.txt → 472 234 800 578 ・・・・ 677 347 554 532 ・・・・ 843 637 347 551 ・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: LSI−86 [3.3] 言語: C [4] 期限: 2008年10月23日午後3時 [5] その他の制限: 特になし >>500 gccでコンパイルしてみたんですが、うまくいきませんでした。 エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor' よろしくお願いします。
551 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:25:05 ] >>497 >>550 問題文修正しました [1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。 この作業をファイルの最後の2097152個目の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho6.xii.jp/14/src/1yon14506.zip.html DLKey:data A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。 同様に3行目、4行目、・・・と順次最大値を出力させなさい。 例:peak.txt → 472 234 800 578 ・・・・ 677 347 554 532 ・・・・ 843 637 347 551 ・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc または LSI−86 [3.3] 言語: C [4] 期限: 2008年10月23日午後3時 [5] その他の制限: 特になし >>500 gccでコンパイルしてみたんですが、うまくいきませんでした。 エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor' よろしくお願いします。
552 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:31:09 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 標準入力から山の名前とその標高を入力し、標高の高い順にソートして、山の名前を表示するプログラムを作れ。 STLのpairを使うこと。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: 明日 [5] その他の制限: 特になし
553 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:44:28 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク): void desc_array(int n, int *array) { int i; for (i = n-1; i >= 0; i--) array[i] = i; } 降順にソートされた配列を作成したいが、上の関数では昇順に配列が作成されてしまうので誤りである。 そこで上の関数を正しい形に修正し、ディスプレイに表示し実際に降順となっていることを確かめられるプログラムを作れ。 (降順というのはたとえば、a[0] = 0, a[1] = -1, a[2]= -2, ..., a[n-1] = -(n-1)となっていればいい。) [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月23日 [5] その他の制限:無し お願いします。
554 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:56:59 ] >>551 あれ、だめだったのか。 Terminalから、makeするだけでいいはずなんだけどconfigure作ってなかったからかもしれないなぁ。 READMEファイルでも読んで、ダメだったらどうしよう。 kissho1.xii.jp/7/src/7jyou16183.zip.html DLkey : foo 処理の効率化とかヘッダファイルに使いかたとか書いといたので、うまくいかなかったらソース自体変更してみてね。
555 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:17:30 ] >>553 array[i] = i; ↓ array[i] = -i;
556 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:20:37 ] >>554 :set backupdir=/tmp とでもするといいよ。ってemacsでも~作るんだったらそっちはわかんね><
557 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:29:17 ] >>552 こんなん? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7824.txt
558 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:49:48 ] >>556 ありがたく追加させていただきました。 基本viを使っています。たまにvimになったり、geditになったりもしますが、emacsは使いません。 でも、S式っていいよね、とか言ってみるてst。
559 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:22:08 ] >>551 これでいい? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7827.txt
560 名前:デフォルトの名無しさん [2008/10/22(水) 23:31:34 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):x^3-7x^2+16x-10=0 の解をニュートン法を用いて求めるプログラムを作りなさい。 [3] 環境 OS: Windows [4] 期限: 2008.10.24 お願いします。
561 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:47:43 ] >>560 はい。 #include<stdio.h> #include<math.h> #define EPS 0.0001 //x^3-7x^2+16x-10 double f(double x){ return x*(x*(x-7)+16)-10; } //3x^2-14x+16 double df(double x){ return x*(3*x-14)+16; } int main(){ double x,next=0; do{ x=next; next = x - f(x)/df(x); }while(fabs(next-x) > EPS*fabs(x)); printf("%f\n",next); }
562 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:51:22 ] [1] 授業単元: C [2] 問題文(含コード&リンク): プログラムの冒頭で #define YEAR 2005 #define MONTH 12 #define DATE 24 #define HOUR 00 #define MIN 00 #define SEC 00 #define STEP 20 と定義して、STEP秒毎の西暦、月、日、時、分、秒を99STEP分出力する関数を作成せよ。 「出力例」 01:2005/12/24/00:00:00 02:2005/12/24/00:00:20 03:2005/12/24/00:00:40 04:2005/12/24/00:01:00 ・ ・ ・ 99: [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: borland c++5.5 [3.3] 言語: C [4] 期限: ([2008年10月24日まで] [5] その他の制限: なし 以上よろしくお願いします。
563 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:04:47 ] >>555 ありがとう。作成した配列をディスプレイに表示する所が分からないのですが、 printf内にどうやってdesc_arrayで作成したarray[i] = iの部分を書けばいいのでしょうか?
564 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:06:39 ] printf("array[%d] = %d,i,srray[i])
565 名前:デフォルトの名無しさん [2008/10/23(木) 00:11:11 ] >>561 ありがとうございます。
566 名前:デフォルトの名無しさん [2008/10/23(木) 00:19:41 ] すいません>>560 ですが コンパイルしようとすると bccは内部コマンド、外部コマンド 操作可能なプログラムコマンドまたはバッチファイルとして認識しません。 と出るんですが、どうすればいいのですか??
567 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:25:41 ] bcc32じゃないの? つーかそもそもコンパイラはいってるの?
568 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:26:32 ] 宿題以前だろ…
569 名前:デフォルトの名無しさん [2008/10/23(木) 00:38:00 ] >>567 >>568 すいませんでした・・・ 解決しました。
570 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:40:20 ] >>562 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7829.c
571 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:42:54 ] >>562 #include<stdio.h> #include<stdlib.h> #include<time.h> #define YEAR 2005 #define MONTH 12 #define DATE 24 #define HOUR 00 #define MIN 00 #define SEC 00 #define STEP 160000 int main(){ int i; char buf[1024]; struct tm date; time_t now; date.tm_year = YEAR - 1900; date.tm_mon = MONTH - 1; date.tm_mday = DATE; date.tm_hour = HOUR; date.tm_min = MIN; date.tm_sec = SEC; for(i=1;i<=99;i++){ if((now = mktime(&date)) == -1) return 1; strftime(buf,sizeof(buf),"%Y/%m/%d/%X",&date); printf("%02d:%s\n",i,buf); date.tm_sec += STEP; } }
572 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:17:36 ] [1] 授業単元:C [2] 問題文(含コード&リンク):3つの整数を入力し,それらを比較して,大,中,小を判定しなさい. 3つの整数が同じ値の場合,あるいは2つの整数が同じ値の場合でも 正確に判定ができるように対応すること. 全ての条件を場合分けするプログラムは不可とする. [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 10月30日13:00 [5] その他の制限: 特になし お願いします
573 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:18:46 ] 下記のように出力するプログラムをprintf,getsを用いて作成せよ. ./a.exe 学籍番号は? XXXXXXXXX 名前は? AAAA BBBB 学籍番号: XXXXXXXXX 名前 :AAAA BBBB
574 名前:573 mailto:sage [2008/10/23(木) 01:21:05 ] >>573 の続き ↓じゃ出力のAAAAが出ないのですがどうしたらいいですか? #include<stdio.h> int main() { char st1[80]; char st2[80]; printf("学籍番号は?"); scanf("%s",st1); gets(st2); printf("名前は?"); scanf("%s",st2); gets(st2); printf("学籍番号:%s\n",st1); printf(" 名前 :%s\n",st2); }
575 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:23:25 ] >>574 scanfいらない
576 名前:573 mailto:sage [2008/10/23(木) 01:25:35 ] >>573 の補足 学籍番号は? XXXXXXXXX 補足→ XXXXXXXXXはキーボードで打ちます 名前は? AAAA BBBB 補足→ AAAA BBBBはキーボードで打ちます
577 名前:573 mailto:sage [2008/10/23(木) 01:27:02 ] >>575 即レスありです。 両方ともいらないですか?
578 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:35:17 ] >>577 両方いらないです。
579 名前:573 mailto:sage [2008/10/23(木) 01:41:48 ] 名前はちゃんと出ましたが学籍番号がちゃんと出ません><
580 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:02:51 ] >>579 記載ミスだと思ってスルーしてましたが 1つめのgetsの引数は st1 にしていますよね?
581 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:03:35 ] >>574 #include<stdio.h> int main() { char st1[80]; char st2[80]; printf("学籍番号は?"); gets(st1); printf("名前は?"); gets(st2); printf("学籍番号:%s\n",st1); printf(" 名前 :%s\n",st2); return 0; }
582 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 04:59:48 ] >>572 #include<stdio.h> int main(void){ int a, b, c, flag = 0; printf("Input Number (a,b,c) : "); scanf("%d,%d,%d", &a, &b, &c); if(a >= b) flag |= 0x01; if(b >= c) flag |= 0x02; if(c >= a) flag |= 0x04; printf("大中小\n"); switch(flag){ case 0x01: printf("%2d%2d%2d\n", a, c, b); break; case 0x02: printf("%2d%2d%2d\n", b, a, c); break; case 0x03: printf("%2d%2d%2d\n", a, b, c); break; case 0x04: printf("%2d%2d%2d\n", c, b, a); break; case 0x05: printf("%2d%2d%2d\n", c, a, b); break; default: printf("%2d%2d%2d\n", b, c, a); } return 0; }
583 名前:573 mailto:sage [2008/10/23(木) 08:21:48 ] >>581 ありがとうございます。
584 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 09:54:51 ] >>564 #include<stdio.h> void desc_array(int n, int *array) { int i; for (i = n-1; i >= 0; i--) array[i] = -i; } int main() { int n,i; int *array; n =8; desc_array(n,array); printf("array[%d] = %d",i,array[i]); return 0; } mainの中のどこが違うんでしょうか?セグメントエラーを吐きます。
585 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:00:08 ] >>554 >>556 ありがとうございました。うまくコンパイルすることができました。 本当に助かりました。m(__)m >>559 シンプルでわかりやすいプログラムありがとございます。 まだちゃんと解読してないんですけど、peak.txtの出力した最大値が 1024個中5個だけってことなんでしょうか? 一応、求めた平均値より突飛して高い値(最大値とする) をpeak.txtに出力したいんですけど・・・最大値の数は特に指定はないです。
586 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:11:17 ] >>584 main() 無効なアドレスをさしている変数 array たぶんやりたいのは、 #include <stdlib.h>を、#include <stdio.h>のしたあたりに追加。 n = 8;の後に、array = (int *)malloc(sizeof(int) * n); if ( array == NULL ) { fprintf(stderr, "Error : Bad alloc !\n"); exit(8); } その後、desc_array(n, array); で、arrayを使わなくなったら、free(array);
587 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:17:06 ] MCIでデータ1データ2データ3を同時に鳴らした時、 コールバックでどのデータが終了したか どうやって判断したらいいですか?
588 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:47:44 ] [1] 授業単元: 情報工学演習 [2] 問題文(含コード&リンク): 数独のような問題を解くプログラムと、ポーカーでの強さを判定するプログラム 詳細は下のテキストファイルに書いてあります kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7830.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月24日13時まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) main関数は必ずテキストファイルに書いてあるもののままにしてください。 それ以外の部分もなるべくそのままでお願いします。 また、なるべく理解したうえで少し自分なりに手直したいので、 どんな手順で判定を行っているのかなど、軽く説明していただけると助かります。 できれば今日中にお願いします。急なお願いで申し訳ありません。
589 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:49:54 ] >>584 int *array; を int array[8]; にしたらいい
590 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 11:37:57 ] >>584 そもそも i に値がはいってないな。
591 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:22:37 ] >>585 なんか5個だと思い込んでたw てか最大値って言葉わかりにくいー極大値とか外れ値とかそんな感じ?? 飛び抜けて大きな値って平均値の何倍かとかで調べたいんですか? よくわかんないので標準偏差の何倍かで調べるようにしてみました。 てかこのまえupした画像で考えると、グラフで飛び出した点を求めなきゃいけないとするといったん並べ替えるのはよくないのだろうか・・・?? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7831.txt
592 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:56:53 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算する プログラムをfor文を使って書け。利用者が範囲外の数値を入力した場合、「値が範囲内にありません」 などのエラー表示を行え。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名 gcc [3.3] 言語: C [4] 期限: 2008/10/25 [5] その他の制限:まだ初めて日が浅く、習ったのはif else文やforループくらいまでです。 よろしくお願いします。
593 名前:デフォルトの名無しさん [2008/10/23(木) 13:03:19 ] 1] 授業単元:c++ builder [3] 環境 [3.1] OS:Widows XP [3.3] 言語:C++ [4] 期限:2008/10/24 [5] その他の制限:Cの基本言語程度 Memo1に60行の配列の乱数を出したのですが、そのMemo1にある60行の乱数の平均の数を Edit1に出すプログラムがどうしてもできません。 どなたか教えていただけないでしょうか。よろしくおねがいします。
594 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:19:31 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):100 個の整数型配列を宣言して,各要素に2〜200 の偶数値を格納し,配列要素の 総和を求めて出力するプログラムをつくりなさい。ただし,配列への値の格納,総和の 計算ともポインタを用いて実行すること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月24日24:00まで どうかお願いします。
595 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:55:57 ] >>588 問2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7832.txt これでいい? 問題文にあった3つの動作例でしかチェックしてない。
596 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:07:55 ] [1] 授業単元:プログラム・C言語 [2] 問題文(含コード&リンク): 以下のようなプログラムを作成しなさい まず標準入力から、姓と名をそれぞれ別のchar配列型変数で受取る。 次に別の空のchar配列型変数に名と姓の間にスペースを挿入して格納し、表示するプログラム。 ※ヒント 空のchar配列型変数に「名」を入れる時はstrcpy()、スペースと「姓」を追加する時はstrcat()を使う とよい。 実行例 ./a family name? sato first name? zin zin sato [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名 gcc [3.3] 言語: C [4] 期限: 2008/10/25 [5] その他の制限:まだ序の口レベルです。 #include <stdlib.h>のみでお願いします。 何卒よろしくお願いします。
597 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:19:28 ] >>592 #include <stdio.h> int main(void) { int n, i, sum=0; printf("値を入力してください\n"); scanf("%d", &n); if(n < 2 || n > 100) { printf("値が範囲内にありません\n"); } else { for(i=1; i<=n; i++) { sum += i; } printf("総和 = %d\n", sum); } return 0; }
598 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:22:11 ] >>596 #include <stdio.h> #include <string.h> int main() { char family_name[16], first_name[16], name[32]; printf("family name? "); gets(family_name); printf("first_name? "); gets(first_name); strcpy(name, first_name); strcat(name, " "); strcat(name, family_name); printf("%s", name); return 0; }