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


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

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



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/

102 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:13:13 ]
>>100
そこだけ見るとゼペット爺さんなんか痛い子

103 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:18:39 ]
>>100
51文字目にカンマやピリオドがあったらどうする?

1.直前の単語ごと次の行へ
2.カンマやピリオドが行の先頭にあっても構わない
3.行の後ろにこっそりつける

104 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:29:53 ]
>>103
ピリオドや?などは単語の一部という扱いでいいと思います
ですので「1」で大丈夫です

105 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:10:26 ]
>>97
>>76は?もう期限近いけどさ。

106 名前:デフォルトの名無しさん [2008/10/06(月) 04:35:00 ]
>>97
眠れないので作ってみた
void teki_01_dp(void)
{
static float n = 0;
static float inc = 0.1;

for (cnt = 0; cnt < 17; cnt++) {
if (init_fl[cnt] != 0) {
/* 出現済みの敵の場合 */
/* 次の座標を計算 */
#if 0
spx[cnt] += spxg[cnt];
spy[cnt] += spyg[cnt];

zx[cnt] += FrameTime * spx[cnt];
zy[cnt] += FrameTime * spy[cnt];
#else
zx[cnt] += cos(n * PI / 180) * FrameTime * 100;
zy[cnt] += sin(n * PI / 180) * FrameTime * 100;
n += inc;
if (n >= 180.0) {
inc = -0.1;
} else if (n <= -180.0) {
inc = 0.1;
}
#endif
}
}
}
速度とかは超適当す。

107 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/06(月) 07:10:44 ]
>>105
期限は今週中なら一応大丈夫です。

>>106
これはどこのソースに書き込みましたか?

108 名前:106 mailto:sage [2008/10/06(月) 07:40:39 ]
>>107
うpろだの内容はそのままビルドできんかったので
1.zako_01.cppを新規に作成
2.zako.cppをコピペ
3.teki_reqをtei_01_reqに変更
4.teki_dpをteki_01_dpに変更
5.読みにくかったので全面書き替え!!
5.teki_01_dpに>>106のを書いた
6.teki_01_reqは固定位置出現にした

最終動きのイメージを今見たんだがハチの字の方向が違うかもしれん
そこはまぁ適当によろしこ
ちなみにPIは3.141592にdefineしてある

109 名前:106 mailto:sage [2008/10/06(月) 07:41:46 ]
書き忘れた
もう仕事に行く時間なので
夜になるまで応答できないかも

110 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/06(月) 08:11:20 ]
>>109
ありがとうございます。
やってみるので、夜になったらまた見てもらえますか?
それまで自分でやってみます。



111 名前:21 [2008/10/06(月) 11:27:20 ]
>>61
よし動いた。
・・・あれ肝心のソートがされてないorz
誰か13時までに原因を教えてください。

112 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:01:51 ]
1] 授業単元:C++
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7745.txt
・「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。

【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)上記以外については自由に作成してよい。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C++
[4] 期限: ([2008年10月8日


113 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 17:59:06 ]
>>112
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7755.cpp

問題文のリンクを元に作ったけども
正直カレンダークラスに year と month ないほうが綺麗になると思う

114 名前:デフォルトの名無しさん [2008/10/06(月) 18:40:58 ]
[1] 授業単元:プログラミング演習
[2] n*3がたの行列Aと3*mの行列Bの積を計算する
プログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc バージョン5.5
 [3.3] 言語:C
[4] 期限: 10月9日
[5] その他の制限:特にありません

よろしくお願いします。素人でもわかりやすい作りに
していただければ幸いです。



115 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:40:59 ]
>>113
そんなに無理矢理三項演算子使わなくても…

116 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:53:21 ]
>>115
使わないと分かりにくいかなと思って使ったんだけども・・・
取っても結果同じだから、違和感あるなら取ってね

