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


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

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



1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
あなたが解けない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++の宿題を片付けます 92代目
pc11.2ch.net/test/read.cgi/tech/1183511364/

37 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:39:19 ]
>>34
queue.h の中の
static int qfirst = 0, qlast = 0, qcount = 0;
の行は queue.c に移動したほうがいいんじゃね?

38 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:42:35 ]
>>37
そういやそうだね。あとmakefileも微妙だったりゴミが混じってたりするけど気にしないでくれ。

39 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:47:16 ]
というか、このくらいの問題に手も足もでない、自力でできないくらいじゃ
単位やらなくてもいいんじゃない?と俺は思うよ。

40 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:52:34 ]
それには同意だが、そんなこと知ったことじゃないし、暇つぶしになるから問題なし。

#include <stdio.h>
#include <stdlib.h>
int main(void){
int m,n,i,j,**a;
char buf[256];
printf("mの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&m);
printf("nの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&n);
a=(int**)calloc(m,sizeof(int*));
if(a==NULL){printf("メモリ確保失敗。\n");exit(1);}
for(i=0;i<m;i++){
a[i]=(int*)calloc(n,sizeof(int));
if(a[i]==NULL){printf("メモリ確保失敗。\n");exit(1);}
}
for(i=0;i<m;i++)for(j=0;j<n;j++){
a[i][j]=i*n+j;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
for(i=0;i<m;i++)free(a[i]);
free(a);

return 0;
}

41 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:04:25 ]
このスレは宿題を淡々を片付けるスレだから
レベルが低かろうが高かろうがどうでもいいと思うぜ


42 名前:デフォルトの名無しさん [2007/07/16(月) 17:14:32 ]
[1] 授業単元:IT入門
[2] 問題文(含コード&リンク):
繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 
(1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに
入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 最新版
 [3.3] 言語: C
[4] 期限:2007年7月21日
[5] その他:参考プログラム(www-it.sci.waseda.ac.jp/ITB1/class1/list.c)を使ってください

43 名前:デフォルトの名無しさん [2007/07/16(月) 17:15:08 ]
>>40
ありがとうございます。
提出期限と同じ木曜日に出題されて今日まで連休中考えていたけど
配列はどうしても苦手で参考サイトを回ってみたけど、さっぱりでした。

>>39
それでも単位は欲しいのが大学生です。

44 名前:42 [2007/07/16(月) 17:15:52 ]
www-it.sci.waseda.ac.jp/ITB1/class1/list.c
もう一度リンクしておきます

45 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:32:14 ]
どうでもいいけど直リンだと2chでお願いしてるのがバレバレだよ。



46 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:33:19 ]
どうせ誰がコピッたかなんて分かるわけが…
ソース見りゃ分かるか。

47 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:39:27 ]
>>29
ソース自体は書いたんだが、ポインタのポインタを有効に使う方法が思いつかないなぁ・・・。

48 名前:47 mailto:sage [2007/07/16(月) 17:50:22 ]
>>29
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4634.txt
とりあえずupしといたんで、ポインタのポインタ使用版に改良できる人いたらお願い。

49 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:56:33 ]
gets使うなよ。

50 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:06:10 ]
そういう事は言ってやるなよ。
宿題丸投げする奴への餞別のつもりだろ。

51 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:12:33 ]
申し訳ありません。宜しくお願いします

【質問テンプレ】
[1] アプリ開発
[2] OS内にあるサウンド出力プログラム作成
[3.1] Windows
[3.2]eclipse バージョンは分かりません
[3.3] どちらでもイイらしいです
[4] 7/18(水)
[5] スタイルシートを自ら作りSQLで模擬エクセル作成、バックトラック法、動的計算法はやりました

52 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:16:04 ]
>>51 
接続部位のデバイス設定をやりたいのか
WAVとかmp3とかの出力ファイルを作りたいのか
メディアプレイヤーとかのアプリを作りたいのかはっきりしろw
意味が中途半端で分からんw

53 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:17:54 ]
ecliってCコンパイラあったのか?
ちょっとしか触った事ないけどJava用IDEってイメージだった

54 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:18:36 ]
>>51 eclipseならbccだろ?ちゃんと書いたほうがいいよ

55 名前:36 mailto:sage [2007/07/16(月) 18:18:48 ]
すいませんがどなたか使い方教えてください・・・

