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/
2 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:14:28 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6835.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 明日まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) スレが変わったのでもう一度書き込ませていただきます。 明日までなのでどうにかよろしくお願いします。。
3 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:08:35 ] [1]プログラミング [2]問題文 int型整数の四乗値を返す関数、int pow4(int x)を作る。 ただし関数sqrを利用すること。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明後日まで。 よろしくお願いいたします。
4 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:09:51 ] >>3 >関数sqr ここ詳しく
5 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:18:31 ] [1] 授業単元:Cプログラミング入門 [2] 問題文:間隔1の碁盤目状に格子点が並んでいます。 外径R+1、幅1の円環に含まれる格子点の数nを求めるプログラムを作成しなさい。 なお、格子点が円環の境界上にあった場合、外側境界上の点は含め、内側境界上の点は含めない。 以下に半径R=2の場合を示します。 ttp://upp.sakura.ne.jp/src/upp18015.png 全部で16個の格子点が円環に含まれます。 半径が少ない場合の例をあげておきます。 (R,n)=(0,4),(1,8),(2,16),(3,20),(4,32) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C [4] 期限:[2008年6月10日まで] [5] その他の制限:まだ大した勉強はしていません。
6 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:19:04 ] >>3 #include <stdio.h> int sqr(int x) { return x * x; } int pow4(int x) { return sqr(sqr(x)); } int main(void) { int n; scanf("%d", &n); printf("%d\n", pow4(n)); return 0; }
7 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:21:29 ] >>4 問題文には、二乗値を返すという問題の際にsqrという関数を使ったんですが、この四乗値を返すという問題でもsqrを使えと書いてるんですよね。
8 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:31:17 ] >>5 #include<stdio.h> #include<math.h> #define EPS (1e-10) long internal_point(double r){ int x, y; long count=0; for(x=0;x<=r;x++){ y=sqrt(r*r-x*x+EPS); if(x==0) count+=2*y+1; else count+=(2*y+1)*2; } return count; } int main(void){ int R=2; printf("%ld\n", internal_point(R+1)-internal_point(R)); return 0; }
9 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:33:28 ] >>7 int pow4(int x){ return sqr(x)*sqr(x); }
10 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:33:38 ] >>8 ありがとうございました。
11 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:35:07 ] >>6 #include <stdio.h> #define R 2 int main() { int x, y; unsigned n = 0; for(x = -(R + 1); x <= R + 1; ++x) for(y = -(R + 1); y <= R + 1; ++y) { unsigned r = x * x + y * y; if(R * R < r && r <= (R + 1) * (R + 1)) ++n; } printf("%d\n", n); return 0; } 浮動小数点数つかうなんて正気の沙汰と思えねえ
12 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:45:55 ] Rが整数だとは?
13 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:50:20 ] >>11 それだと実行時間が半端ねえよ R=10000 の時 >>8 1[msec] >>11 625[msec]
14 名前:5 ◆3kDaM44dXs mailto:sage [2008/06/08(日) 21:10:06 ] >>8 すいません、これだと R=2のときのものしかできないので、 Rを打ち込んでそのときのnを求めるプログラムがほしいのですが… >>12 整数です。
15 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:30:10 ] >>14 #include<stdio.h> #include<math.h> #define EPS (1e-10) long internal_point(double r){ int x, y; long count=0; for(x=0;x<=r;x++){ y=sqrt(r*r-x*x+EPS); if(x==0) count+=2*y+1; else count+=(2*y+1)*2; } return count; } int main(void){ int R=2, n; printf("Input R : "); scanf("%d", &R); n=internal_point(R+1)-internal_point(R); printf("%d\n", n); return 0; }
16 名前:5 ◆3kDaM44dXs mailto:sage [2008/06/08(日) 21:35:35 ] >>15 ありがとうございました。
17 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:47:23 ] 格子点の表示はしなくていいの?
18 名前:5 ◆3kDaM44dXs mailto:sage [2008/06/08(日) 21:48:32 ] >>17 格子点の数nだけでよいです。 ありがとうございます。
19 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:03:53 ] [1] 授業単元:コンピュータグラフィックス [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VisualC++6.0 [3.3] 言語: C++ [4] 期限:明日の昼までにお願いします。 [5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。
20 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:04:20 ] [1] 授業単元:コンピュータ入門 [2] 問題文(含コード&リンク): たてa,よこbの長方形から半径cの円をできるだけ多く取りなさい 出力:円は何個できましたか? 長方形の何パーセント使いましたか? [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:わかりません [3.3] 言語: C [4] 期限:明日中 [5] その他の制限:できるだけ簡単に お願いします
21 名前:前スレ765 mailto:sage [2008/06/08(日) 22:06:33 ] [1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク):forkによる子プロセスの生成 子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ ラムを実行させるようなプログラムを作成しなさい。 ///fork1.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt ///fork2.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月11日 fork1とfork2は外部プログラムとして呼びます。 よろしくお願いします。
22 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:16:23 ] [1] 授業単元:アルゴリズム論 [2] 問題文(含コード&リンク):() 安定結婚問題を解くプログラムを実装し実行せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 6/9(月)の13時まで [5] その他の制限: 過去ログ106を基に組み立ててみたのですが、どうも安定な組合わせが うまく出力できません。どうかよろしくお願いします> < kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6838.txt
23 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:14:47 ] >>20 #include<stdio.h> int main(void){ int a,b,c,count=0,menseki=0; double circle=0,amari=0; printf ("縦:"); scanf("%d",&a); printf ("横:"); scanf("%d",&b); printf ("円の半径:"); scanf("%d",&c); menseki = a*b; circle = c*c*3.14; count = menseki/circle; amari = (menseki-(circle*count))/menseki; printf ( "%d個 余り%4.2f%%\n",count,(amari*100)); } 間違えたこれ円の個数じゃなくて、ただ面積引いてるだけだ 長方形から円を引くって難しいな…俺も知りたいから誰か答えて
24 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:08:42 ] >>20 問題文は以上ですか? その問題文ですべてなら 円はほぼ無限個でき、長方形のほぼ100%を使うことができます。
25 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:12:45 ] できるわけねーだろ
26 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:13:06 ] >>24 わかりにくくてすみません 長方形を円でくりぬいていき何個円ができるかという感じでお願いします >>23 考えてくださってありがとうございます
27 名前: ◆nOwZY.WgD2 mailto:sage [2008/06/09(月) 03:35:22 ] [1] 授業単元:Cプログラミング入門 [2] 問題文:文字列を入力し、その長さ(入力した文字数)を求めよ [例]文字列を入力して下さい:abcde fghijkl mn 文字の長さ:16 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名:VC++6.0 [3.3] 言語:C [4] 期限:6月10日まで [5] その他の制限:標準関数を使わずにお願いします。
28 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 03:44:47 ] >>27 #include <stdio.h> int main(void){ char str[64]; int nlen; scanf("%s", str); for (nlen = 0; str[nlen]; nlen++); printf("文字列の長さ:%d", nlen); return 0; }
29 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 03:45:38 ] ゴメン、scanfはスペースで区切っちゃうんだった
30 名前: ◆nOwZY.WgD2 mailto:sage [2008/06/09(月) 04:00:14 ] >>28 ありがとうございます! こうやってみるとめっちゃ簡単ですね(;><)
31 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 04:09:27 ] gets使ってもいいなら scanf("%s", str); ↓ gets(str); にしといてください
32 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 04:49:08 ] #include <stdio.h> int main(void) { int i, ch; printf("文字列を入力して下さい:"); for(i=0; (ch=getchar())!='\n'; i++); printf("文字の長さ:%d\n", i); return 0; }
33 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 05:29:30 ] #include <stdio.h> int main(void) { int i, ch; printf("文字列を入力して下さい:"); for(i=0; (ch=getchar())!='\n' && ch!=EOF; i++); printf("文字の長さ:%d\n", i); return 0; }
34 名前:デフォルトの名無しさん [2008/06/09(月) 10:22:30 ] >>20 ようするにクッキーの生地(長方形)から型(円)を何個とれるか、てこと?
35 名前:20 mailto:sage [2008/06/09(月) 10:44:00 ] >>34 そうです
36 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:33:25 ] >>21 外部プログラムとして動かすのにforkなの?
37 名前:20 mailto:sage [2008/06/09(月) 12:38:46 ] どなたか20の解答お願いします!!
38 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:53:25 ] >>37 難しいです 解法plz
39 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:18:42 ] むずいね。 しかも今日中か。
40 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:21:42 ] しかもこれがコンピュータ入門すか。 前回の課題とかせっかくだから載せてもらえる? できれば作成したソースも。
41 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:25:31 ] >>20 とりあえず a<b ならそれなりの解が出るソースコード 解法plz #include<stdio.h> #include<stdlib.h> #include<math.h> int pattern1(double a, double b, double c){ int x, y; y=(a-2*c)/(sqrt(3.)*c)+1; x=b/(2*c); return x*y-y/2; } int pattern2(double a, double b, double c){ int x, y; y=a/(2*c); x=b/(2*c); return x*y; } int main(int argc, char *argv[]){ double a=20., b=30., c=3.; int num, maximum; switch(argc){ case 4: c=atof(argv[3]); case 3: b=atof(argv[2]); case 2: a=atof(argv[1]); } maximum=pattern1(a, b, c); num=pattern2(a, b, c); if(num>maximum) maximum=num; printf("円の数:%d 使用率:%.3f%%\n", maximum, (c*c*M_PI*maximum)/(a*b)*100); return 0; }
42 名前:41 mailto:sage [2008/06/09(月) 13:44:20 ] >>20 >>41 の訂正 return x*y-y/2; ↓ return x*y-((b-x*2*c<c)?y/2:0);
43 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:47:56 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): abbcという問題の中にabがあればそのabをxyzに置き換えるプログラムをつくりなさい、です。 また、なかった場合は問題をそのまま出力するようにしなさい、です。 問題と単語は自分で適当に入力するようにプログラムするようにしなさい、です。 どうぞよろしくお願いします。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年6月12日まで [5] その他の制限: ポインタ変数を習ってまもないです
44 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:00:10 ] >>43 #include<stdio.h> #include<string.h> void replace(char dest[], const char src[], const char modify[], const char org[]){ const char *p; int org_len; org_len==strlen(org); while((p=strstr(src, org))){ dest+=sprintf(dest, "%.*s%s", p-src, src, modify); src+=p-src+org_len; } sprintf(dest, "%s", src); } int main(void){ char *src="abbc", *org="ab", *modify="xyz"; char dest[1024]; puts(src); replace(dest, src, modify, org); puts(dest); return 0; }
45 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:01:03 ] >>44 の == を = に訂正しておいて
46 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:52:14 ] ここのスレって、意外と勉強になる、、、、
47 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:53:51 ] >>46 ここも一緒に見てると、C言語に詳しい人があれこれ討論して て知らないことも詳しくでてきたりするのでいいよ。 C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/
48 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:22:34 ] >>44 ありがとうございます。 あと、聞きたいのですが、xyzに置き換えるのはそのままでアルファベットを任意でprintf,scanfして行う場合は どのようにプログラムを書いたらいいのでしょうか?
49 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:38:39 ] [1] 授業単元:Cプログラミング [2] 問題文: 入力した文字からキャラクターを作成し、名前とパラメーターを表示。 入力した文字によってパラメーターが変化する。 例)・生命力 = 入力した文字コードの合計 ・攻撃力 = 入力した偶数番目文字コードの合計 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名:VC++6.0 [3.3] 言語:C [4] 期限:6月13日まで [5] その他の制限:文字列操作を習ったばかりです。 例にある生命力、攻撃力の場合のプログラムをお願いします。
50 名前:デフォルトの名無しさん [2008/06/09(月) 16:44:54 ] リナックスの問題で 1+(1+2)+(1+2+3)+(1+2+3+・・・+n) 二重ループを用いて書いてください。 よろしくお願いします
51 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:46:22 ] >>49 #include <stdio.h> #include <string.h> int main(void) { char name[1024]; int code = 0; int hp = 0, at = 0; int i = 0; gets(name); for (i = 0; i < strlen(name); i++) { code = name[i]; hp += code; if (i % 2 == 0) { at += code; } } printf("名前:%s 生命力:%d 攻撃力:%d\n", name, hp, at); return 0; } 間違ってたら自分で治してね☆
52 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:15:12 ] >>51 無事エラーも出ず、例のとおり実行できました。 ありがとうございます。
53 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:22:15 ] >>50 #include <stdio.h> int main(void) { int i, j, n, sum = 0; scanf("%d", &n); for(i=1; i<=3; i++) for(j=1; j<=i; j++) sum += j; for(i=1; i<=n; i++) sum += i; printf("%d", sum); return 0; }
54 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:33:09 ] 1 + (1 + 2) + (1 + 2 + 3) + ・・・ + (1 + 2 + 3 + ・・・・ + n)
55 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:47:37 ] [1] 授業単元:グラフ理論2 [2] 問題文: ノード数100、平均リンク数4の、 ランダムネットワークを生成。 各ノードには予め1or-1の値をランダムで割り振る。 このネットワーク全体の熱量を求めるプログラムを考えよ。 *注意1 Ni(ノードi)とNj(ノードj)、 熱量=Ni*Nj 上記の式を全リンクで計算し、結果を足し上げていく。 すなわち、接続しているノード同士が同じ値だと全体の熱量は増していく。 *注意2 ランダムネットワークとは、リンク数とリンク先がランダムに選択されたネットワークのことで、今回は分断されてないネットワークを利用すること。 [3] 環境 [3.1] 言語:C [4] 期限:6月11日まで 以上、よろしくお願いします。
56 名前: [2008/06/09(月) 19:31:20 ] 内容: [1] 授業単元: c言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6830.txt [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン: [3.3] 言語: c [4] 期限: ([yyyy年mm月dd日hh:mmまで] 今週中に [5] その他の制限:問題文の部分に書いてます。
57 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:13:55 ] >>50 int main(void){ int i=0; int total=0; int n=0; scanf("%d",&n); for(i=1;i<=n;i++){ total+=1+i*i/2; } return 0; } え?二重ループ? 無駄はない方がいいよ
58 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:18:12 ] ん、計算順序おかしいや total+=(1+i)*i/2; だね ついでに printf("%d",total); も足しといて
59 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:26:21 ] 問題の指定を守らないのは回答する資格ないから
60 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:53:40 ] >>20 は壮大な釣りだよ。最密充填はそれほど簡単な問題ではない。 ここ数百年かけてかなり解けるようになってはいるけどね。 多数の数学者の頭脳を持ってしても手こずっている問題だと 推して知るべし。
61 名前:55 mailto:sage [2008/06/09(月) 20:56:21 ] 失礼しました。 再度お願いいたします。 [1] 授業単元:グラフ理論2 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6843.txt [3] 環境 [3.1] 言語:C [4] 期限:6月11日まで
62 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:20:35 ] >>60 そこまで大仰なものでもないだろ
63 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:24:52 ] 長方形に円をつめるだけなら簡単。
64 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:28:25 ] >>56 vistaでの日本語文字コードって何だっけ? Shift-jis と仮定してよいなら、 int c; while ((c = getchar()) != EOF) { if (c & 0x80) { putchar(c); c = getchar; } else if (islower(c)) c = toupper(c); else if (isupper(c)) c = tolower(c); putchar(c); }
65 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:29:35 ] >>60 最適解を求めることができればそれはとてもすごいことだということは 分かるが、自分の思いつく範囲で可能な限りたくさん、というのを 試しているのだと思うよ。 a b がともに2*cよりも大きい →円は1個でき、(c*c*PI)*100/(a*b) パーセント という、とても稚拙なものであっても、とりあえず要求は満たされてるんだよ ということで、>>20 にはがんばってもらいたい。
66 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:31:21 ] getchar; -> getchar(); orz
67 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:34:39 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6846.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 今日中 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 明日以降でも提出はできるのですが、一応期限は今日までなのでよろしくお願いします。
68 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:35:55 ] >>67 たぶん前スレとかによく似たのがあるよ。 今日中ってのもアレな話だけど、がんばれ。
69 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:40:52 ] 誰も見ていないし更新もされていないだろうwikiにスタック載ってるなw
70 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:07:40 ] >>41 ありがとうございます!
71 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:08:54 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6847.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) ChSciTE [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 今日中 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) ファイル読み込み、書き込み
72 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:15:12 ] >>68 前スレっていうと自分の頼んだ課題かもしれません。前スレでも依頼したので・・ 長くて面倒そうだからやってもらえないのかもしれませんが、どうにかよろしくお願いします。。
73 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:32:55 ] >>71 ですが、 コンパイラはBorlandCでもいいです。
74 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:43:09 ] >>72 pc11.2ch.net/test/read.cgi/tech/1211980711/866 この人?なら回答してくれてない? 既に依頼済みならあらためてアップロードしてる意味がちょっと 分からないです。しかも必要な内容削られてるし。。。なぜ。。
75 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:45:27 ] >>74 その通りです。 1つ目の課題はやってもらったのですが、 もう一つの課題が残っていまして・・それが>>67 なのです。。
76 名前:74 mailto:sage [2008/06/09(月) 22:45:59 ] ちゃんと動いたって報告してるしやっぱり違う人でしょかー。 例題のソースからもコメントがばっさり抜かれてるし、どういうことだろう。
77 名前:67 mailto:sage [2008/06/09(月) 22:46:15 ] ちなみに・・長すぎると読むのが面倒かなと思って、短く削ってアップロードし直しました。
78 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:53:22 ] >短く削って 何を削っていいか判断できるぐらいなら宿題も自分で解けるだろw
79 名前:67 mailto:sage [2008/06/09(月) 22:58:26 ] >>78 プログラミング上級者のここのスレの方達だと、例題のコメントや余計な制約は邪魔なだけかなと思って削らせていただきました。 何分実力不足なので、私自身の力では無理です。。力を貸して下さい
80 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:59:57 ] [1]プログラミング [2]問題文 画面に「こんにちは」と表示して改行する、void hello(void)関数を作る。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明後日まで。 よろしくお願いいたします。
81 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:01:19 ] >>80 void hello(void) { printf("こんにちわ\n"); return; }
82 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:04:05 ] >>79 上級者(ってなんだ?)になればコメントが不要になるか? →必要 制約を無視していいか? →よくない ということなんで、素直に kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt の課題2をお願いしますって言っとけばよかったのに。 むやみにアップロードして資源を使うこともないよ。
83 名前:67 mailto:sage [2008/06/09(月) 23:06:06 ] >>82 そうですね、すいません。余計なことをしてしまいました。。 これからは気をつけます。
84 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:31:55 ] >>59 回答するつもりも無いならレスする必要(ry こうですか?わかりません>< この言い方古いのかな
85 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:33:55 ] >>84 っつーか2重ループの回答あがってるし、 どうでもいい
86 名前:21 mailto:sage [2008/06/10(火) 01:56:32 ] >>36 確認しましたが、特に指定はないとのことです… 曖昧な返答で申し訳ありません。どうかよろしくお願いします。
87 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:58:16 ] 制約を守らないのにループを残した>>57 はなんだ? どうせならこうするがね。 int main(void){ int n=0; scanf("%d",&n); printf("%d\n", n*(n+1)*(n+2)/6); return 0; }
88 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:01:11 ] >>19 お願いします。できれば今日中に・・・
89 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:09:47 ] >>86 forkを使って、fork1.c fork2.cそれぞれから生成される実行体を 外部プロセスとして呼び出すのですか? という意図の質問をしてしまったのであれば、前回の課題を実力で 解答したのではないことがばれたかと。 理解しなかったっしょ。もったいない。
90 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:42:29 ] >>88 アフィン変換とかでぐぐってみればどうだろう。
91 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:28:18 ] [1] 授業単元: C言語入門 [2] 問題文(含コード&リンク): 二つの整数値を入力したら最大公約数を表示してくれるやつ作れ [3] 環境 [3.1] OS: windows [3.2] borland c++ 5.5.1 [3.3] 言語: C 自分で作ってみたのですがうまく動きません どこが間違ってるんでしょうか? #include <stdio.h> int main (void) { int x,y,z=0,i=1; printf("二つの整数を「,」で区切って入力してください:"); scanf("%d,%d",&x,&y); while(i==1){ if(x>y) z=x-y; if(x<y) z=y-x; else break; } printf("最大公約数は%d\n",z); return 0; }
92 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:50:48 ] >>91 です 意味ないかもしれませんが 正解に近づいたかもしれないので貼ってみます #include <stdio.h> int main (void) { int x,y,a,b; printf("二つの整数を「,」で区切って入力してください:"); scanf("%d,%d",&x,&y); a=x; b=y; while(a!=b){ if(a>b) a=a-b; if(a<b) a=b-a; } printf("%d%dの最大公約数は%d\n",x,y,a); return 0; }
93 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:52:44 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6849.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) Microsoft Visual Studio 2008 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 明日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 無し お願いします。
94 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:12:00 ] #include <stdio.h> int main(void) { int i, j, count[11] = {0}, n; while(1) { scanf("%d", &n); if(n==-1) break; if(0<=n && n <= 100) count[n/10]++; } for(i=0; i<10; i++) { printf("%3d -%3d %d人 ", i*10, i*10 + 9, count[i]); for(j=0; j<count[i]; j++) putchar('*'); putchar('\n'); } printf("100 %d人 ", count[10]); for(j=0; j<count[10]; j++) putchar('*'); putchar('\n'); return 0; }
95 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:16:28 ] >>92 #include <stdio.h> int main (void) { printf("二つの整数を「,」で区切って入力してください:"); scanf("%d,%d",&x,&y); int a,i; if (x>y) { for (i=1;i<=y;i++) { if (y%i == 0) { if (x%i == 0) a = i; } } } else { for (i=1;i<=x;i++) { if (x%i == 0) { if (y%i == 0) a = i; } } } printf("%d%dの最大公約数は%d\n",x,y,a); return 0; }
96 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:19:57 ] >>93 発展 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, j, count[11] = {0}, n; srand(time(NULL)); while(1) { n = rand() % 102 - 1; if(n==-1) break; count[n/10]++; } for(i=0; i<10; i++) { printf("%3d -%3d %3d人 ", i*10, i*10 + 9, count[i]); for(j=0; j<count[i]; j++) putchar('*'); putchar('\n'); } printf("100 %3d人 ", count[10]); for(j=0; j<count[10]; j++) putchar('*'); putchar('\n'); return 0; }
97 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:43:15 ] >>95 ありがとうございます
98 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:55:23 ] while(a!=b) { while(a > b) a -= b; a = a + b; b = a - b; a = a - b; }
99 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:56:26 ] >>92 ,で区切る意味が全く分からない 再帰を使わずに作ると #include <stdio.h> int gcd(int a, int b); int main(void){ int x, y, z; scanf("%d", &x); scanf("%d", &y); z = gcd(x, y); printf("%d\n", z); } int gcd(int a, int b){ int c; while (b > 0){ c = a % b; a = b; b = c; } return a; }
100 名前:22 mailto:sage [2008/06/10(火) 05:12:14 ] 結構プログラムを書き換えましたが、以前さっぱりです・・・ いつでもいいので、どうかよろしくお願いします。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6850.txt
101 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 05:43:56 ] >>21 #include <sys/types.h> #include <sys/wait.h> #include <stdio.h> #include <unistd.h> int main(void) { pid_t c[2], p; int s; switch (c[0] = fork()) { case -1: perror("fork"); break; case 0: execlp("./fork1", "fork1", NULL); perror("fork1"); _exit(1); /* NOTREACHED */ default: break; } switch (c[1] = fork()) { case -1: perror("fork"); break; case 0: execlp("./fork2", "fork2", NULL); perror("fork2"); _exit(1); /* NOTREACHED */ default: break; } while (c[0] != -1 || c[1] != -1) { int i; if ((p=wait(&s)) == -1) { perror("wait"); break; } else for (i = 0; i < 2; i++) if (p==c[i]) { if (WIFEXITED(s)) printf("fork%c exit(%d)\n", i+1, WEXITSTATUS(s)); else if(WIFSIGNALED(s)) printf("fork%c killed(%d)\n", i+1, WTERMSIG(s)); c[i]=-1;break; } if (i==2) {fprintf(stderr, "?\n"); break;}} return 0; }