117 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:22:49 ]
#include<stdio.h>
#define n 2
#define m 4
int main(){
int A[n][3] ={{1,2,3}, {4,5,6}};
int B[3][m] ={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int C[n][m],i,j,k,t;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
for(t=0,k=0;k<3;k++){ t += A[i][k]*B[k][j]; }
C[i][j] = t;
}
}
//A
for(i=0;i<n;i++){
for(j=0;j<3;j++){ printf("%3d",A[i][j]); }
printf("\n");
}
//B
for(i=0;i<3;i++){
for(j=0;j<m;j++){ printf("%3d",B[i][j]); }
printf("\n");
}
//C
for(i=0;i<n;i++){
for(j=0;j<m;j++){ printf("%3d",C[i][j]); }
printf("\n");
}

}

118 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 00:33:44 ]
>>108のように書いたのですが、

このようなエラーはどう対処したら宜しいのでしょうか?

..\zako_01.cpp(52) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
..\zako_01.cpp(66) : error C2065: 'PI' : 定義されていない識別子です。
..\zako_01.cpp(70) : warning C4305: '=' : 'double' から 'float' へ切り詰めます。
..\zako_01.cpp(72) : warning C4305: '=' : 'double' から 'float' へ切り詰めます。

119 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:42:13 ]
#define PI 3

120 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:55:07 ]
笑ったけど本気にしたらかわいそうだ

>>118
#define PI 3.141592

warningってのは警告だから無視すればいい



121 名前:デフォルトの名無しさん [2008/10/07(火) 01:35:20 ]
[1] C言語演習
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7756.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7757.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7758.txt
[3] C
[4] 今週の水曜日

よろしくお願いします。

122 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:49:18 ]
>>118
> >>108のように書いたのですが、

>>108
> ちなみにPIは3.141592にdefineしてある

はぁ。

123 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 04:23:57 ]
>>119
>>120
>>122
すみません見落としていました…

とりあえず、>>106を参考に作りました。
www.dotup.org/uploda/www.dotup.org6018.zip.html

するとこのようなエラーが出るのですが…ファイルを見て確認してみて下さい。
zako_01.obj : error LNK2005: "float * zy" (?zy@@3PAMA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "int * init_fl" (?init_fl@@3PAHA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "float * spy" (?spy@@3PAMA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "float * spx" (?spx@@3PAMA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "float * spyg" (?spyg@@3PAMA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "float * zx" (?zx@@3PAMA) は既に zako.obj で定義されています。
zako_01.obj : error LNK2005: "float * spxg" (?spxg@@3PAMA) は既に zako.obj で定義されています。

124 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 06:01:05 ]
>>123のエラーは全て自己解決しました。

普通にコンパイルできるのにちゃんと表示されないのですが…
www.dotup.org/uploda/www.dotup.org6039.zip.html

>>108のようにやったのに表示されません…

125 名前:106 mailto:sage [2008/10/07(火) 07:40:12 ]
すまん。もともとあった内容は省略して書いてた。
----- こっから
//アニメーション-----------------------------
timer_a[cnt]+=FrameTime;
if(timer_a[cnt]>0.1){
timer_a[cnt]=0;
no_a[cnt]++;
if(no_a[cnt]>9) no_a[cnt]=0;//アニメーションのループ
}
//敵の表示
elDraw::Layer((int)zx_a[cnt],(int)zy_a[cnt],tkBMP[cnt],40*no_a[cnt],0,40*no_a[cnt]+40,40);
// SHOW2((int)zx[cnt],(int)zy[cnt]-5,"no= %d",cnt);

}//リクエスト if end
}//for end

if(out_cnt==17){//17個全て消えたか?
for(cnt=0;cnt<17;cnt++){
init_fl_a[cnt]=0;

}
---- ここまで
をkadai_d_dpの最後に追加してみそ。

分かってるとは思うが
//敵の表示
elDraw::Layer((int)zx_a[cnt],(int)zy_a[cnt],tkBMP[cnt],40*no_a[cnt],0,40*no_a[cnt]+40,40);
のコールでビットマップを描画してるので
これ消したら当然何も出ない罠

126 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:58:09 ]
>>124
表示してないからあたりまえ
#define PI 3.141592F
void teki_01_dp(void)
{
static int no[17];//アニメ用
static float timer[17];//アニメ用
static float n = 0.0F;
static float inc = 0.1F;
int cnt;
for (cnt = 0; cnt < 17; cnt++) {
if (init_fl_01[cnt] != 0) {
zx_01[cnt] += cos(n * PI / 180) * FrameTime * 100;
zy_01[cnt] += sin(n * PI / 180) * FrameTime * 100;
n += inc;
if (n >= 180.0) {
inc = -0.1F;
} else if (n <= -180.0) {
inc = 0.1F;
}
timer[cnt]+=FrameTime;
if(timer[cnt]>0.1){
timer[cnt]=0;
no[cnt]++;
if(no[cnt]>9) no[cnt]=0;//アニメーションのループ
}
elDraw::Layer((int)zx_01[cnt],(int)zy_01[cnt],tkBMP[cnt],40*no[cnt],0,40*no[cnt]+40,40);
}
}
}

127 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 08:04:53 ]
>>125
>>126
できました!ありがとうございます!
これを元に波線の軌道もやってみますので、分からなくなったら再び質問します。

128 名前:112 mailto:sage [2008/10/07(火) 10:41:20 ]
>>113
デバックしましたけど何も表示されませんでした。

129 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:03:35 ]
>>128
デバック???
「修正してやったぜ」って意味か?
失礼な奴だな

知らない言葉は調べたほうがいいぜ

130 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:27:22 ]
デバッグ実行のことじゃね



131 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:39:16 ]
VSが「デバッグ開始」て書いてあるから間違って覚えたんだろ

132 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:41:45 ]
>>128
コマンドライン引数が無いときの処理が無いからな


133 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:10:31 ]
>>121
2番目の問題だけ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7759.txt

134 名前:21 mailto:sage [2008/10/07(火) 16:58:43 ]
誰か61のプログラムでソートされない原因を
教えてください。
お願いします


135 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:07:23 ]
>>134
やってみたらソートされたが、どんなデータを与えたの?

136 名前:21 mailto:sage [2008/10/07(火) 17:12:27 ]
>>135
./kadai3-2 s sa
と入力しました。./kadai3-2が実行プログラムで
Sが読み込ませるプログラムでsa

137 名前:21 mailto:sage [2008/10/07(火) 17:14:56 ]
すいません途切れました。
saが出力させるファイルで
sの中身は1,2,3,4,5,6,7,という
数字が記録されています。
実行するとsaの中身は
1,2,3,4,5,6,7となっていて
ソートされてないのです。


138 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:20:01 ]
>>137
落ち着けよ
意味がわからんよ

139 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:24:26 ]
>>137
見事にソートされているように見えるんだが。。
たとえばsを 3,6,1,5,2,7,4 という内容にしてみたら。

ソートの意味がわかっていないのか、それとも>>21の思っているソートがこちらに伝わっていないのか。

140 名前:21 mailto:sage [2008/10/07(火) 17:35:18 ]
あっ、あぁ、ほんとだ。
ごめんなさい。
いつのまにか俺のなかで
ソートの種類が勝手に順番を逆にするソート
にすり変わってたorz
思い込みってやだな。
お手数かけました。
心よりお詫び申し上げます。







141 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:54:06 ]
[1] 初級プログラミング
[2]
#include <stdio.h>
int main(void){

int a,b,c,d,e,f,g,h,i,j,k,l,m;//a〜m(13個,数は固定)には整数0か1が毎回ランダムに入るとしてください
a=1;b=0;c=0;d=1;e=0:f=1;g=1;h=1;i=1;j=0;k=1;l=1;m=0;//例

printf("%d",a); printf("%d",b); printf("%d",c); printf("%d",d);
printf("%d",e); printf("%d",f); printf("%d",g); printf("%d",h);
printf("%d",i); printf("%d",j); printf("%d",k); printf("%d",l);
printf("%d",m);
printf("\n");

//表示 1001011110110
/*以下に13ビットの値を16進数に変換するプログラムを記述せよ*/

printf("%d",?); printf("%d",?); printf("%d",?); printf("%d",?);
printf("\n");
return 0;
}
abcdefghijklmが
1001011110110 の時は 12f6 と表示 aが4桁めb〜eが3桁めf〜iが2桁めj〜mが1桁めとなるようにする
[3] 環境
[3.1] OS:linux [3.2] gcc3.4 [3.3] c
[4] 期限: 10/8
[5] その他の制限:なし



142 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:01:51 ]
>>141
?を埋める形じゃないとだめ?

143 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:05:07 ]
というわけでもないと思うので、こうしてみたよ。
printf("%d",a); printf("%x", b*8+c*4+d*2+e); printf("%x", f*8+g*4+h*2+i); printf("%x", j*8+k*4+l*2+m);
もしくは
printf("%d",a); printf("%x", b<<3|c<<2|d<<1|e); printf("%x", f<<3|g<<2|h<<1|i); printf("%x", j<<3|k<<2|l<<1|m);

144 名前:141 mailto:sage [2008/10/07(火) 18:06:39 ]
>>142
?は自分がこんな感じかなと勝手に考えて書いたものですので
無視してもらっても大丈夫です。

145 名前:141 mailto:sage [2008/10/07(火) 18:20:49 ]
>>142,143
ありがとうございます。出来ました。

146 名前:デフォルトの名無しさん [2008/10/07(火) 20:51:46 ]
ソース
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7760.txt
データ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7761.txt

テキスト形式のデータを読み込んで,マージソートをして
ナップサック問題をとくソートなんだが

item数 n = 100 重量制限 B = 2000
データは item p[i] w[i]の順に並んでるよ

ここにいてるできる奴ならもっと短くできるよね

B5に収まるくらいの美しいソートおしえてたもれ

<stdio.h><stdlib.h><math.h>くらいだけで
シンプルにできる人、たのんます

あっしのノー味噌ではうつくしくできないので.

147 名前:146 [2008/10/07(火) 20:58:31 ]

×美しいソート
○美しいソース
です;

頭んなか、ソートだらけか….

148 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:30 ]
>>1くらい読め

149 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:47 ]
>>146
qsort を使うとか

150 名前:146 [2008/10/07(火) 21:28:19 ]
>>148
宿題を解いて,もっと短くできるから
やってみろって言われたんです;
テンプレどおりに書かなかったのはすみません。

>>149
マージソートで、数十行くらいで作れるらしいです。
それをやれといわれました;
教科書通りにやるのはできるんですが
短くするとなると、なかなか凡人クラスの頭のキレでは難しくて.




151 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:37:13 ]
つstdlib.h

152 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:46:55 ]
まず、このソースが何をしていて、どの辺で苦労して、どのあたりが改善できそうであるかを言ってみて。

153 名前:デフォルトの名無しさん [2008/10/07(火) 23:05:45 ]
1] 授業単元: 基礎プログラミング
[2] ニュートンラプソン法を用いてnのルート、及び逆数の関数を作成せよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 10/8 24:00

154 名前:デフォルトの名無しさん [2008/10/08(水) 02:34:55 ]
>>153
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7762.txt

155 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:40:07 ]
ありゃageになってたすまぬ

156 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 04:21:05 ]
ttp://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
> 2008年8月、史上最大の素数探求のための分散コンピューティング・プロジェクトである
> GIMPSによって、その時点で史上最大とされる素数が発見された。これは知られている中で
> 46番目のメルセンヌ素数、243112609 - 1 であり、十進記数法で表記したときの桁数は
> 1297万8189桁に及ぶ。
上記の史上最大とされる素数を求めるプログラムきぼんぬ

157 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:32:16 ]
>>156
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7764.c


158 名前:157 [2008/10/08(水) 09:51:30 ]
2^nの1桁目は0にならないから最後1引くのにループはいらなかった

159 名前:157 [2008/10/08(水) 09:54:31 ]
#define END_POINT 243112609

#define END_POINT 43112609
の間違いだな(>>156のをそのままコピペしてしまった)

160 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:22:20 ]
>>156
#include <stdio.h>
#define MER_P 43112609
int main(void)
{
int i;
printf("(2^%d) - 1 =\n", END_POINT);
for (i = 0; i < MER_P; i++)
{
printf("1");
}
printf("\n(2進数)\n");
return 0;
}




161 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:23:22 ]
間違えた
#include <stdio.h>
#define MER_P 43112609
int main(void)
{
int i;
printf("(2^%d) - 1 =\n", MER_P);
for (i = 0; i < MER_P; i++)
{
printf("1");
}
printf("\n(2進数)\n");
return 0;
}


162 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 13:13:55 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
すごろくプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
・すごろくのコマとしてユーザクラスを作成しなさい。
・すごろくのコマを移動させる場所としてマスクラスを作成しなさい。
・main関数でユーザクラスの実体(2つ以上)とマスクラスの実体(5つ以上)を生成しなさい。
・ここで,マスには,「スタート」「ゴール」「1つ進む」「1つ戻る」「2つ進む」「2つ戻る」「スタートへ戻る」「何もしない」の条件があるとする。
・さらに,ユーザは初期状態で「スタート」とし「ゴール」になったら終了とする。
・乱数でサイコロ(1つ)の数字を出しすごろくを行い,片方がゴールしたら終了とする(ちょうどゴールにとまらなくてもよい)。なお,すごろくをプレイしている状況は表示すること。
・あとはすごろくとして成り立っていればどのようにプログラミングしてもよい(他のクラスが必要な場合は追加してもよい)。


[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VisualStudio
 [3.3] 言語:C++
[4] 期限: ([2008年10月16日

163 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:33:18 ]
[1] 授業単元:C言語入門
[2]
#include <stdio.h>

int add(int x, int y)
{
return x+y;
}

int main()
{
int a, b, c;
}
printf("calc a + b\n");
printf("input a b\n");
scanf("%d%d", &a, &b);
c = add(a,b);
printf("result: %d + %d = %d\n", a, b, c);
return 0;
}

void accum(int *x, int y)
{
*x = *x + y;
}
このポインタを使って上の関数addを用いずに同じ動作をするプログラムを作れ。

お願いします(__)

164 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:38:31 ]
>163
問題は正確に

165 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:40:21 ]
#include <stdio.h>
void accum(int *x, int y)
{
*x = *x + y;
}
int main()
{
int a, b;
printf("calc a + b\n");
printf("input a b\n");
scanf("%d %d", &a, &b);
printf("result: %d + %d", a, b);
>>163

accum(&a, b);
printf(" = %d\n", a);
return 0;
}



166 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:12:03 ]
すみません。
VC++をいじってるんですが、double型の値を画面に表示させると
「0.000000」といった感じで小数部が6桁表示されてしまいます。
この小数部の表示桁数を制限したいのですが、何か良い関数など
があれば教えて下さい。
よろしくお願い致します。

167 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:16:43 ]
printf("%5.2lf",12.34);
ってやったらどうだろう

168 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:27:28 ]
それは間違いだ
いやc99ならいける
というレスが続きそうな気がするので先に言っておこう

169 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:29:23 ]
>>168
C99なら…それでもC99ならきっとなんとかしてくれる…

170 名前:お願いします [2008/10/08(水) 23:58:33 ]
【質問テンプレ】
[1] 授業単元: アルゴリズムデータ構造2
[2] 問題文(含コード&リンク): 52枚のトランプを5人に配るシミュレーション
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: コマンドプロンプト バージョンはすいません分からないです。
 [3.3] 言語: C言語
[4] 期限: 10月13日(月)まで
[5] その他の制限: 配列でswap関数を使って作ってもらいたいです。



171 名前:お願いします [2008/10/09(木) 00:16:55 ]
>>170 アップローダの使い方がいまいち分からなかったので
ソースを貼ります このプログラムを書き換えてください。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i;
char *card[]={"Club","Diamond","Heaart","Spade"};
char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
srand(time(NULL));
i=rand()%52;
printf("%s%s\n",card[i/13],numb[i%13]);
return 0;
}

172 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:37:56 ]
>>171
こんなんでおk?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int*a,int*b){int c = *a;*a=*b;*b = c;}
int main(void)
{
&nbsp; &nbsp; int i,n;
&nbsp; &nbsp; char *card[]={"Club","Diamond","Heaart","Spade"};
&nbsp; &nbsp; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
&nbsp; &nbsp; int cards[52];
&nbsp; &nbsp; for(i=0;i<52;++i)
&nbsp; &nbsp; &nbsp; &nbsp; cards[i] = i;
&nbsp; &nbsp; srand(time(NULL));
&nbsp; &nbsp; //カードをシャッフルする
&nbsp; &nbsp; for(i=0;i<52;++i)
&nbsp; &nbsp; &nbsp; &nbsp; swap(cards+i,cards+rand()%(52-i)+i);
&nbsp; &nbsp; for(i=0;i<52;++i)
&nbsp; &nbsp; &nbsp; &nbsp; printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]);
&nbsp; &nbsp; return 0;
}


173 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:39:59 ]
ぎゃあ表示がバグってる。
たぶん空白だけだと思うけど念のためにもう一度。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int*a,int*b){int c = *a;*a=*b;*b = c;}
int main(void)
{
    int i,n;
    char *card[]={"Club","Diamond","Heaart","Spade"};
    char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    int cards[52];
    for(i=0;i<52;++i)
        cards[i] = i;
    srand(time(NULL));
    //カードをシャッフルする
    for(i=0;i<52;++i)
        swap(cards+i,cards+rand()%(52-i)+i);
    for(i=0;i<52;++i)
        printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]);
    return 0;
}

174 名前:デフォルトの名無しさん [2008/10/09(木) 04:00:50 ]
1から指定した数までを足し算で計算するプログラム教えてくれ。

175 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 04:06:52 ]
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("%d", a * (1 + a) / 2);
return 0;
}

176 名前:デフォルトの名無しさん [2008/10/09(木) 15:08:33 ]
[1] 授業単元:ランダムウォークと配列
[2] 問題文(含コード&リンク): 左右に動く点がありそれが連続で右に動いた回数をカウントし出力
一連続は**回 二連続は++回
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:Visual Basic 2005
 [3.3] 言語: C++
[4] 期限: 無期限

よろしくお願いします

177 名前:176 [2008/10/09(木) 15:14:43 ]
失敬
開発環境はMicrosoft Visual Studio 2005です

178 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:20:26 ]
>>176
#include <iostream>
#include <cstdlib>
int main()
{
int i, j, n, r1 = 0, r2 = 0, state = 0;

std::cout << "繰り返し回数 = ";
std::cin >> n;

for (i = 0; i < n; i++) {
j = std::rand() % 2; // 0で左、1で右
if (j == 1) // 右へ動いた
switch (state) {
case 0: // 左へ動いた直後か右へ二回動いた直後
r1++;
state = 1;
break;
case 1:// 右へ一回動いた直後
r1--;
r2++;
state = 0;
break;
default:
break;
}
else
state = 0;
}
std::cout << "一連続は" << r1 << "回 " << "二連続は" << r2 << "回" << std::endl;
}

179 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:21:39 ]
>>176
情報が足りなさすぎるということに気づけないレベルなんだなあ。
単位落としちゃえよ。

180 名前:デフォルトの名無しさん [2008/10/09(木) 19:56:21 ]
>>179




181 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 22:31:09 ]
[1] 授業単元: C言語
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7765.txt
TCPサーバー kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt
TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:Visual stdio2005
 [3.3] 言語:C
[4] 期限:10月10日(金)まで
[5] その他の制限:問題文に記述

よろしくお願いいたします

182 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 22:33:32 ]
すみません

TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7767.txt

でした


183 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:33:58 ]
あと30分で終わらせとか(><

184 名前:デフォルトの名無しさん [2008/10/10(金) 00:10:16 ]
[1] 授業単元: C++
[2] 問題文: ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7768.txt
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:Visual stdio2005
 [3.3] 言語:C
[4] 期限:10月11日(土)まで
[5] 問題文が英語ですいません。期限が短いのですがお願い致します。

185 名前:デフォルトの名無しさん [2008/10/10(金) 00:26:53 ]
[1] 授業単元:C言語
[2] 問題文:a(n+1)=3a(n)+4b(n)
b(n+1)=2a(n)+3b(n)
  の漸化式で1.4142135を算出するプログラム
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月10日 朝7時まで
[5] その他の制限:特になし

手計算だと5回目に算出できましたが、プログラムに仕方がわかりません;

186 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:32:14 ]
>>185
つ数学板

Cの課題とは言えない

187 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:33:31 ]
>>185
せめてnはいくつから始めるのかだけでも言え
それがないと漸化式が解けん

188 名前:デフォルトの名無しさん [2008/10/10(金) 00:36:49 ]
>>186
 数学板行ったらCにいけゆわれました;

>>187
 すみません、nは0からです;

189 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:44:22 ]
>>184
#include <iostream>
using namespace std;
int main() {
    for (;;) {
        string name;
        int credit_standing, amount_owed, minimum_payment;
        cin >> name >> credit_standing >> amount_owed;
        if (cin.eof()) break;
        if (credit_standing > 6)
            minimum_payment = (amount_owed <= 20) ? amount_owed
                            : (amount_owed <= 100) ? 10
                            : 0.1 * amount_owed;
        else
            minimum_payment = amount_owed;
        cout << name << " with credit standing " << credit_standing
             << " must pay " << minimum_payment << endl;
    }
    return 0;
}

190 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:58:56 ]
>>185
a(0)とb(0)の初期値は?



191 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:59:43 ]
>>184 なんだCだったか
#include <stdio.h>
int main() {
    char name[32];
    int credit_standing, amount_owed, minimum_payment;
    while (scanf("%31s %d %d", name, &credit_standing, &amount_owed) == 3) {
        if (credit_standing > 6)
            minimum_payment = (amount_owed <= 20) ? amount_owed
                            : (amount_owed <= 100) ? 10
                            : 0.1 * amount_owed;
        else
            minimum_payment = amount_owed;
        printf("%s with credit standing %d must pay %d\n",
               name, credit_standing, minimum_payment);
    }
    return 0;
}

192 名前:デフォルトの名無しさん [2008/10/10(金) 01:06:07 ]
>>190
a(0)=7
b(0)=5 です。


193 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:11:24 ]
>>192
#include <stdio.h>
double fa(double a_n, double b_n)
{
return 3 * a_n + 4 * b_n;
}
double fb(double a_n, double b_n)
{
return 2 * a_n + 3 * b_n;
}
int main()
{
double an = 7, bn = 5;
double tmp;
int i;
for (i = 0; i < 10; ++i) {
tmp = fa(an, bn);
bn = fb(an, bn);
an = tmp;
}
printf("%.10f\n", an / bn);
return 0;
}


194 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:21:24 ]
>>193
 ありがとうございます!!助かりました!!

195 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:21:40 ]
>>185 素直に再帰したいけどこれじゃダメなのかな
#include <stdio.h>
int a(int); int b(int);
int a(int n) {
    if (n == 0) return 7;
    else return 3 * a(n-1) + 4 * b(n-1);
}
int b(int n) {
    if (n == 0) return 5;
    else return 2 * a(n-1) + 3 * b(n-1);
}
int main() {
    printf("%.10lf\n", (double)a(10) / b(10));
    return 0;
}

196 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:36:07 ]
>>195
 いえいえ全然ダメじゃないです!本当にありがとうございます!

197 名前:デフォルトの名無しさん [2008/10/10(金) 01:39:40 ]
>>189
ありがとうございました。
ちなみに各customerのコードはどのように入力すればいいのですか?
初心者ですいません。

>>191
すみません、言語はC++でした。
書き間違えてしまいました。
お手数おかけしました。


198 名前:181 mailto:sage [2008/10/10(金) 01:52:36 ]
>>183
すいません言葉足らずでした
改めて貼り直します

[1] 授業単元: C言語
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7765.txt
TCPサーバー kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt
TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7767.txt
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:Visual stdio2005
 [3.3] 言語:C
[4] 期限:10月10日(金)13:00まで
[5] その他の制限:問題文に記述

引き続きよろしくお願いいたします

199 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 06:56:37 ]
>>198
TCPサーバー:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7769.txt
TCPクライアント:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7770.txt


200 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 12:03:51 ]
>>199
ありがとうございました



201 名前:デフォルトの名無しさん [2008/10/10(金) 12:16:32 ]
なぜうp先は関西2ちゃんねらーなんですか

202 名前:デフォルトの名無しさん [2008/10/10(金) 15:52:19 ]
[1] 授業単元: c言語
[2] 問題文(含コード&リンク): ペイントソフトを作る
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン: Visual studio .NET 2003
 [3.3] 言語: c,c++
[4] 期限: 2週間後の火曜まで
[5] その他の制限: MFCを使用しない

線の描画などはできましたが、ペンの太さや色の変更、 操作のやり直しなどが分かりません
どなたかよろしくお願いします






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

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

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