750 :デフォルトの名無しさん [sage] :2007/07/12(木) 13:00:15
>>748 ショボイですが
暗号
#include <stdio.h>
#include <ctype.h>

static char alpha[53] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
static char table[53] = "zNFeYMljvJXKicfrGyDEOwQpHkCLbxhqRAPsnouVTaWIZdUmBStg";

int getindex(char *str, int ch){
int i;
for(i = 0; i < 52 && str[i] != ch; i++) ;
return i;
}

int main(int argc, char *argv[]){
FILE *fpin, *fpout;
int ch, op;

if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) exit(1);

while((ch = fgetc(fpin)) != EOF)
if(isalpha(ch)) fputc(table[getindex(alpha, ch)], fpout);
else fputc(ch, fpout);

fclose(fpin), fclose(fpout);

return 0;
}



56 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:18:59 ]
>>27
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4635.txt

2重ポインタ版。
縦に表示なんて面倒な指定さえなければもっとメモリ節約できるけど。

57 名前:56 mailto:sage [2007/07/16(月) 18:19:44 ]
安価ミス
>>27×
>>29

58 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:23:31 ]
>>55
「main」関数に「引数」があるわけだな
ぐぐってみろ
ぐぐってまったく意味不明だったら答えてやる


59 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:24:45 ]
>>51 ちょwwwそれ宿題ってレベルじゃねーぞw どこの学校だよw

60 名前:56 mailto:sage [2007/07/16(月) 18:25:29 ]
訂正、下の方の
putchar(str[j][i]);
の行を
if(str[j][i]!='\0')putchar(str[j][i]);
にしといて。

61 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:25:54 ]
>>55
問題文もくれなきゃ何がしたいのかわからん。
ソース見る限り単一換字暗号?

62 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:27:31 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4636.c

63 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:33:17 ]
>>51
多分これじゃダメなんだろうな

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
char cmd[10+FILENAME_MAX];

if(argc==2){
sprintf(cmd, "start %s", argv[1]);
system(cmd);
}

return 0;
}

64 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:37:24 ]
>>61
任意の英文について、換字暗号表を用いて暗号化するプログラムと、
暗号化した文を同様の表を用いて解読するプログラムを作成せよ。
入力する文章と換字暗号表の形式は自由にしてよいものとする。(別に用意したテキストファイルから読み込む形のほうが好ましい)


abcd… という英文があったとき、換字暗号表がa→t b→y c→e d→k…だったなら、
tyek…と出力されるプログラム、またその逆操作するプログラム
という意味です。

という文章でお願いしたところ、>>55のような回答をいただきましたが、使い方がわかりませんでした
よろしくお願いします

65 名前:51 mailto:age [2007/07/16(月) 18:37:46 ]
すいません 組み込み系です。

>>52さんの言われている中では「接続部位のデバイス設定」になると思います

>>63すいません OS無しで作る方法を・・・・・



66 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:39:58 ]
OS無しとは、一気に難易度が上がったな。

67 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:40:10 ]
>>51
UNIX板行った方がいいと思うよ あっちは組み込み系だから・・・・・・

68 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:41:40 ]
その誘導のしかたもどうかと思う。

69 名前:デフォルトの名無しさん [2007/07/16(月) 18:41:54 ]
>>56
スベース文字のスキップがない

70 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:42:24 ]
>>51 ちょwwどこの学校だ・・・・・今後の参考に教えてくれないか?

71 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:46:30 ]
>>51 マジレス:卒業したら年収700万で雇うから来てくれ 
housurejiak2245589761045@hotmell〜

72 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:47:12 ]
>>51 の学校で他人のソースコピペ無しで卒業なら、めちゃめちゃ優秀なマだな

73 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:52:43 ]
>>51 君の学校は新しいOSを開発しているのか?

申し訳無いが、俺らはソフト屋だ。そっち側はまったく分からん
助けにならなくて申し訳ない



74 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 19:00:12 ]
CPUの演算がどのように行われているのかをまず覚えよ

底辺マは出力結果にしか興味を持たない だからバグがでる



75 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:02:39 ]
>>51
サウンドデバイスの IO の定義が無いとどうにもならない
最低限でも
1.音量設定の方法
2.周波数設定の方法
3.サウンドバッファへの書き込み&失敗検出の方法
くらいは必要だと思うよ



76 名前:55 mailto:sage [2007/07/16(月) 19:05:29 ]
>>58
ぐぐってみましたが意味不明でした…
すいません、教えていただけますか?

77 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:06:56 ]
>>63 が駄目ならこれも駄目ってことか
OS無しって難しすぎだろ
PlaySound("c:\\windows\\media\\chimes.wav", NULL, SND_SYNC | SND_FILENAME);

78 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:08:20 ]
>>76
./a.out 変換元ファイル 変換後ファイル名

79 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:10:28 ]
>>64
出てきたバイナリのコマンドラインに対象テキストファイル名と出力先ファイル名を追記。
例えばコンパイルして出てきたプログラムがa.exe、暗号化するテキストがbefore.txt、
出力先をafter.txtとするなら
a.exe before.txt after.txt
でafter.txtに暗号化済みのファイルが出力される。
逆操作は不可。そういう意味では>>55は要件を満たしていないね。

こんなとこに丸投げする人にいう事じゃないと思うけど
こんくらいのソース読めないでこれからやっていけると思ってる?

80 名前:51 mailto:age [2007/07/16(月) 19:12:04 ]
すいません
やっぱり 自分でやってみます

自分で考えて解決しなきゃ成長しませんもんね・・・・・

色々ありがとうございました。

>>71さん、心使いは嬉しいのですが学校で研究を続けるつもりなので・・・・

それと学校名は出せません。ごめんなさい






81 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:15:45 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4638.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 出来る限り単純な方法で回答して下さると助かります。
よろしくお願いします。




82 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:16:44 ]
擁護するわけじゃないけど、コマンドライン引数の実際の使い方は教本によっちゃ物凄い投げやりだからな。
こんなんで分かればエスパーだろってぐらい。
で、分からんから後まわしにして課題出てくると四苦八苦するんだよな。

83 名前:デフォルトの名無しさん [2007/07/16(月) 19:16:53 ]
>>80
ここの方達が手上げてるのを完成させるの難しくない?
>>67の行ってるUNIX板行った方がよくない?

84 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:18:28 ]
>>81
前スレに同じのがあったから見てくるといいと思うよ。

85 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:20:27 ]
LL構文解析懐かしすぎる



86 名前:デフォルトの名無しさん [2007/07/16(月) 19:27:12 ]
>>29
だれかお願いします。
>>47,48ががんばってくれたけど「ポインタのポインタ」使用版でないと
駄目な課題なので分かる方お願いします。

>>47,48
ありがとうございます。

87 名前:56=57=60 mailto:sage [2007/07/16(月) 19:29:07 ]
orz

88 名前:51 mailto:age [2007/07/16(月) 19:32:53 ]

自分も投げ出してたから人のこと言えないけど
時間かかってでも自分で考えて解決した方がいいと思う

89 名前:デフォルトの名無しさん mailto:unko [2007/07/16(月) 19:34:51 ]
>>88
秀同って事でスレ終了 乙です

90 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:45:35 ]
>>78
その通りやっても出来ない・・・なぜでしょうか

91 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:57:19 ]
>>90
次の一連のコマンドを打ち込んだ結果を晒してみて
echo hello>a.txt
./a.out a.txt b.txt
echo $?
cat b.txt

92 名前:91 mailto:sage [2007/07/16(月) 19:59:42 ]
最後に追加
ls -l a.out a.txt b.txt

93 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:00:57 ]
C:\Documents and Settings\******>echo hello>a.txt

C:\Documents and Settings\******>./a.out a.txt b.txt
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Documents and Settings\******>echo $?
$?

C:\Documents and Settings\******>cat b.txt
cat: b.txt: No such file or directory

こうなりました

94 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:02:44 ]
C:\Documents and Settings\******>ls -l a.out a.txt b.txt
ls: a.out: No such file or directory
ls: b.txt: No such file or directory
-rw-rw-rw- 1 user group 7 Jul 16 19:59 a.txt

追加の分はこうなりました
コマンドプロンプトで実行しました

95 名前:91 mailto:sage [2007/07/16(月) 20:05:31 ]
>>93
linux じゃなかったのかよ!

echo hello>a.txt
.\a.exe a.txt b.txt
type b.txt
dir



96 名前:デフォルトの名無しさん [2007/07/16(月) 20:08:41 ]
笑った。
どうみてもコマンドプロンプトかcygwinとかだね。

97 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:21:17 ]
>>86
皆さんの回答を参考にして作ってみた。これでどうかな。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4639.txt


