[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/30 10:49 / Filesize : 157 KB / Number-of Response : 461
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 97代目



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/

92 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:52:48 ]
>>73
#include <stdarg.h>
int print(const char*f, ...){
va_list a;
va_start(a, f);
vprintf(f,a);
va_end(a);
}

93 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:01:02 ]
>>85
固有値ではないってことだね。
|Σ|は行列の値ってことか。

ってことは間違っている原因は|Σ|じゃないってことか。


94 名前:73 mailto:sage [2007/10/24(水) 23:01:09 ]
>>92
すみません、後出しで悪いですが、
printfと同様の書式付き関数は使用しないで作ってください。
とにかく考えてくださりありがとうございます。

95 名前:12 mailto:sage [2007/10/24(水) 23:03:56 ]
>>62
迅速な対応ありがとうございます。
参考にさせて頂きます。

96 名前:デフォルトの名無しさん [2007/10/24(水) 23:04:06 ]
#include<stdio.h>

main(){
int a=3,b=5,n;
for(n=1;n<101;n++){
if(n!=a && n!=b)printf(" %d,",n);
else {if(n==a){a+=3;printf(" Fizz");}
if(n==b){b+=5;printf(" Buzz");}
if(n<100)printf(",");
}}}

97 名前:デフォルトの名無しさん [2007/10/24(水) 23:08:51 ]
[1] 授業単元:コンピューターグラフィックス
[2] 問題文CGを作れ(自由課題)
ただし以下の評価項目に関して採点を行うのでこれを満たすようなCGを作成すること
1.CGアニメーションになっていること
2.マウスによってなんらかの操作ができる
3.ホップアップメニューが使用できること
4.シェーディングが適切に行われていること
5.テクスチャマッピングが使用されていること
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:11月6日
[5] その他の制限:あまりにも難しすぎる表現はNG
いきなり自由課題しろとか言われても俺にはイミフ
誰か助けてクレヨン

98 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:11:59 ]
ナンセンス?

#include<stdio.h>

char * fizzBuzz( int n )
{
static char buffer[BUFSIZ];
return n % 15 == 0 ? "FizzBuzz" :
n % 5 == 0 ? "Fizz" :
n % 3 == 0 ? "Buzz" :
(sprintf( buffer, "%d", n ),
buffer);
}

int main()
{
int m = 0;
while( m != 100 )
{
++m;
printf("%s\n", fizzBuzz( m ) );
}
return 0;
}


99 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:12:31 ]
>>97
それほんとにいきなり出されたのか?w

100 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:15:18 ]
printf同様って・・・
300行くらいいるんじゃね?



101 名前:デフォルトの名無しさん [2007/10/24(水) 23:15:38 ]
剰余を使わず文字数が少なくてこう出力して
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19,

最後は , をつけないプログラム

102 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:16:19 ]
>>80
strDate, strTimeをどう扱うかによって回答が変わるけど、
こんなのを期待されてそう。

DateTimeClass &operator = (DateTimeClass &a, const DateTimeClass &b)
{
(DateClass &)a = (const DateClass &)b;
(TimeClass &)a = (const TimeClass &)b;
strcpy(a.strDate, b.strDate);
strcpy(a.strTime, b.strTime);
return a;
}


103 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:16:43 ]
>>97
どう考えてもOpenGLとかDirectXとかが必要になりそう気がする……
どう考えてもcだけじゃコンピュータグラフィックは作れなさそうな気がする……

104 名前:デフォルトの名無しさん [2007/10/24(水) 23:18:49 ]
>>99
今まではただ惑星とかロボット作ってそれをキーボード入力で動かしてたしてただけだった
だけど授業でシェーディングとかの話し始めて出た課題がこれ
参考にできるサイトなどなんでもいいので参考になるものを教えてください

105 名前:デフォルトの名無しさん [2007/10/24(水) 23:20:32 ]
>>97
OpenGLいるな。。。じゃあここはスレ違いか
失礼しました

106 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:20:48 ]
>>104
wisdomsoft OpenGLでググれ
もしくは単位をあきらめる

107 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:22:14 ]
>>100
7行スレで7行printfがあったとか何とかって言ってた。

108 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:22:26 ]
>>104
てっきりプログラミングの授業の第一回目とかで出されたのかと思った>いきなり

109 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:23:04 ]
>>102
ありがとうございます。
そのように解答します。

110 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:23:25 ]
>>104
少なくともCでCGできる時点でこのスレの住人の3分の2くらいよりレベル上だろうな



111 名前:デフォルトの名無しさん [2007/10/24(水) 23:23:32 ]
[1] 授業単元:Fizz Buzz問題
[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] その他の制限:

よろしくお願いします


112 名前:デフォルトの名無しさん [2007/10/24(水) 23:26:27 ]
>>63
だれか、お願いします。
現在作成中でしたら、おとなしく待ってます。

113 名前:デフォルトの名無しさん [2007/10/24(水) 23:28:43 ]
>>106
ググって来るわ
OpenGLの課題片付けてくれるスレってある?

114 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:29:11 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
class BaseClass {
char* name;
public:
BaseClass(const char* p) {name = strdup(p);}
~BaseClass() {free(name);}
};

class MyClass : public BaseClass
{
int count;
public:
MyClass(const char* p, int n = 0) : BaseClass(p), count(n)
{
// ...
}
};

ソースコードを参考にして派生クラスでの生成と消滅の順序を画面に
表示するプログラムを作成してください。
プログラムを実行し、派生クラスと基本クラスのコンストラクタ、
デストラクタが呼ばれる順序を確認してください。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限: 10/26まで
[5] その他の制限:なし

お願いします。

115 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:44:55 ]
>>101
とりあえず剰余有版はこれでOK?
剰余無し版はfizzBuzz関数の実装を変更すればいいし。
就職活動がんばってな

#include<stdio.h>

char * fizzBuzz( int n )
{
static char buffer[BUFSIZ];
return n % 15 == 0 ? "FizzBuzz" :
n % 5 == 0 ? "Fizz" :
n % 3 == 0 ? "Buzz" :
(sprintf( buffer, "%d", n ), buffer);
}

int main()
{
int m;
for( m = 1; m <= 100; ++m )
{
printf( (m == 100 ? "%s\n" : "%s,"), fizzBuzz(m));
}
return 0;
}


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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<157KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef