- 1 名前:デフォルトの名無しさん [2007/10/23(火) 23:48:35 ]
- あなたが解けない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++の宿題を片付けます 97代目 pc11.2ch.net/test/read.cgi/tech/1191937213/
- 116 名前:デフォルトの名無しさん [2007/10/24(水) 23:50:14 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5141.txt 上記のプログラムは、1製品にのみ対応したものであるが、複数製品に対応したものに 書き換えなさい。また製品数の目安は100製品程度とする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C++ [4] 期限: 10月25日18時 [5] その他の制限: よろしくお願いします
- 117 名前:デフォルトの名無しさん [2007/10/24(水) 23:50:19 ]
- >>111
>>86と同じ人?Fizz Buzz問題でも今回は内容Fizz Buzzじゃないんだ。 >>86はもういいの? とりあえず1問答えてるし、先客が終わるまで待てて。
- 118 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:50:55 ]
- >>110
CGがなんぼのもんじゃい!
- 119 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:51:16 ]
- >>112
一応作ったけどそのテンプレおかしい気がする。 入力文字列の最後に空白付けないと止まらないかも。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5142.txt
- 120 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:53:36 ]
- >>84
HP-UXかHI-UXな人だな?
- 121 名前:111 [2007/10/24(水) 23:54:12 ]
- >>117
すいません。同一人物じゃないです。 >>86の人のテンプレコピペしたんで授業単元変えるの忘れました
- 122 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:55:50 ]
- >>101はもういないのか?
剰余無し版 #include<stdio.h> #include<stdbool.h> bool isMultipleOf( int n, int m ) { int idx; for( idx = 1; idx != 100; ++idx ) { if( m == idx * n ) return true; } return false; } char * ff( int n ) { static char buffer[BUFSIZ]; return isMultipleOf( 15, n) ? "FizzBuzz": isMultipleOf( 5, n) ? "Fizz": isMultipleOf( 3, n) ? "Buzz": (sprintf(buffer,"%d", n ), buffer); }
- 123 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:58:53 ]
- >>114
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5143.txt
- 124 名前:デフォルトの名無しさん [2007/10/24(水) 23:58:56 ]
- >>119
テンプレの /* コンマかピリオドならstr2の位置を1つ左 */ } } /* str2(単語)に終端文字を追加 */ ------------------------------------------------------- 上記の部分が /* コンマかピリオドならstr2の位置を1つ左へ */ } /* str1を1文字右に移動 */ } /* str2(単語)に終端文字を追加 */ でした。 真ん中の/* str1を1文字右に移動 */を追加お願いします。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:59:42 ]
- >>111の
if(num<=300+0*10 && day>=inc_day) の部分がヘン というかこのプログラム、何をするプログラムなのかが一見してわからない
- 126 名前:デフォルトの名無しさん [2007/10/25(木) 00:02:22 ]
- >>121
そなの?変なこと言ってすまん。 いまチャレンジしてるから、ちっと待って。
- 127 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:04:37 ]
- >>124
i++; を追加してくれ。忘れてた。 まあ、それでも入力の最後に空白付けないといけないのは 変わらない気がするんだが。テンプレがそれならいいのかな。
- 128 名前:デフォルトの名無しさん [2007/10/25(木) 00:05:46 ]
- >>125
日にちと商品の在庫不足数を数字のみで表示してるんじゃない? 商品のほうはランダムで数字作成してるみたいだし。 〜日 在庫不足〜個みたいな。でも、 >>複数製品に対応したものに ってのがわからない。
- 129 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:08:09 ]
- >>128
>>111の if(num<=300+0*10 && day>=inc_day) inc_day=day+3; で、あきらかに 0*10 という意味不明な演算をしている件について
- 130 名前:93 mailto:sage [2007/10/25(木) 00:08:40 ]
- >>85
正規分布を使いアルゴリズムに通して正解率を出すプログラムなんだけど |Σ|を行列の値(対角成分の積)として計算すると全然正解率がでない。 どこがおかしいのかを見るために 試しに|Σ|に対角成分の和をいれてみて計算すると正解率98%だった。 ただ計算方法が違うのであっているかわからない。 正規分布について調べると|Σ|はΣの固有値とあるんです。 どうなんでしょうかね。
- 131 名前:111 [2007/10/25(木) 00:09:32 ]
- >>125
簡単に書くと、はじめ300個あった物が毎日80〜120ずつ減っていき、 在庫が300+0*10以下になったら、その3日後に、350個プラスされるって感じです。 ちなみに、300+0*10の0の部分は1でも2でもなんでもよいです
- 132 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:15:22 ]
- >>125
別に変じゃなくないか? numが一定値以下で、かつ現在発注中(到着待ち)じゃなけりゃ発注すんだろ? inc_dayには発注日+3が入っているから、到着待ち中はday<inc_dayになる
- 133 名前:デフォルトの名無しさん [2007/10/25(木) 00:16:59 ]
- >>127
「i++;」を付ける位置は以下で良いですか? 付けてみたのですが分割後に出力される最後の単語が文字化けしてしまいます。 後、テンプレ見直してみましたが、タイプミスや書き残しはもうないので仕様はこれでいいと思います。 /* コンマかピリオドならstr2の位置を1つ左へ */ } /* str1を1文字右に移動 */ i++; } /* str2(単語)に終端文字を追加 */
- 134 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:17:32 ]
- プログラマは数学が苦手なんです。
プログラマはコーヒーとタバコが好きなんです。
- 135 名前:デフォルトの名無しさん [2007/10/25(木) 00:18:36 ]
- >>131
納得したその計算してたのね。
- 136 名前:86 mailto:sage [2007/10/25(木) 00:19:18 ]
- >>86>>89>>91>>96>>98>>101>>>>115>>122
本当にありがとうございます 大変助かりげぶき か
- 137 名前:デフォルトの名無しさん [2007/10/25(木) 00:20:34 ]
- >>134
英語も苦手だよ。後、眠気覚まし+暇つぶしにガムもスキだよ。
- 138 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:30:39 ]
- >>133
i++はそこでいいよ。 テンプレどおりにやると入力の最後に空白入れないとバグる。 str1[i] != ' ' のとこを str1[i] != ' ' && str1[i] != '\0' にすればたぶんOK.
- 139 名前:86 mailto:sage [2007/10/25(木) 00:30:55 ]
- ミス……
本当に助かりました ありがとうございます
- 140 名前:22 mailto:sage [2007/10/25(木) 00:34:15 ]
- 自分の問題に対してレスしてくれたり、といてくれた人達、
本当にありがとう!! 助かりました!!!!
- 141 名前:デフォルトの名無しさん [2007/10/25(木) 00:37:59 ]
- >>138
提出の際に聞いてみます。 期限ぎりぎりで半ば諦めていたので、本当に感謝ありがとうです。 手直しも直ぐにやっていただき助かりました。
- 142 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:51:09 ]
- [1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): 1:y=sin(x) x=0から4πまで、512分割して、yの値を求め、ファイルに書き込む。 2:y=sin(x-π/2) x=0から4πまで、512分割して、yの値を求め、ファイルに書き込む。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: bcc [3.3] 言語:C [4] 期限:なるべく早めに [5] その他の制限: 特にないです。 よろしくお願いします。
- 143 名前:デフォルトの名無しさん [2007/10/25(木) 01:00:46 ]
- #include<stdio.h>
#include<math.h> main(){ int n; FILE *fp=fopen("sin.txt", "w"); for(n=0;n<=512;n++)fprintf(fp,"sin(π×%d/512) = %f\n",n,sin(4*M_PI*(n+0.0)/512)); }
- 144 名前:デフォルトの名無しさん [2007/10/25(木) 01:07:18 ]
- こっち訂正汁
for(n=0;n<=512;n++)fprintf(fp,"sin(4π×%d/512) = %f\n",n,sin(4*M_PI*(n+0.0)/512)); for(n=0;n<=512;n++)fprintf(fp,"sin(4π×%d/512 - π/2) = %f\n",n,sin(4*M_PI*(n+0.0)/512-M_PI/2));
- 145 名前:デフォルトの名無しさん [2007/10/25(木) 01:13:41 ]
- #include<stdio.h>
#include<math.h> main(){ FILE *fp=fopen("sin.txt", "w"); for(int n=0;n<=512;n++)fprintf(fp,"sin(4π×%d/512 - π/2) = %f\n",n,sin(4*M_PI*(n+0.0)/512-M_PI/2)); fclose(fp); }
- 146 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:15:03 ]
- >>63
テンプレがおかしい。指示通りにやるとセグメントエラーを起こす。
- 147 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:17:10 ]
- >>111
まずはこんなので ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5145.txt
- 148 名前:デフォルトの名無しさん [2007/10/25(木) 01:32:23 ]
- >>147
ありがとうございます。 残念ながら、今はプログラミングができる環境じゃないので、明日試して見ます。
- 149 名前:142 mailto:sage [2007/10/25(木) 01:32:29 ]
- >>143>>144>>145
早速答えていただき、本当にありがとうございます! 助かりました!
- 150 名前:デフォルトの名無しさん [2007/10/25(木) 01:47:38 ]
- >>146
一応、>>127のi++;の付け加えでちゃんと動いてくれるので、OKです。 コンパイル通って、動作も「,.」削除+空白削除+分割表示できてるので。
- 151 名前:デフォルトの名無しさん [2007/10/25(木) 01:48:52 ]
- i++;じゃなくてstr1[i] != ' ' && str1[i] != '\0'の変更ですね。
- 152 名前:147 mailto:sage [2007/10/25(木) 02:07:00 ]
- >>111
念のため、 #define DAYS 10 // 販売期間 #define ITEMS 10 // 製品の種類数 の部分を #define DAYS 1000 // 販売期間 #define ITEMS 100 // 製品の種類数 と書き換えると題意に沿った回答になる。 ただし、このとき、出力が最悪200000行になるので注意。
- 153 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 06:10:11 ]
- >>82
課題にはそのとおり書いてあったんですが・・。 自分には問題の@〜Bの意味がさっぱりで・・・。 >>83 それが答えってことになるのですか?
- 154 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 06:30:23 ]
- こたえだね。
- 155 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 07:17:13 ]
- 答えかどうかもわからないって…
- 156 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:26:14 ]
- [1] 授業単元:情報システム基礎
[2] 問題文(含コード&リンク):このC言語で作られたプログラムをC++に変えて下さい kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5146.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: すいません、よくわかりません。 講義では「Microsoft Visual Studio .NET 2003」を使用しています [3.3] 言語: CからC++へ [4] 期限: 明日が終わるまで [5] その他の制限: 特になし 明日までと急なことで申し訳ありませんがお願いします。
- 157 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:59:01 ]
- >>156
本当にそんな問題が……?
- 158 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 10:04:20 ]
- >>156
すでにC++ですっていって提出しちゃえば? 問題が曖昧すぎ
- 159 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 10:18:09 ]
- プログラムは配布されたプリントから打ち込みましたが、
問題文は文章でなく口頭で出題されました。全くこの通りです。 すでにC++になっているんでしょうか?
- 160 名前:156 ◆B5khfT.h4o mailto:sage [2007/10/25(木) 10:19:39 ]
- すいません、今更ですがトリップをつけるのを忘れていました
- 161 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 10:56:23 ]
- >>159
拡張子cppでコンパイルしてみな
- 162 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 11:03:08 ]
- class Helonを作ってコンストラクタで三辺の長さで初期化して
get()で返すとか、そういう風にすればどう? あとprintfをcoutに無理矢理直すとそれらしく見える。別にprintfでも C++の範囲内なのだが。
- 163 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 11:31:04 ]
- >>156
無理矢理C++にしてみた。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5147.txt
- 164 名前:デフォルトの名無しさん [2007/10/25(木) 13:40:38 ]
- >>147
一つ目の製品はちゃんと発注するんですけど、二つ目以降は発注が行われないんですけど どうすればいいんですか?
- 165 名前:147 mailto:sage [2007/10/25(木) 14:00:28 ]
- >>111 >>164
// 製品情報初期化 int ADD_NUM = (rand()%81)+FIRST_NUM; int ADD_NUM_LOWER = (rand()%31)+50; int ADD_DAYS = (rand()%5)+1; の部分に // 製品情報初期化 int ADD_NUM = (rand()%81)+FIRST_NUM; int ADD_NUM_LOWER = (rand()%31)+50; int ADD_DAYS = (rand()%5)+1; inc_day = 0; を書き足せばよかったみたい。 ということでソースは下記に。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5148.txt >>152も参考に。
- 166 名前:デフォルトの名無しさん [2007/10/25(木) 14:06:31 ]
- >>165
できました。本当にありがとうございました。
- 167 名前:65です [2007/10/25(木) 14:48:32 ]
- 遅くなりました。すいません。
変数を州ごとに集計して平均を出す部分がよくわかりません。 >67 ファンクションについてはまだ授業で習っていないので、先生に避けたほうがいいと言われました。 でも、Voidとか変数のReferenceとか基本的なことは本で読んだので、使ってくださってもけっこうです。 提出するコードは、ファンクションを使わないように書き換えます。 >70 はい。州の略はその通りで大丈夫です。
- 168 名前:デフォルトの名無しさん [2007/10/25(木) 15:30:40 ]
- >>147さん
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5149.txt っていう課題が新たに出されたので、やっていただけませんか? 以前のプログラムがとても見やすかったので、よろしくお願いします。
- 169 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 16:52:28 ]
- >>65 >>167
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5150.txt ・しっかりとgetlineを使っている。 ・line.substr(13, 2)とline.substr(23, 4)を使って読み込んでいるので、gasprices.txtの配置がずれたら限りなくアウト。
- 170 名前:デフォルトの名無しさん [2007/10/25(木) 16:54:31 ]
- >>14
まだ、待っています。出来る方お願いします。 アドバイスはいくつか貰ったのですが、関数から関数への受け渡しがうまく行きません。
- 171 名前:169 mailto:sage [2007/10/25(木) 17:00:34 ]
- >>65 >>167 続き
・1行目にある #include <algorithm> は削除。 ・出力は一応CSV のはず。 ・アメリカの略号に誤入力があるかもしれない。 ・アメリカの州って50だったっけ?
- 172 名前:コンパイルは出来たがあってないぞ [2007/10/25(木) 17:06:21 ]
- #include<stdio.h>
#include<string.h> void d_word(char st[], int pos, int len){ int l=strlen(st); int i; for(i=pos; i<=l-len; i++) { st[i] = st[i+len]; }} void search_del(char st1[], char st2[]){ int i, j; int m1=strlen(st1); int m2=strlen(st2); for(i=0; i<=m1-m2; i++) { for(j=0; j<m2; j++) { if(st1[i+j] != st2[j]) break; } if(j=m2) { d_word(st1, i, m2); m1 -= m2; }}} int main(){ char str1[256], str2[256]; printf("string? : "); gets(str1); printf("deleted word? : "); gets(str2); search_del(str1, str2); puts(str1); return 0;}
- 173 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 17:22:18 ]
- お願いします
問題【0からa-1までの整数の乱数をn個発生させ、発生した整数のヒストグラムを表示しなさい。 ただし。a<21とし、aとnはキーボードから入力する】 ______________________________________________とりあえずいままで作成したコードです__________________________________ #include <stdio.h> #include <math.h> #include <stdlib.h> main(void) { int n,a,b,i,val; int c[21]; printf("0からa-1までの整数の乱数をn個発生させ、\n"); printf("発生した整数のヒストグラムを表示させます\n"); printf("1から21までの任意の整数aを入力してください。\n"); scanf("%d",&a); printf("任意の正の整数nを入力してください。\n"); scanf("%d",&n); if(a<=0||a>=22) {printf("aの値を入力しなおしてください。\n");} else{ val=(double)rand()/(RAND_MAX+1)*a; if(n<=0) {printf("nの値を入力しなおしてください。\n");} else { for (i=0; i<=(a-1); i++) {printf("aが%dのとき、%d回\n",i,c[val]); c[val]=c[val]+1;} } } }___________________________________________________________________________________________________________________________
- 174 名前:173 mailto:sage [2007/10/25(木) 17:24:12 ]
- 結果表示はヒストグラムというか
〜は〜回という形式にします volとかそのへんの扱いかたがよく分からずに参っております よろしくお願いいたします。
- 175 名前:156 ◆B5khfT.h4o mailto:sage [2007/10/25(木) 17:26:49 ]
- レスしてくれた方やプログラムを作ってくれた>>163さん、ありがとうございました。
とりあえず課題を出したうえで、C++にするのはどういうことか詳しく聞いてみます。
- 176 名前:65です [2007/10/25(木) 17:31:19 ]
- >169さん
丁寧にありがとうございます。 はい、アメリカの州は50です。 ところで、私は途中まで以下のようにコードを組み立てたのですが、以下のようなやり方でも、プログラムを完成させることはできますか? #include <iostream> #include <string> #include <fstream> using namespace std; int main (int argc, char **argv) { char peek; ifstream myFile; string cityName, stateName; float gasPrice; myFile.open("gasprice_file.txt"); while((peek = myFile.peek () ) ! = EOF) { myFile >> cityName; myFile >> stateName; myFile >> gasPrice; If(! myFile) { myFile.clear(); cityName = cityName + " " + stateName; myFile >> sateName; myFile >> gasPrice; { myFile.close(); return 0; }
- 177 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 17:53:30 ]
- >>173
#include <stdio.h> #include <stdlib.h> #include <time.h> main(void) { int n=-1,a=0,b,i,val,c[21]; for(i=0;i<21;i++) c[i]=0; srand((unsigned int)time(NULL));// 乱数の初期化 printf("0からa-1までの整数の乱数をn個発生させ\n"); printf("発生した整数のヒストグラムを表示します。\n"); printf("1から21までの任意の整数aを入力してください。\n"); while(!(a>0&&a<22)){ scanf("%d",&a); if(a<1||a>21) printf("aの値を入力しなおしてください。\n"); } printf("任意の正の整数nを入力してください。\n"); while(n<0){ scanf("%d",&n); if(n<0) printf("nの値を入力しなおしてください。\n"); } for(i=0;i<n;i++){ val=(double)rand()/(RAND_MAX+1)*a; c[val]++; } for (i=0; i<=(a-1); i++) printf("%d = %d回\n",i,c[i]); } 表示はヒストグラムでなくてもいいのかな。
- 178 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 17:58:47 ]
- >>170
アドバイスって言うか>>20で回答もらってるじゃない。 ・if(j=m2)をif(j==m2) ・printf("%d\n", st1);をprintf("%s\n", st1); この2点の変更だけで動くはず。変更の仕方が間違ってるんだと思う。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:06:46 ]
- >>177
whileの条件とループの中のifで2回判定するのはムダ
- 180 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:22:58 ]
- >>177の訂正。入力部分。
while(scanf("%d",&a),!(a>0&&a<22)) printf("aの値を入力しなおしてください。\n"); printf("任意の正の整数nを入力してください。\n"); while(scanf("%d",&n),n<0) printf("nの値を入力しなおしてください。\n"); >>179の指摘したムダを省くと多分こうなると思います。
- 181 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:26:06 ]
- ってやっちまった。>>180だと文字入力したら無限ループしてしまう。
while(scanf("%d",&a),!(a>0&&a<22)){ printf("aの値を入力しなおしてください。\n"); fflush(stdin); } printf("任意の正の整数nを入力してください。\n"); while(scanf("%d",&n),n<0){ printf("nの値を入力しなおしてください。\n"); fflush(stdin); } こうでした。
- 182 名前:デフォルトの名無しさん [2007/10/25(木) 18:34:53 ]
- >>178
この様にコード書いたけどコンパイラが通らないです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5151.txt
- 183 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:38:11 ]
- >>182
見ずにコメント。1.改行コード 2.全角スペース そろそろコンパイラが吐いたエラー貼ったらどうだ?
- 184 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:42:43 ]
- >>182
#include<string.h>を追加。もしかしてstr〜の関数習ってない?
- 185 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:45:55 ]
- >>177
ありがとうございます 実行してみたところ、 0以外の数字が何度やっても0回になってしまいますが これはどうすればよろしいのでしょうか?
- 186 名前:デフォルトの名無しさん [2007/10/25(木) 18:50:01 ]
- >>183
エラーが無いので下に張りました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5152.txt >>184 追加しても効果なかったです。関数str〜習ってます。
- 187 名前:デフォルトの名無しさん [2007/10/25(木) 18:52:46 ]
- >>186
「エラーが無いので」× 「エラーが長いので」○
- 188 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:54:50 ]
- 1] 授業単元:C言語
[2] 問題文:ファイルの内容を読み込んで、下記の例のように読み込んだ内容を ディスプレイに表示させよ。 ファイルの内容 誕生年:2000 誕生月:1 誕生日:2 身長:120.0 体重:21.0 名字:Kouno 名前:Hiro 実行例 氏名 Kouno Hiroです。 生年月日は2000年1月2日です 身長120,0cm 体重21,0kgです [3] 環境 [3.1] OS: UNIX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2007年10月26日 [5] その他の制限: ライブラリ関数は使っても大丈夫です。 読み込むことはできたのですが、fgetsを使うと「誕生年:2000」と読み込んで しまって2000だけ表示させることができません。 よろしくお願いします。
- 189 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:57:41 ]
- >>185
valにちゃんと値が入ってないのかな。 val=(double)rand()/(RAND_MAX+1)*a; を val=rand()%a; に変えてみてください。 >>186 インデントを全角スペースでやってない?
- 190 名前:デフォルトの名無しさん [2007/10/25(木) 19:04:06 ]
- >>189
盲点、スペースを全角でやっていました。 スペースを全て消したらコンパイルが通って、ちょんと動きました。 全角スペースでエラー返されるんですね、勉強になりました。 次からはスペースの全角/半角に気をつけます。
- 191 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 19:09:39 ]
- >>189
ありがとうございます!ちゃんとできました 助かりました
- 192 名前:デフォルトの名無しさん [2007/10/25(木) 19:57:16 ]
- >>188
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5153.txt
- 193 名前:169 mailto:sage [2007/10/25(木) 20:16:30 ]
- >>176
できます。あなたらならできます。
- 194 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 20:39:32 ]
- [1] 授業単元:プログラミング実験
[2] 問題文(含コード&リンク): case.f7.ems.okayama-u.ac.jp/statedu/lispstat-book/node85.html にならって以下のデータ平均分散を用いて確率を出せ。10次元です。 データ -18.858 1.046 -1.616 4.023 1.857 4.207 6.451 0.989 -3.807 0.744 平均 -6.388222e+00 -1.383500e+01 -1.249702e+01 -3.617623e+00 2.185494e-01 3.840833e+00 6.477101e+00 -1.552781e+01 4.537848e+00 -2.995257e+00 分散 1.504899e+01 2.376009e+01 2.176429e+01 2.650845e+01 2.850247e+01 5.442906e+01 3.594814e+01 7.991224e+01 2.946554e+01 3.397208e+01 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2007年10月26日まで [5] その他の制限: なし
- 195 名前:78&153 mailto:sage [2007/10/25(木) 20:56:27 ]
- すいません、問題Bに間違い&追加がありました。
実装仕様もあって、書いてたことが違ってました。 以下が訂正問題です。 [1] 授業単元:文字列操作プログラム [2] 問題文(含コード&リンク): 配列とポインタを使用し、文字列操作を行うプログラムを作成せよ。 @独自のstrlen関数mystrlen関数を自作する。 文字列のポインタを受け取り、文字列の長さを返す関数を作成する。 A独自のstrcpy関数mystrcpy関数を自作する。 文字列のポインタ2つを受け取り、文字列のコピーを行う関数を作成する。 B独自のatoi関数myatoi関数を自作する。 数値文字列のポインタを受け取り、数値を返す関数を作成する。 C独自のitoa関数myitoa関数を自作する。 数値を受け取り、指定された基数で文字列変換を行う関数を作成する。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C言語 [4] 期限:2007年10月26日朝5:00まで >>196に続く
- 196 名前:78&153 mailto:sage [2007/10/25(木) 20:56:58 ]
- >>195の続き
[5] その他の制限:実装仕様として、 @int mystrlen(const char*s) 第一引数:文字列のポインタ 戻り値:文字列の長さを返す Achar*mystrcpy(char*s1,const char*s2); 第一引数:コピー先バッファのポインタ 第二引数:コピー元文字列のポインタ 戻り値:第一引数の文字列へのポインタを返す Bint myatoi(const char*nptr); 第一引数:変換元の数値文字列 戻り値:変換された値を返す Cchar*myioa(int value,char*buff,int radix); 第一引数:変換元の整数 第二引数:変換後の数値文字列を格納するバッファのアドレス 第三引数:基数(何進数で変換するか。2〜36の範囲内で指定可能) 戻り値:第二引数の文字列へのポインタを返す と、なっております。 すいませんが回答の方をよろしくお願いします
- 197 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:03:26 ]
- >>66 = >>71 = >>93 = >>130 = >>194
- 198 名前:デフォルトの名無しさん [2007/10/25(木) 21:28:40 ]
- >>195 >>196
いまさら?これから変更するの面倒だし 期限:2007年10月26日朝5:00 ってことは残り7時間、無理。 がんばれノシ
- 199 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:31:16 ]
- 標準ライブラリ使っちゃダメって書いてないんだからそのまま引数渡せばいいだろ。
- 200 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:31:22 ]
- >>123
ありがとうございます! 感謝します!
- 201 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:36:03 ]
- よろしくお願いします。
[1] 授業単元:C++プログラミング [2] 問題文(含コード&リンク): 次のクラス定義を参照して、関数 func 内の処理を記述してください。 関数 func 内では p が派生クラス MagazineMotorcycle のインスタンスを指すかどうかを調べて、 もしそうならメンバー関数 Reserve を呼び出してください。そうでなければ false を返してください。 class Magazine { public: virtual bool Order(int amount = 1) = 0; }; class MagazineMotorcycle : public Magazine { public: bool Order(int amount = 1) {} bool Reserve() {} }; bool func(Magazine* p) { // 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理 } [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C++ [4] 期限: 10/26 12:00 [5] その他の制限:なし
- 202 名前:78&153 mailto:sage [2007/10/25(木) 21:45:03 ]
- >>198
昨日書き込んで、今日間違い気づいたんですよorz できればお願いします。自分にとっては、これってホントに初級編!?って いうぐらい難しい
- 203 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:46:42 ]
- >>201
bool func(Magazine* p) { // 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理 if (MagazineMotorcycle* mm = dynamic_cast<MagazineMotorcycle*>(p)) mm->Reserve(); return false; } これでおk?
- 204 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:03:47 ]
- [1] 授業単元:データ構造とアルゴリズム1
[2] 問題文(含コード&リンク):stack.cpp 中のpushとpop関数を完成せよ。 stack.cpp:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5154.txt [3] 環境 [3.1] OS:win xp [3.2] Microsoft Visual Studio .NET 2003 [3.3] 言語:c++ [4] 期限:2007年10月26日9:30まで [5] その他の制限:(どこまで習っているか)構造体、ファイル処理まで どうかよろしくお願いします。
- 205 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:10:08 ]
- >>203
ありがとうございます。 こちらを提出してみます。
- 206 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:12:28 ]
- >>201
bool func(Magazine* p) { // 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理 if (MagazineMotorcycle* mm = dynamic_cast<MagazineMotorcycle*>(p)) return mm->Reserve(); return false; } こんどこそおk?
- 207 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:26:15 ]
- >>204
// データvalをスタック x に積む void push(int *x,int val) { // (1) スタックがオーバフローかどうかをチェック if (stack_pointer < stack_size) { // (2) オーバフローでなければデータ val をスタック x につむ x[stack_pointer++] = val; } } // データをスタック x からおろす void pop(int *x) { // (1) スタックがアンダーフローかどうかをチェック if (stack_pointer > 0) { // (2) アンダーフローでなければスタックxからデータをおろして、 // スタックポインターを調整 stack_pointer--; } } これでおk?
- 208 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:41:25 ]
- >>207おkです。感謝です。
本当にありがとうございます。 助かりました。
- 209 名前:57 mailto:sage [2007/10/25(木) 22:54:44 ]
- >>60
レスありがとうございます。 今日の朝、main関数を作って動かしてみたのですが、 おかしいです。 例えば、連結リストのaの値を10、11、12とすると、 11、10、56787 と、一番最後が変な数値になってしまいます。 並び替える前に表示すると、10、11、12となってちゃんと動作するので、 表示する関数は間違ってないと思います。 一応補足として、自分が扱っている連結リストは一番最初に、aに値が 含まれていない要素があり、その後からaに値が含まれる要素が並びます。
- 210 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:10:52 ]
- >>202
#include<stdio.h> int mystrlen(const char *s) { int len=0; while(*s++!='\0') len++; return len; } int myatoi(const char *nptr) { int i,n=0,sign=0,len=0; const char *s=nptr; while(*s++!='\0') len++; if(*nptr=='-'){ sign++; len--; *nptr++; } for(i=0;i<len;i++) n=10*n+*nptr++-'0'; return sign ? -n : n; } mystrcpy,myitoaは>>83のままで仕様満たしてるのでそれ以外を。
- 211 名前:デフォルトの名無しさん [2007/10/25(木) 23:11:09 ]
- >>147さん
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5149.txt っていう課題が新たに出されたので、やっていただけませんか? 以前のプログラムがとても見やすかったので、よろしくお願いします。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:19:38 ]
- >>168さん、この生産管理プログラムの期限はいつまででしょうか。
- 213 名前:78&153 mailto:sage [2007/10/25(木) 23:21:11 ]
- >>83>>210
遅い時間に本当にありがとうございます。 お手数おかけ致しました。(TT)
- 214 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:21:23 ]
- >>209
糞リストの仕様を書かなかったほうが悪い。
- 215 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:22:42 ]
- お願いします!!
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): 1:int型整数をchar型配列の文字列に変換するitoa関数を作れ 2:long型整数をchar型配列の文字列に変換するltoa関数を作れ 3:float型小数をchar型配列の文字列に変換するftoa関数を作れ [3] 環境 [3.1] OS: XP sp2 [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語: C [4] 期限: 明日26日(金)の16時まで
- 216 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:33:35 ]
- >>215
1. char* itoa(int n){static char c[16];sprintf(c,"%d",n);return c;} 2. char* ltoa(long n){static char c[16];sprintf(c,"%ld",n);return c;} 3. char* ftoa(float n){static char c[16];sprintf(c,"%f",n);return c;}
|

|