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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:30:56 ]
あなたが解けない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++の宿題を片付けます 108代目
pc11.2ch.net/test/read.cgi/tech/1211980711/


266 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:59:53 ]
>>260 >>257
return (year % 4 == 0 && year % 100 != 0 || year % 400 = 0);
明らかに括弧の位置と、 year%400 == 0 の部分が間違っているんで訂正

267 名前:261 mailto:sage [2008/06/11(水) 23:21:54 ]
>>264
switchの中がそんな事に・・・どうなるのか見当がつかないです

268 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:30:22 ]
>>259
画像処理のことはあまりわからんので、ちょっと質問。
・グレースケールの画像を使うと書いてあるが、読み込んだRGBの値がバラバラの場合、輝度はRGBの平均値でおk?
・ヒストグラムの形式は何でもいい?例えば、N=8だったらこんな感じ?
0: *****
32: ************
64: *******
96: ********************
128: ***************************
160: ***************
192: ****
224: **


269 名前:デフォルトの名無しさん [2008/06/11(水) 23:41:30 ]
[1] 授業単元:プログラミング基礎
[2] 5人の学生の3教科(国語・数学・英語)の点数を2次元配列を用いて次の二つ
   の処理を実行するプログラムを作成せよ
  @科目別の最高点を求める
  A各学生の平均点を求める
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン: borland5.5.1
 [3.3] 言語:C
[4] 期限: 2008年6月12日中
[5] その他の制限: 特になし

よろしくお願いします

270 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:56:27 ]
>>268
自分がいまいちわかってないので自信がないのですが
グレースケール画像の各成分の輝度値を量子化する以外は
平均値をとるなどの指示はないです。
ヒストグラムの方は後でエクセルで処理をするので
値をテキストファイルに保存できればいいです。

271 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 00:05:02 ]
>>253
pgm形式、rawとascii、2つのモードがあるですが。両方対応ですか?

272 名前:257 [2008/06/12(木) 00:13:26 ]
>>265 >>266
こんなに早くしてくれるとは
マジで助かりました
ありがとうございます

273 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 00:43:55 ]
>>269
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6872.txt
エラーチェックもしてないし
終了もしてないけどおやすみなさい。

274 名前:デフォルトの名無しさん [2008/06/12(木) 00:48:23 ]
>>228
勘違いしていたのでもう一度書き込みします。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.0/1による8桁の2つの2進数入力に対して,それらの和を2進数表現で求め,その2進数表現を出力せよ.
このとき,2ビットの論理和,論理積,排他的論理和を求める関数,および,これらを用いて2進数1桁の加算を行う全加算器の機能を関数で実現すること.
なお,確認を容易にするため,入力と出力の各2進数に対する10進数表現も出力すること.
さらに2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:1については 2の補数を用いて負の数も扱えるように拡張する前までは作ることができたのでうpしておきます。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt

よろしくお願いします。



275 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 00:54:05 ]
レスが遅れて申し訳ございません
前スレの
pc11.2ch.net/test/read.cgi/tech/1211980711/753-756
有り難う御座いました
勉強させて頂きます


276 名前:デフォルトの名無しさん [2008/06/12(木) 01:15:08 ]
>>274 です。
[4] 期限:2008年06月12日までですが最終16日まで大丈夫です。

277 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:02:12 ]
えっ?クソアッー!は両方一致、すなわち a==b のとき 0 を返し
一致しない場合は 1 を返せばおk、だったかと。

278 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:23:07 ]
>>239
流れてたんであげなおします
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6873.txt
よろしくお願いします

279 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:34:38 ]
>>259,270
Dll_BMP_C.h とかいうファイルがないので動くかどうかわからんが
とりあえずExcelで読めるようCSVで出力するようにした
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6875.txt

280 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:57:18 ]
>>239
釣りっぽい気もするけど、とりあえずtyuuouの後半が間違ってんじゃん

281 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:19:27 ]
>>274
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6876.c

> さらに2の補数を用いて負の数も扱えるように拡張せよ.
先頭の桁が1なら負にするようにしてあるけど、それは
10進数に変換するときの計算結果でやってます。

> 2.2つの2進数の差を求めるプログラムを作成せよ.
これはやってない。

282 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:20:20 ]
>>281 あぁ、あと free してなかった、すまそ。

283 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:21:38 ]
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6877.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:問題文上部に記載

よろしくお願いします

284 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:34:27 ]
>>283
問題文上部を理解することのなんと困難なことか!



285 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:39:28 ]
[1] 授業単元:プログラミング技術
[2] 問題文(含コード&リンク):
文字列を反転させて表示するプログラムを作成せよ。
ここでの”反転”とは例えば”Program”という文字列を入力したら
”margorP”と出力するものである。
(実行例)
文字列を入力せよ:Program
反転した文字列:margorP

単純な配列の並び替えでOKです、文字の長さを調べるstrlenの使用可。
ただし終端文字をどのように扱うかは注意。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:本日6/12 午後1時までにお願いします。

当方strlenで文字列カウントして、その後どうすれば文字列を反転させられるのかが分かりません。

286 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:43:03 ]
>>283
どうすりゃいいの
input()をメンバ関数で持っていいの?

287 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:45:08 ]
いいよ!

288 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:46:39 ]
>>285
>>211

289 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:50:45 ]
>>279
参考にさせてもらってどうにかできました!
本当にありがとうございます〜
助かりました

290 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:13:27 ]
>>288
???
strlenも使ってないし、分からない関数だらけでC言語なんでしょうか?

291 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:20:10 ]
#include <stdio.h>

int main(void)
{
char *p, str[256];

printf("文字列を入力せよ:");
scanf("%s", str);

for(p=str; *p; p++);
printf("反転した文字列:");
while(p-- > str) putchar(*p);

return 0;
}

292 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:20:23 ]
>>210
> いらんもんを付け足すほうがアホだろ。
勝手にお前が要らんって思っているだけで、本当は必要なものだよw
バーカ、gdgd知ったか無知を晒す前にこのスレに来るな、来ても
発言せずにROMってろ、クズ

293 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:22:10 ]
>>285
#include <stdio.h>
#include <string.h>

int main(void)
{
char buf[80], t;
int i, len;

printf("文字列を入力せよ:");
gets(buf);

len = strlen(buf);
for (i = 0; i < len / 2; i++)
t = buf[i], buf[i] = buf[len - i - 1], buf[len - i - 1] = t;

printf("反転した文字列:%s\n", buf);

return 0;
}

294 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:25:18 ]
Cには暗黙の型変換があるからキャストする必要はない。
sizeof(char)は1であるので省略可能。

どちらもあってもなくても問題はない。



295 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:25:32 ]
>>210
ソースも書かない、知ったような口を聞いているお前が言うと笑えるw

296 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:27:20 ]
>>294
> どちらもあってもなくても問題はない。
ダウト。適切か不適切か、考えたら普通はそんなことは言わない。
そもそも、char型が単に1バイトだから、たまたま都合よく通っただけ。
本来あれを正式な場所でやった場合、不適切とされ、どんな言い訳をしても
知らなかったと駄目だしをされるだけだよ。これだから ド素人 は口を閉じてろって
言われるんだよw

297 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:29:20 ]
>>291
ありがとうございます、ただ*pがどういう意味なのか分からなかったです。

>>293
こちらもありがとうございます、これなら当方にもちゃんと分かります。
とても参考になります。

298 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:29:21 ]
>>294
キャストの場所を勘違いしていないか?にしても、mallocの前に
記述していないのは大減点。おまけに、そこじゃなくて
fseekの0Lについてでは?これについても問題はなかったにしろ
どちらも問題が無かっただけで、コードとしては完全に不適切。
だから要らん口出しはしない方が、自分が無知、バカだと露呈せずに済むよw

299 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:29:34 ]
このスレにどうぞ
sizeof(char)が必ず1でも、省略すべきではない
pc11.2ch.net/test/read.cgi/tech/1187521586/

300 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:33:43 ]
関数へ与える値が、型を宣言した変数の識別子ではなく
定数という点で、long型の変数に引き渡すことになっているため
ほとんどの資料には後ろにLを記述しているものが見られるよ。
中には書いてないものもあるが、符号無しでUをつけるように
いくら暗黙のキャストがあろうが、適切なコードに対して

蛇足

なんて知ったかぶるからバカにされるんだよ。そんな知ったかが
適切な記述を蛇足って言うなら、そいつは本当に必要なものに対しても
蛇足と思い込んでいるだろうね。これだから視野の狭い奴は相手にならねー

301 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:35:05 ]
なんでこんな時間に蒸し返してまで顔真っ赤なんだろ

302 名前:デフォルトの名無しさん [2008/06/12(木) 04:49:44 ]
>>281 様。ありがとうございます。


303 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:57:59 ]
蛇足でもないのにアホとか、発言したがために無知を晒したアホが
言うと笑えねーな・・・少なくとも>>210はプログラマには向いてない。
些細なことでイラついて、ムッキーポッポーで、業界に入っても
淘汰されて下手すりゃ排除されるよ。あぁ恐ろしや恐ろしや。

304 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:01:09 ]
さすがにpowに渡すからってループ変数をdoubleにしたキチガイは言うことが違うw



305 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:20:06 ]
ループ変数がdoubleでも小数点以下を使わなければ
桁落ち誤差が累積する事はない

306 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:26:52 ]
円の中心に原点をおくと、格子点はi,jを整数として座標(i,j)で表される。(i,j)が円環に含まれる場合に1,含まれない場合に0を返却する関数
is_inrarge(double r, int i, int j)
を作成し
というところまでを自分でr、i、jを入力する方法でやって
#include <stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{
int r,i,j;
printf("r,i,j =");
scanf("%d,%d,%d", &r,&i,&j);
printf("%d,%d,%d \n",r,i,j);
inrange();
return 0;
}
int inrange(double r,int i, int j)

{
double o,p,q;
o=r*r;
p=(i*i+j*j);
q=(r+1)*(r+1);
if (q >= p && p>o){
printf("1");
}else{
printf("0");
}
}
ここまでやって5時間かけてもどうにもうまくいきません。
vista vc05ですけど関係ないような気もします。
誰か教えてください。

307 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:29:11 ]
途中の↓はどうにも行かなくて確認で入れてみたら
代入した直後の数字とは別の数字が出ます。
printf("%d,%d,%d \n",r,i,j);
わけがわかりません

308 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:39:07 ]
>>307
//inrange()
としてもう一度確かめてみそ

309 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:42:14 ]
[1] 授業単元: プログラミング技術V
[2] 問題文(含コード&リンク):
任意の文字列を配列に読み込み、その中に出てくる特定の文字列を指定した文字列に置き換えるプログラムを作成せよ。
(実行例)
文字列を入力せよ : kadai no teisyutukigen ha mamore
置き換え元を入力せよ : kadai
置き換え後を入力せよ : report
結果 : report no teisyutukigen ha mamore

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 本日午後2時までにお願いします。
[5] その他の制限: 空白ごと読み込む方法はgetchar命令、もしくはfgets命令を用いるとよい。

310 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:58:41 ]
>>305
pow関数にdouble渡してカウンタにしてたってーのは知らないけど
情報落ちも考慮するとdoubleは異常

311 名前:デフォルトの名無しさん [2008/06/12(木) 06:01:42 ]
>>309
入力:111
置き換え元:11
置き換え後:aa

結果:aa1
結果:1aa
どっち?

312 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:02:22 ]
double d=(double)10000000000000,e=(double)0.0;

while( e<d )
e+=(double)1.0;

このコードは停止するか?


313 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:06:23 ]
>>311
最初に見つかった方をするようにお願いします。
結果:aa1

314 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:45:29 ]
>>304
お前が相当な馬鹿だということが分かった・・・っつか、お前の言っていることって
言わなきゃ良いことばかりだよ?かなりあほだな・・・進路を変えろ、基地外



315 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:47:54 ]
ttp://www.bohyoh.com/CandCPP/C/Library/pow.html
double pow(double x, double y);

知った無知の基地外は、自分基準で相手を罵倒することに
専念するだけだから困る。しっかりと資料を提示するなり
見れば無駄口を叩くこともなかっただろうに。
適切な取り扱いを知らない奴は、こういった業界では
絶対に通用しない。

316 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:54:33 ]
[1]授業単元:プログラミング基礎論
[2]ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6878.txt
[3]環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:borland c++5.5
[4] 期限:来週の月曜日
[5] その他の制限:関数まで習いました
ぜんぜんわからないのでよろしくお願いします

317 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 07:33:40 ]
>>306
入力するとき,で区切って入力してないってオチじゃない?

318 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 07:40:04 ]
>>316
#include <stdio.h>
int my_tolower(int ch)
{
if('A'<=ch && ch<='Z') ch += ('a' - 'A');
return ch;
}
int main(void)
{
char str[256];
int i, len;

scanf("%s", str);
for(len=0; str[len]; len++);
printf("文字列の長さ:%d\n", len);

for(i=0; i<len; i++) str[i] = my_tolower(str[i]);
printf("大文字を小文字に変換した文字列:%s\n", str);

for(i=0; i<len / 2; i++) if(str[i]!=str[len-1-i]) break;

if(i==len/2) printf("回文です\n");
else printf("回文ではありません\n");

return 0;
}

319 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 08:01:11 ]
>>309
文字列を複製する関数:strcpy(str1,str2,n)
文字列の長さを返すかんすう:strlen(str1)
文字列をn文字比較する関数:strncmp(str1,str2,n)
文字列str2をstr1のあとの連結する関数:strcat(str1,str2)
を使うなど、このレベルでプログラムを組んでいただけると助かります。

320 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 08:32:23 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
PNMという画像フォーマットを用いるとprint文で文字コードを出力することで
画像が作成できる。
(説明例:a-gamyl.hp.infoseek.co.jp/Clang/pnm_read.html
これを用いて任意の画像を作成する。2次元の配列変数x,y座標を持つ平面に見立てて
画像を構成することが可能である。例えば画像の大きさ256x256の大きさとして
中央の(128,128)の場所に赤い点をひとつだけ打つには以下のようなプログラムになる。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6879.txt
以下のように直接出力してみよう。
$ cc en5-3.c
$ ./a.out > test.ppm
出来上がったtest.ppmというファイルをファイルブラウザで開いてみると
中央に赤い点が打たれているのが分かる。どのようなデータが書き込まれているかは
プログラムの最後のfor文を見ていただきたい。
(課題)
・sin派を描いた画像を作成するプログラムに変更せよ。
・円を描いた画像を作成するプログラムに変更せよ。
・うずまきを描いた画像を作成するプログラムに変更せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:無理を承知で後日6/12 午後2時までにお願いします。

321 名前:デフォルトの名無しさん [2008/06/12(木) 09:03:24 ]
>>206
の老婆心
つまり、処理系によって、ちゃんと解釈してくれないよ
という忠告は
小さな親切余計なお世話
というのが>>207
で女々しい口喧嘩を繰り返すと。

要するにだ、207がちゃんとキャストをするなりしてコードを書いて
206がそれをハンディコンパイルすればそれで済む話
(できれば207がコードを実行すれば尚良い)

322 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:08:45 ]
>処理系によって、ちゃんと解釈してくれないよ
Cの規格読み直せw

323 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:20:41 ]
×小さな親切余計なお世話
○小さな親切大きなお世話

324 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:23:04 ]
このスレレベルの「案件」では自分のコンパイラで動作確認さえ取ってさえいれば
いいんじゃないのか?(自分のコンパイラで動作確認もとってないのにソース上げるのは論外だけど)

どんな処理系でも動作するポータビリティなんて要求されてないし、
仮に要求してきたにせよ宿題丸投げの要求なんて無視していい
というか、そんなウィルスコードここに貼るな。



325 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:24:27 ]
>>324
だからといってなコードは削ればいいという思想もウィルス

326 名前:デフォルトの名無しさん [2008/06/12(木) 10:29:39 ]
>>318
ありがとうございました!

327 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:36:54 ]
このスレとしては
×自分のコンパイラ
○テンプレ[3]で指定されている環境

まぁ適当に書いてもだいたい通るから大丈夫だけど

328 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:46:12 ]
205は適当でも処理系依存でもなくきちんと規格に準拠したコードなのになw

329 名前:デフォルトの名無しさん [2008/06/12(木) 10:54:15 ]
ソースコード読むのは人間だろ
解析するのがコンパイラ

330 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 13:25:47 ]
>>306
なんだ、まだ5時間しか考えてないのか、というのはヤボですかね。

331 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:21:05 ]
>>328
>>205
char *buf;
buf = malloc(size);
int main()



332 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:23:17 ]
あーあ・・

333 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:26:55 ]
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html
とりわけ「準拠」というなら、何に?ANSI、ISO準拠なら
int mainについても蛇足とは言わない指摘がされるぞ。
だから無知は黙ってろって言われるんだよw
何に対して、何を元に指摘されているかわかってないんだろ。
資料を読んでから意見しろ。ルールブックも読まない奴が
勝手に自分ルールでそれは要らないよ、従っている人に
蛇足だよ、無駄だよなんて言っても通じない。

334 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:45:23 ]
C#は取り扱っていませんか?



335 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:47:03 ]
>>334
スレはあるようだけど過疎ってるなw

C#,C#の宿題片付けます。
pc11.2ch.net/test/read.cgi/tech/1197620454/

336 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:01:03 ]
>>335
誘導ありがとうございます。
31に書き込んだのでどなたかよろしくお願いします

337 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:32:57 ]
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6881.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月16日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません。よろしくお願いします。

338 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:47:02 ]
>>337
int main(void){
QUEUE_TYPE x;

initQueue();

while(1) {
printf("整数を入力して下さい:\n");
scanf("%d",&x);
if (x<0) break;
if(x % 2) {
printf("dequeue() %d : ",dequeue());
printQueue();
}
else {
enqueue(x);
printf("enqueue(%d) : ",x);
printQueue();
}
}

while(!chkEmpty()){
printf("dequeue() %d : ",dequeue());
printQueue();
}

return 0;
}


339 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:53:10 ]
>>338
すばやい回答ありがとうございました!

340 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:56:53 ]
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6883.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月16日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
>>337の続きの課題なのですが・・
よろしくお願いします

341 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:16:43 ]
while(1) {
printf("整数を入力して下さい:\n");
scanf("%d",&x);
if (x<0) break;
if(x % 2) {
dequeue(&Q);
printQueue(&Q);
}
else {
enqueue(x, &Q);
printf("enqueue(%d) : ", x);
printQueue(&Q);
}
}

342 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:23:16 ]
>>341
ありがとうございます。

しかし、
負の数字-100を入力した場合に、実行例に在るとおりに
dequeue します: キューの中 [ 20 30 ]
dequeue します: キューの中 [ 30 ]
dequeue します: キューの中 [ ]
空状態のためデキューできません。

と表示されないのと、奇数の数字35等を入力した場合にdequeue しますという文字が表示されません。
それとやはり、デキューされた値を表示するのは難しいのでしょうか?

343 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:37:10 ]
if(x % 2) {
dequeue(&Q);
printQueue(&Q);
}

if(x % 2) {
dequeue(&Q);
printf("dequeue します: ");
printQueue(&Q);
}


q=Q.front;以下はそのまま使ってる?

344 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:47:19 ]
>>343
すいません、q=Q.front;以下も一緒に消してしまっていました。
負の数の時のも無事いけました!
デキューされた値を表示するのは無理でしょうか?



345 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:54:28 ]
dequeue()関数をいじっていいなら337のみたいに返り値でdequeueしたのを戻せばいいんだけど。

346 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:55:56 ]
void dequeueを↓に変更

int dequeue(struct queue *Q){ /* デキューする関数 dequeue の定義 */
struct cell *q; /* キューの先頭(デキューされるセル)を指す*q の宣言 */
int x;
if(Q->front == NULL) { /* Q->front がNULL(キューが空状態)であれば */
printf("空状態のためデキューできません。\n"); /* 左記のメッセージを画面に表示して */
exit(1); /* プログラムを終了 */
}
else { /* Q->front がNULL(キューが空状態)でなければ */
q=Q->front; /* ポインタ変数*q はキューの先頭を指す */
x=q->element;
Q->front = (Q->front)->next; /* キューの先頭(Q->front)を置き換える */
free(q); /* デキューされたセルのメモリを解放 */
}
if(Q->front == NULL){ /* Q->front がNULL(キューが空状態)であれば */
Q->rear = NULL; /* キューの初期化 */
}
return x;
}

あとmain()内の
dequeue(&Q);
printf("dequeue します: ");

printf("dequeue() %d : ",dequeue(&Q));
にすればいけると思う

347 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:56:53 ]
あれ、dequeueを変えない方が良かったか?

348 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:57:33 ]
>>250-251
>>255
ありがとうございます。助かりました

349 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:59:56 ]
>>347
いいんじゃね?
main()を変えてって指定があるのは337の問題の方だけだし

350 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:09:16 ]
>>346
ありがとうございました!見事に動作しました

351 名前:340 mailto:sage [2008/06/12(木) 18:17:57 ]
何度もすいません、>>337と同じ内容を実施するプログラムと書いてあるので、
>偶数(0 を含む)である場合は、その整数をエンキューする。キューがフル状態である場合には、
>その整数をエンキューせず、『enqueue : フル状態のためエンキューできません。』と表示した後、プログラムを終了する。
の部分も付け加えなければいけないと思うのですが、
この部分はどうすればよいのでしょうか?
恐らくmain以外もいじくってよいと思います。。
よろしくお願いします

352 名前:309 mailto:sage [2008/06/12(木) 18:24:29 ]
まだ、待ってます。
期限は過ぎてますが、遅れてでもいいので提出したいです。
>>309
>>319

353 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:28:17 ]
>>351
>>340の場合は、要素が入る度にmallocでqueueのサイズを増やしてるから、
キューがフルである状態というのがそもそもない。
だからその部分は必要ないはず。
まあ、もしもそれを分かっていて、mallocするメモリが存在しなかった場合の話をしているなら、
enqueue内の

p=(struct cell *)malloc(sizeof(struct cell)); /* エンキューするセルを指すポインタ変数*p の獲得 */

if((p=(struct cell *)malloc(sizeof(struct cell)))==NULL){
printf("enqueue : フル状態のためエンキューできません。\n");
exit(1);
}
とすればおk

354 名前:340 mailto:sage [2008/06/12(木) 18:30:09 ]
>>353
なるほど、そうなのですか!無知な発言申し訳ないです。
本当に助かりました



355 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:37:58 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6886.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:
1kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6884.c
2-1kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6885.c
自分で作れた所までです。
2-2はよくわかりませんでした
お願いします

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:
お願いします

356 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:18:12 ]
[1] 授業単元:C言語
[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6888.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 6月15日日曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
お願いします

357 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:19:55 ]
[1] 授業単元:C言語
[2] 問題文kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6888.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 6月15日日曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
お願いします


358 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:16:39 ]
>>278をおねがいします

359 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:18:43 ]
>>352
どれがわかんないの?
int main(void)
{
//文字列入力

//置き換えられる文字入力
//その文字列が最初に入力した文章ないにあるかチェック
//無いときの処理

//置き換える文字列入力

//置き換え前文字列表示

//置き換え処理

//置き換え後文字列表示

return(0);
}

360 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:21:21 ]
[1] 授業単元:C++プログラミング
[2] 3つの整数を入力し、入力値を昇順に入れ替える処理を作成する。
  ソート処理は関数を使って作成し、処理結果は関数の外で行う。
  ソート関数は引数がポインタ、参照の2種類の関数をオーバーロードで作成する

 出力イメージ:
  "整数を3つ入力しなさい"
  "入力した値は15,1,12"
  "昇順に並び替えると1,12,15"
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C++
[4] 期限:6月14日
[5] その他の制限:どうぞ宜しくお願いします

361 名前:309 mailto:sage [2008/06/13(金) 01:22:57 ]
>>359
・指定した文字列が含まれているか判定
・無いときの処理
・置き換え方
特に置き換える際は、どうやって文字を置き換えているのかさっぱり分からないです。

自分で分からないものを煮詰めても、まったくす進まないので、丸投げで全部作っていただきたく思います。

362 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:26:13 ]
>>309
#include <stdio.h>
#include <string.h>
#define BUFF_SIZE 1024
void ex(char *dest, char *src,char *a,char *b){
    while(*src!='\0'){
        if(strncmp(src,a,strlen(a))==0){
            strncpy(dest,b,strlen(b));
            src+=strlen(a);
            dest+=strlen(b);
        }
        else
            *dest++=*src++;
    }
    *dest='\0';
}
int main( void )
{
    char buf[BUFF_SIZE],src[BUFF_SIZE],dest[BUFF_SIZE],a[BUFF_SIZE],b[BUFF_SIZE];
    printf("文字列を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",src);
    printf("置き換え元を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",a);
    printf("置き換え後を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",b);
    ex(dest,src,a,b);
    printf("結果 : %s\n",dest);
    return 0;
}

363 名前:362 mailto:sage [2008/06/13(金) 01:30:54 ]
fgetsに引っ付いてくる改行文字除去するのにもっとスマートなやり方があるかもしれんが
優秀な方がつっこんでくれるに期待して

一応>>311の通りに置きかえ


364 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:36:46 ]
\nの置き換えなら
if((p=strchar(buf, '\n'))!=NULL) *p = '\0';
ってやるのが一般的か?



365 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:37:45 ]
strcharじゃなくてstrchrだな

366 名前:デフォルトの名無しさん [2008/06/13(金) 02:52:16 ]
[1] 授業単元:C言語
[2] コマンドラインから数字の文字列を入力して、
  unsigned intの範囲外の値が入力された場合は
  エラー文を返す。それ以外は入力値を標準出力する。

  例) 入力 → 出力
  例1) "4294967295" → 4294967295
  例2) "4294967296" → 入力値が範囲外です。
[3] 環境
 [3.1] OS:Ubuntu
 [3.2] コンパイラ名とバージョン:gcc4
 [3.3] 言語:C
[4] 期限:6月15日
[5] その他の制限:特にありません。isdigit()は使うと思います。

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






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

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

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