98 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:31:46 ]
よく見てないけど。
if(buf[strlen(buf)-1] == '\n')
buf[strlen(buf)-1] = 0;
↑ifで判定する必要ない。

99 名前:デフォルトの名無しさん [2007/07/16(月) 20:41:55 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4641.txt
参考コードは一部使用していない

100 名前:99 mailto:sage [2007/07/16(月) 20:52:38 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4642.txt
一部訂正

101 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:00:34 ]
>>42
コンパイルしていない
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _{ int r, i; } img;
static img *ary=NULL;
static int arysize;
static int arylen;
void putimg(img img){
if(arysize<=arylen){
arysize+=10;
ary=realloc(ary, sizeof(img)*arysize);
}
ary[arylen++]=img;
}
int main(void){
img m;
int i;
for(;;){
scanf("%d,%d", &m.r, &m.i);
if(m.r==1&&m.i==0) break;
putimg(m);
}
for(m.r=1, m.i=i=0;i<arylen;i++){
printf("%d+%d*i\n", ary[i].r, ary[i],i);
m.r=m.r*ary[i].r-m.i*ary[i].i;
m.i=m.r*ary[i].i+m.i*ary[i].r;
}
printf("%d+%di\n", m.r, m.i);
}

102 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:04:13 ]
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
• 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う
• 適用する公式は,シンプソンの公式
S=h/3{y(0)+y(2n)+4{y(1)+y(2)+....+y(2n-1)}+y(2)+y(4)+.....+y(2n-2)}
• f ( x)=1/(1+x2)
• a=0, b=10, e=0.0000001の場合の積分値とnの値を表示する
• 各変数(nを除く)の型はdoubleとする

[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:次の木曜まで
[5] その他の制限: これといって無し
リンク先に手順の例とかがあります
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4644.txt

とりあえず自分でやってみたけど無理でした。この雑魚にどなたかご教授をorz

あと最後らへんのprintf文の、&nの&は無かったことに(´;ω;`)

103 名前:デフォルトの名無しさん [2007/07/16(月) 21:05:06 ]
>>97
ぜんぜん良いと思います。
ありがとうございます。
ポインタのポインタを使っていてちゃんと動作するものなら問題ないので。

104 名前:デフォルトの名無しさん [2007/07/16(月) 21:09:42 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4645.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin
 [3.3] 言語: C
[4] 期限: 7/17午前中
[5] その他の制限: なし

105 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:19:06 ]
>>103
ベースは>>56さんのなので、よろ



106 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:34:45 ]
>>102
#include <stdio.h>

double f(double x){
    return 1.0/(1.0+x*x);
}

int main(void){
    double a=0.0, b=10.0, h, sum;
    long n=10000000, i;

    h=(b-a)/n;

    sum=f(a)+f(b);
    for(i=1;i<n;i+=2) sum+=2*f(a+h*i);
    for(i=2;i<n;i+=2) sum+=4*f(a+h*i);
    sum*=h/3;

    printf("Answer: %f\n", sum);

    return 0;
}

107 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:14:38 ]
>>106さん、ありがとうございます。工夫すればかなり短くなるんですね・・・

それと、問題文に抜けてしまったんですが
• s2は最新の計算結果,s1は一つ前の計算結果
• |s2-s1|<eとなるまで,nを1増やしながら,以下の
処理を繰り返す
- s1←s2
- s2を新しいnで計算する

というのはどうすれば出来るでしょうか?よろしければご教授お願いします

108 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:24:21 ]
>>104
#include <stdio.h>

int main(void){
    int masu[9], a, i, j, turn = 0;
    char *koma[3] = {" 0 ", " X ", " * "};
    for(i = 0; i < 9; i++) masu[i] = 2;
    while(1){
        do{
            printf("?"), scanf("%d", &a);
            if(a >= 9) continue;
        }while(masu[a] != 2);
       
        masu[a] = turn%2;
        turn++;
        for(i = 0; i < 3; i++){
            for(j = 0; j < 3; j++) printf("%s", koma[masu[i*3 + j]]);
            printf("\n");
        }
        if((masu[(a + 3)%9] == masu[a] && masu[(a + 6)%9] == masu[a]) ||
          (masu[3*a/3 + (a + 1)%3] == masu[a] && masu[3*a/3 + (a + 2)%3] == masu[a]) ||
          (a%4 == 0 && masu[0] == masu[a] && masu[4] == masu[a]&& masu[8] == masu[a]) ||
          (a%2 == 0 && a%8 != 0 && masu[(a + 2)%8 + 2] == masu[a] && masu[(a + 4)%8 + 2] == masu[a])){
            printf("%s\n", koma[masu[a]]);
            break;
        }else if(turn >= 9){
            printf("draw\n");
            break;
        }
    }
    return 0;
}

109 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:29:18 ]
一つでまとめますかw
あんたすごいよ。

110 名前:21 mailto:sage [2007/07/16(月) 22:30:37 ]
どなたか>>21お願いします!

111 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:33:10 ]
>>107
#include <stdio.h>
#include <math.h>

double f(double x){
    return 1.0/(1.0+x*x);
}

int main(void){
    double a=0.0, b=10.0, e=0.0000001, h, s1=0.0, s2;
    long n, i;
    int is_first=1;

    for(n=2;;n+=2){ // アルゴリズムの関係で n は偶数
        h=(b-a)/n;

        s2=f(a)+f(b);
        for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
        for(i=2;i<n;i+=2) s2+=4*f(a+h*i);
        s2*=h/3;
        if(!is_first && fabs(s2-s1)<e) break;
        s1=s2;
        is_first=0;
    }

    printf("n=%ld integral=%f\n", n, s2);

    return 0;
}

112 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:46:56 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
CSVファイルからデータを読み込み、構造体に入れる。
CSVファイルの中身は、名前・住所・電話番号で、10件以内である。
構造体には、登録番号・名前・住所・電話番号を入れる。
登録番号は自分でつける。
最初に、登録番号と名前を表示し、入力された登録番号に応じて
名前住所電話番号を表示する。
[3] 環境
 [3.1] OS:windows cygwin
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特になし

色々かんがえたのですがわかりませんでした。。
よろしくおねがいします。


113 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:48:53 ]
>>111さん
素早い回答ありがとうございました。おかげで次の宿題は出せそうです。ありがとうございました。

114 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:49:29 ]
>>107
ごめん間違った

for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);

for(i=1;i<n;i+=2) s2+=4*f(a+h*i);
for(i=2;i<n;i+=2) s2+=2*f(a+h*i);

115 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:50:12 ]
あちゃー手遅れだったか



116 名前:スモーク [2007/07/16(月) 22:50:23 ]
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

まだcaseになれていないのだろうか・・・。
教えてください。

117 名前:スモーク [2007/07/16(月) 22:51:41 ]
他にも。
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。

キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。

また開催年でない場合は、画面にその旨メッセージを出力すること。



118 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:55:35 ]
>>117
説明がneeeeeeeeeeeee

119 名前:107 mailto:sage [2007/07/16(月) 22:56:05 ]
>>114さん、わざわざ丁寧にありがとうございます!(´;ω;`)ブワッ

120 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:57:52 ]
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字列を置換するプログラムをつくれ。
どのような形でもいいので、置き換える文字列と置き換えられる文字列を受け取り
置換した文章を出力する。なるべくポインタを使うこと。試しにちゃんと動くか確認すること。
(例)”僕" を ”私” に置換する
僕は20才だ。僕の好きなたべものはお酒だ。
-> 私は20才だ。私の好きなたべものはお酒だ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:(gcc 2.95.3)
 [3.3] 言語: C
[4] 期限: (2007年07月31日23:59まで )
[5] その他の制限: 無し

121 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:58:12 ]
まぁ、感謝されたって力つかなきゃ意味無いし、暇つぶしの種にされてるだけだから考え物だけどな。

122 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:05:22 ]
>>110
あれでできてるんじゃねえのか?
scanfの前に"c2p Message:","p2c Message:"とか
printfをいれて挙動をチェックしろ

123 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:11:52 ]
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4648.txt

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/7/17(火) 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。

どうかよろしくお願いします。

124 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:16:50 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): メンバx[]の値が定まっているPoint5Dのインスタンスを引数とし,
                その2ノルムを計算して返す関数 Norm を書け.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:無し

問題の意味がいまいち分かりません…orz
よろしくお願いします。


125 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:17:09 ]
>>120
#include <stdio.h>
#include <string.h>

void replace(char *sentence, char *src, char *dest){
    char *ptr;
    int src_len;

    src_len=strlen(src);
    for(;;){
        ptr=strstr(sentence, src);
        if(ptr==NULL) break;
        printf("%.*s%s", ptr-sentence, sentence, dest);
        sentence=ptr+src_len;
    }
    printf("%s", sentence);
}

int main(void){
    char *sentence="僕は20才だ。僕の好きなたべものはお酒だ。";
    char *src="僕", *dest="私";

    replace(sentence, src, dest);

    return 0;
}



126 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:18:52 ]
>>120
#include <stdio.h>
int main(int argc, char **argv)
{
    char *queue;
    int c, qhead = 0, qtail = 0, qsize;
    if (argc < 3)
        return fprintf(stderr, "usage: %s from to\n", argv[0]), 1;
    qsize = strlen(argv[1]);
    queue = malloc(qsize);
    while ((c = getchar()) != EOF) {
        queue[qtail] = c;
        qtail = (qtail + 1) % qsize;
        if (qhead != qtail) continue;
        if (memcmp(&queue[qhead], argv[1], qsize - qhead) == 0
        && memcmp(queue, argv[1] + qsize - qhead, qtail) == 0) {
            fputs(argv[2], stdout);
            qhead = qtail = 0;
        } else {
            putchar(queue[qhead]);
            qhead = (qhead + 1) % qsize;
        }
    }
    while (qhead != qtail) {
        putchar(queue[qhead]);
        qhead = (qhead + 1) % qsize;
    }
    free(queue);
    return 0;
}

127 名前:126 mailto:sage [2007/07/16(月) 23:21:41 ]
あ。
#include <stdlib.h>
#include <string.h>
もしといて。スマソ。

128 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:28:07 ]
>>125
ありがとうございます。かなりきれいにできていますね。
自分もstrstr ()を使ったのですが、途中でつまってしまいました。

129 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:28:59 ]
>>120 便乗
#include <stdio.h>
#include <string.h>

int main(void)
{
    char buf[1024], rep[2048], word1[32], word2[32], *p = buf, *q = rep;
    scanf("%[^\n]%s%s", buf, word1, word2);
    while(*p){
        if(!strncmp(p, word1, strlen(word1))) strcpy(q, word2), p += strlen(word1), q += strlen(word2);
        else *q++ = *p++;
    }
    *q = '\0';
    puts(rep);
    return 0;
}

130 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:31:06 ]
>>126
すごいですね。こんなやりかたもあったのですか。

131 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:38:44 ]
>>129
検索単語がみつかったら単語の文字の数だけ前に進めてstrcpy()をつかうのですね。
それも考えていたのですが、できそうでできませんでした。
みなさん、ありがとうございました。

132 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:40:48 ]
[1] 授業単元:情報基礎
[2] 問題文:
・1から9までの数字を一回ずつ使った9桁の数字を小町数という。
 自乗した数が小町数となるような自然数をすべて求めるプログラムを作成し
 その数と小町数の両方を出力せよ

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: (明日まで )
[5] その他の制限: 無し



 C言語習いたてで、期限ぎりぎりまでがんばったんですけどダメでした
どなたかよろしくお願いします。

133 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:52:56 ]
昔のスレに同じ質問あった気がするな

134 名前:22 mailto:sage [2007/07/16(月) 23:54:32 ]
>>25
ありがとうございます。
なんですが、元々のソースを追記修正して今まできたので
一応そのような形でって事になってます。
制限なしと書いていましたが、現在のソースを
やっと作れるか作れないかぐらいのレベルなので
>>25さんのだとまだちょっとわからないことがいろいろとあります。
勉強してみます。ありがとうございました。



135 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 00:08:28 ]
>>132
#include <stdio.h>
#include <string.h>
int check(unsigned long n)
{
    char f[10] = { '0' };
    for (n = n * n; n > 0; n /= 10)
        f[n % 10] = '1';
    return memcmp(f, "0111111111", 10) == 0;
}
int main(void)
{
    unsigned long n;
    /*
    * 最小小町数 123456789, sqrt(123456789) = 11111.11...
    * 最大小町数 987654321, sqrt(987654321) = 31246.96...
    */
    for (n = 11111; n < 31428; ++n)
        if (check(n))
            printf("%lu * %lu = %lu\n", n, n, n * n);
    return 0;
}



136 名前:135 mailto:sage [2007/07/17(火) 00:11:09 ]
あ、コメント間違ってら
sqrt(987654321) = 31426.96...
ね、正しくは。

137 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 00:18:27 ]
>>136
わざわざありがとうございます!
今できる環境にないので明日大学で試してみます






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

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

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