- 1 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:27:59 ]
- あなたが解けない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++の宿題片付けます 136代目 pc12.2ch.net/test/read.cgi/tech/1274827528/
- 231 名前:デフォルトの名無しさん [2010/06/26(土) 12:19:15 ]
- >>230
ミス。 6/27(月)でした
- 232 名前:デフォルトの名無しさん [2010/06/26(土) 12:20:03 ]
- >>231
日曜でした。すいませんでした。
- 233 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 14:54:26 ]
- > であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) - 0.6931(x-2)(x-3)
> p1(2.5)=0.919575 であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) + 0.6931(x-2)(x-3) p1(2.5)=0.9105875 物理のかぎしっぽ:計算物理学:補間法:ラグランジュ補完 moondial0.net/archives/www12.plala.or.jp/ksp/computPhys/lag-hokan/index.html
- 234 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 15:11:16 ]
- [1]授業単元:システムプログラミング
[2]課題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10751.txt [3] OS:Windows Vista コンパイラ:CygWin上のgcc 言語 C [4] 7/1迄 [5] 授業は殆ど出ておらず単位を落としそうですんでよろしくお願いしまつ
- 235 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:49:42 ]
- >>229
ラグランジュ補間は手持ちの本「科学技術計算ハンドブック」に 掲載されているので、一次補間も二次補間も意味はわかるけど、 logxの近似をしたかったら、x=1.0から4.0まで近似したいなら、 もっと数表x[], y[]の標本が必要だよ というのは、ラグランジュ補間は極めて振動しやすいという欠点を 持っていて、その欠点を埋め合わせるには数表の取り方を工夫 しなければならない 少なくとも、[x,y]の組み合わせが多数欲しい 今1.0〜4.0の範囲で近似しようとしているのだから、xが0.0から5.0 の範囲で5点ほどは欲しい
- 236 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:58:22 ]
- > 今1.0〜4.0の範囲で近似しようとしているのだから、
x=2.5 のだけで。
- 237 名前:デフォルトの名無しさん [2010/06/26(土) 22:13:54 ]
- >>218を誰か簡単にお願いします
- 238 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:31:31 ]
- >>224
ideone.com/6f9pM
- 239 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:39:35 ]
- >>229
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10752.txt 数表が与えられていないので勝手に作ったよ。 logxはx=1.0未満になるとぐっとマイナスの方へ振れてしまい 標本としてはあまり好ましくないので、x=1.0以下の部分は 標本間隔を詰めた。
- 240 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:40:49 ]
- あ、ごめん>>236が見えてなかった。
>>239の取り扱いは好きなようにしてください。
- 241 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:48:41 ]
- >>237
>>218 codepad.org/3jK2ScYK 簡単というのがSTLを使いまくることだったらすまない。
- 242 名前: ◆C/HmxiIl0o mailto:sage [2010/06/26(土) 23:51:34 ]
- >>239
ありがとうございます。>>236は偽者です。 問題文には数表は全く書かれていなかったのですが、授業で使うスライドを見ていったところ、 1枚だけ、端っこの方に小さくy=f(x)= 1/(1+25*x^2)と書かれていました。 宜しくお願いします。
- 243 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 23:55:23 ]
- よろしく
- 244 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:37:41 ]
- >>242
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10753.txt うーん標本の取り方がいまいちかな・・・ 一次補間が振動しちゃってます 適当に数表をいじって誤差が少なくなるようにトライしてみてください
- 245 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:47:15 ]
- 数値計算理論の問題でC/C++のコーディング技術の問題じゃなさそう
- 246 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 03:08:48 ]
- [1] 授業単元:計算機とアルゴリズム
[2] 問題文(含コード&リンク):数列と漸化式を表示できるように9行目からお願いします。kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10754.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: [3.3] 言語:C [4] 期限: 2010年6月28日 [5] その他の制限:whileを使うと思います。 お願いします。
- 247 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:46:12 ]
- >>246
#include <stdio.h> main() { int n, m, an, sum; m = 5; printf("数列 an = n*n とその和を %d 項目まで表示します\n", m); n = 1; sum = 0; while (n <= m) { an = n * n; sum += an; printf("a[%d] = %d, sum = %d\n", n, an, sum); n++; } }
- 248 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:50:58 ]
- >>246
#include <stdio.h> main() { int n, m, an; m = 5; printf("漸化式 a(n) = 2*a(n-1), a1 = 2 で生成される数列を %d 項目まで表示します\n", m); n = 1; an = 2; while (n <= m) { if (n == 1) { printf("a[%d] = %d\n", n, an); n++; continue; } an = 2 * an; printf("a[%d] = %d\n", n, an); n++; } }
- 249 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 10:35:20 ]
- >>224
ideone.com/vVi7u 期限すぎてるけど、いいどらえもんがかけた。
- 250 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:20:11 ]
- >>210
codepad.org/2uVp97hy 100! まで確認しています。#define で指定している定数を増加させれば、もっと大きな数値にも対応できるかもしれません。
- 251 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 16:39:40 ]
- 【質問テンプレ】
[1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 入力した2つの整数の間 (入力した数も範囲に含める) にある 「2の倍数でない」かつ「3の倍数でない」かつ「5の倍数でない」 の条件を満たす整数を順に表示し,最後にその個数を表示するプログラムを作成せよ [3] 環境 [3.1] OS:VineLinux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年7月4日 [5] その他の制限:なお,整数の入力には get_int() を用いること。 # define BUFFER_SIZE (256)//get_int()です int get_int(void) { char buf[BUFFER_SIZE]; fgets(buf, BUFFER_SIZE, stdin); return atoi(buf); } よろしくおねがいします
- 252 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:46:14 ]
- >>251
codepad.org/kofHJzGi
- 253 名前:251 mailto:sage [2010/06/27(日) 17:12:01 ]
- >>252
迅速な回答本当にありがとうございます
- 254 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:04:24 ]
- [1] 授業単元:情報処理学
[2] 問題文(含コード&リンク): do-while文を用いて、キーボードから入力された値が素数であるかどうかを 判別するプログラムを作成せよ。入力された値が素数の場合は"素数"と出力し、 素数でない場合は最小の因数を出力せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:すいませんがわからないです。 [3.3] 言語:C [4] 期限:2010年6月30日まで
- 255 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:17:03 ]
- 1] 授業単元:情報処理学
[2] 問題文(含コード&リンク): 1次元配列に34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、 これらの平均値を求めよ。さらにint eval[3]という1次元配列を用意して eval[0]には0〜60の数の個数 eval[1]には61〜80の数の個数 eval[2]には81〜100の数の個数 を格納するようにし、それらを出力するプログラムを作成せよ。(配列、for文、if文を使って) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月30日まで
- 256 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:30:25 ]
- >>254
#include <stdio.h> int main(){ int i,n,f; printf("> "); scanf("%d",&n); f=1; i=1; do{ ++i; if(n%i==0){ f=0; break; } }while(i*i<=n); if(f)printf("素数\n"); if(!f)printf("%d\n",i); }
- 257 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:33:36 ]
- >>255
#include <stdio.h> int main(void) { int array[] = {34, 57, 45, 21, 89, 63, 39, 48, 78, 68, 76, 84, 92, 53, 62}, eval[3] = {0}, i; double ave; for(i = 0, ave = 0.0; i <sizeof array / sizeof *array; i++) { ave += array[i]; if(array[i] < 0) continue; else if(array[i] <= 60) eval[0]++; else if(array[i] <= 80) eval[1]++; else if(array[i] <= 100) eval[2]++; } printf("平均値:%f\n", ave / (sizeof array/ sizeof *array)); printf("0〜60の数の個数:%d\n", eval[0]); printf("61〜80の数の個数:%d\n", eval[1]); printf("81〜100の数の個数:%d\n", eval[2]); return 0; }
- 258 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:44:01 ]
- [1] 授業単元:C言語入門
[2] 問題文(含コード&リンク): 次のように表示するプログラムを作りなさい。 私の学籍番号は0000000Aです。 氏名は aaaaa aaaaaaaaです。 ↑半角スペース [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:C++ [3.3] 言語: C言語 [4] 期限: 6月28日午前0時 [5] その他の制限: char型の配列no name を使う。 noに学籍番号、nameに氏名を格納し表示に使う。 自分の学籍番号、氏名はchar型の配列、no nameを初期化して配列に格納する。
- 259 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:52:25 ]
- #include <stdio.h>
int main(void) { char no[] = "0000000A", name[] = "aaaaa aaaaaaaa"; printf("私の学籍番号は%sです。\n", no); printf("氏名は %sです。\n", name); return 0; }
- 260 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:23:44 ]
- >>256
ありがとうございます。
- 261 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:35:45 ]
- >>257
ありがとうございます。
- 262 名前:デフォルトの名無しさん [2010/06/27(日) 22:45:00 ]
- >>241
>>241で書いてもらったみたいな感じです。ありがとうございました
- 263 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:22:42 ]
- a
- 264 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:25:25 ]
- >>259
本当に助かります(涙)ありがとうございます!!!!
- 265 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:45:11 ]
- >>264
いえいえ
- 266 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:33:27 ]
- お礼を言われると返って心苦しくなるなw
- 267 名前:デフォルトの名無しさん [2010/06/28(月) 00:41:58 ]
- >>241
忘れてました 全部の平均ってどういう意味なんですかね?これがいまいちわからないです
- 268 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:47:00 ]
- >>267
例えば、 英数国合計の平均=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点)/3
- 269 名前:268 mailto:sage [2010/06/28(月) 00:56:58 ]
- これのほうがまだわかるかな
(Eavg) +(Mavg) +(Javg) =(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点) +(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点) +(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点) =(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4 =英数国合計の平均
- 270 名前:みすった mailto:sage [2010/06/28(月) 00:58:13 ]
- (Eavg)
+(Mavg) +(Javg) =(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点) +(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点) +(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点) =(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点) これを人数分で割ると (Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4 =英数国合計の平均
- 271 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 01:15:43 ]
- すみっこつつきで申し訳ないけど、変数名がavgなのがちょっと変かもね。
質問者がそれで理解できてるようだからいいけれど。
- 272 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 06:33:29 ]
- >>271
うざいです(>_<)
- 273 名前:デフォルトの名無しさん [2010/06/28(月) 07:26:32 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 社員の情報を管理するプログラムを作りたい。 そこで、以下の例のような構造体Employeeを考える。 以下の構造体Employeeの例は、社員の名前を保存するchar型の配列変数name、年齢を保存するint型の変数age、年譜を保存するint型の変数salaryを有している。 名前は、アルファベットで記述することとし、この構造体では名字だけを管理することとする。(ただし、この構造体のメンバは変更してもかまわない。) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10756.txt このような構造体を用いて、下の実行例のような社員データベースを処理するプログラムを実装しなさい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10757.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月29日まで [5] その他の制限:特にありません。よろしくお願いいたします。
- 274 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:31:05 ]
- 1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク): 2つの自然数 n と m を入力し、その積 n×m を たし算のみで計算するプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows [3.2] borland c++ compiler 5.5 [3.3] 言語: C [4] 期限: 2010年06月28日14:30まで [5] その他の制限: 特になし よろしくお願いします
- 275 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:36:05 ]
- #include <stdio.h>
int main(void) { int n, m, ans; scanf("%d%d", &n, &m); printf("%d * %d = ", n, m); for(ans = 0; m; m--) ans += n; printf("%d\n", ans); return 0; }
- 276 名前:246 mailto:sage [2010/06/28(月) 11:02:07 ]
- >>247
>>248 ありがとうございます。 助かりました。
- 277 名前:274 mailto:sage [2010/06/28(月) 12:02:00 ]
- >>275
ループ変数使用して、printf 文をまとめた方がよくないですか?
- 278 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:05:40 ]
- [1] 授業単元: C言語プログラミング入門
[2] 問題文:関数の再帰的呼び出しによりAckermann(アッカーマン)関数を計算するプログラムを作れ。同じプログラムを繰り返し処理(ループ計算)により実現できるか考えよ。Ackermann関数は次式で定義される。 [3] 環境 [3.1] OS: Mac OS [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年6月30日 [5] その他の制限: 特にはないです。 よろしくお願いします。
- 279 名前:278 mailto:sage [2010/06/28(月) 14:07:58 ]
- Ackermann関数は次式で定義される。の次式を書き忘れてましたすいません。
n+1 m=0 and n>_0 ack(m,n)= ack(m-1,1) m>0 and n=0 ack(m-1,ack(m,n-1)) m>0 and n>0
- 280 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:19:21 ]
- >>277 足し算で
#include <stdio.h> int main(void) { int a,b,c; scanf("%d %d",&a,&b); if (a<b){c=a;a=b;b=c;}c=0;b=-(b); while (b++)printf(b?"%d + ":"%d = %d\n",a,c+=a); return 0; }
- 281 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:20:10 ]
- >>274
#include <stdio.h> int main(void) { int i, n, m, ans; printf("input:"); scanf("%d", &n); printf("input:"); scanf("%d", &m); if(n<0 || m<0) { printf("error"); return 1; } ans = 0; if(n < m){ for(i=n; i > 0; --i) ans += m; }else{ for(i=m; i > 0; --i) ans += n; } printf("\nans:%d * %d = %d", n, m, ans); return 0; }
- 282 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:02:40 ]
- >>224について、教えていただいたプログラムで提出したのですが、
logxの真値と補間で求めた値の誤差を比較していないとのことで受理されませんでした。 >>249さんのような結果を出さないといけないようなのですが、c++だったので、 Cに作り直そうとしたのですが、うまくできませんでした。 大変申し訳ないのですが、Cで作り直していただけないでしょうか? 宜しくお願い致します。
- 283 名前: ◆/91kCCQXBo mailto:sage [2010/06/28(月) 16:05:01 ]
- いいよCで作り直して。
>>280 文章よめ
- 284 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 16:16:58 ]
- >>282
ideone.com/Kc5i7
- 285 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:26:08 ]
- >>284
ありがとうございました。
- 286 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 17:36:30 ]
- [1] プログラミング1
[2] 現在のインターネットを実現しているTCP/IP通信プロトコルでは主にIPv4 を用いており、コンピュータを一意に識別するために32ビットのIPアドレスを 用いている。これを踏まえ、IPアドレスの4つの数字を入力させ、これらを32ビットの データ型であるunsigned int型の変数にIPアドレスを示す2進数の数値として保存せよ。 保存したIPアドレスがunsigned intの整数値として解釈するといくつとなるか表示する プログラムを作成せよ。 [3] 環境 [3.1] OS Linux [3.2] gcc [3.3] 言語 C言語 [4] 期限:2010年6月30日19:00まで [5] 特に制限はありませんが、while文は習っていません。 if文、for文、配列など基本的なものを習いました。 どうぞよろしくお願いします。
- 287 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:07:05 ]
- >>286
int main(int argc, char* argv[]) { int i; unsigned int val; unsigned int addr = 0; for (i = 0; i < 4; i++) { printf("%d:", i + 1); addr <<= 8; scanf("%d", &val); addr |= val; } printf("addr=%u\n", addr); return 0; }
- 288 名前:デフォルトの名無しさん [2010/06/28(月) 18:24:56 ]
- [1] 応用プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10758.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2008 [3.3] 言語:C [4] 期限:30日まで [5] その他の制限:プログラミング経験はほとんどないです。 構造体の授業での宿題です。 構造体はまだわかるのですがそれに苦手なポインタが加わるとどうにもわかりません。 宜しくお願いします。
- 289 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 18:35:59 ]
- >>278
codepad.org/P5qj1UBe
- 290 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:40:17 ]
- >>287
ありがとうございました!
- 291 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 18:46:34 ]
- >>288
codepad.org/boZTLkkn
- 292 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:49:03 ]
- >>288
codepad.org/XnGsYKmG
- 293 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:59:13 ]
- >>292
> scanf("%s",p[i].name); buffer overrun...
- 294 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:07:57 ]
- 元がそうなってんだからそっちに文句つけろよw
- 295 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:15:50 ]
- >>294
氏ねといわれたら氏ぬんですね、よくわかります。
- 296 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:19:18 ]
- 長すぎる文字列入れたら正しく動作しないのは>>291もかわらないしw
- 297 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:36:54 ]
- >>295
原要求を無視したらテンプレの意味が(ry
- 298 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:50:14 ]
- >>291 = >>293か?
- 299 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 20:05:36 ]
- >>296
たしかにうまく処理できませんね。標準で入力バッファをクリアする方法はなんでしょうかね。 >>298 違います。
- 300 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 20:46:00 ]
- [1] 授業単元:情報処理学
[2] 問題文(含コード&リンク): 例1は、3教科5人の生徒の合計得点を求めるプログラムである。 これを実行し、動作を説明せよ。さらに、教科毎の平均点、 生徒毎の平均点を計算して表示できるようにプログラムを修正し、 結果とともに示せ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月30日 よろしくお願いします。
- 301 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 20:47:24 ]
- >>300の例1
例1 #include<stdio.h> #define KAMOKU 3 #define SEITO 5 int main() { int ten[][KAMOKU]={{ 80, 65, 70}, { 70, 55, 75}, { 75, 80, 70}, { 80, 60, 60}, { 90, 80, 75}}; int j,k,s; printf(“ kokugo sugaku eigo gokei\n”); printf(“------------------------------------------------\n”); for (j=0;j<SEITO;j++) { s=0; for (k=0;k<KAMOKU;k++) { printf(“%8d”,ten[j][k]); s=s+ten[j][k]; } printf(“%8d\n”,s); } return 0; }
- 302 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:18:08 ]
- >>300
> これを実行し、動作を説明せよ。 codepad.org/EfWyhSTD > 教科毎の平均点、生徒毎の平均点を計算して表示できるようにプログラムを修正し、 結果とともに示せ。 codepad.org/9EYyajom
- 303 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:29:23 ]
- [1] 授業単元:プログラミング演習
[2]問題文:長いので次のレスに書かせていただきます [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C [4] 期限:2010年6月29日17:00まで [5] その他の制限:特に制限はありませんが、なるべく簡単な文法で書いていただけるとありがたいです
- 304 名前:303 mailto:sage [2010/06/28(月) 21:31:23 ]
- 次レスにまとめても規制されてしまったので・・・・
[2] 問題文:[1],[2]のプログラムを作成せよ。 [1]多項式の次数nと係数a,(i=0,1・・・・,n)を入力し、 その多項式f(x)=a_nx^2+a_n-1x^n-1+・・・+a_2x^2+a_1x+a_0と その微分の多項式f'(x)を出力するプログラムを作成せよ。 ただし、nはint型,a_iはdouble型の配列とせよ。n<100と仮定してよい。 以下に入力例を示す n=5 a5=1 a4=0 a3=2 a2=0 a1=3 a0=0 f(x)=x^5+2x^3+3x f'(x)=5x^4+6x^2+3
- 305 名前:303 mailto:sage [2010/06/28(月) 21:32:41 ]
- 続きです
[2]以下の要領で、平均点、分散、標準偏差、最小値、最大値を求めるプログラム を作成せよ。 (1)100人分の点数(int型)を記憶するための配列変数aを定義する (2)人数(int型)を記憶するための変数nを定義する。 (3)人数nの初期値を0とする (4)点数をa[n]に入力する (5)点数が負の数ならば終了する (6)人数nを1つ増やす (7)全員の点数を空白で区切って表示する。例:83 52 64 (8)平均点を出力する (9)分散を出力する (10)標準偏差を出力する (11)最小値を出力する (12)最大値を出力する (13)(4)へ戻る ※標準ライブラリのsqrt関数を使わずニュートン法によって平方根を 求める自作の関数を使え。 ※平均点、分散、標準偏差を求めるとき、キャスト演算子を用いてdouble型へ 型変換せよ。 多いですがどうぞよろしくお願いします
- 306 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:38:30 ]
- >>210
やっと規制が解けた。 3000!の桁数=9131なので、#define文を変えればもう少しいけるはず。 codepad.org/6S9o89xk
- 307 名前:デフォルトの名無しさん [2010/06/28(月) 21:56:52 ]
- >>273もどなたかお願いいたしますm(_ _)m
- 308 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:29:23 ]
- >>304
#include <stdio.h> int main(void) { int n, i; double a_i[100], a; printf("n="); scanf("%d", &n); for (i = n; i >= 0; i--) { printf("a%d=", i); scanf("%lf", &a); a_i[i] = a; } printf("f(x)="); for (i = n; i >= 0; i--) if (a_i[i]) printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i); printf("\n"); for (i = 0; i < n; i++) a_i[i] = a_i[i + 1] * (i + 1); a_i[n] = 0; printf("f'(x)="); for (i = n; i >= 0; i--) if (a_i[i]) printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i); printf("\n"); return 0; }
- 309 名前:デフォルトの名無しさん [2010/06/28(月) 22:44:17 ]
- [1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):○×ゲームのプログラムにコンピュータとの対戦をつける。 コンピュータと対戦するかしないかは選べれるようにする事。 codepad.org/wfwkEbVP [3] 環境 [3.1] OS:WinodwsVista [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition [3.3] 言語:C++ [4] 期限:6/29(火)AM9時まで [5] その他の制限:C++触り始めたばかりです。インライン関数は使わない方向でお願いします。 実行結果としてはこんな感じにしてほしいです。 1Pと2Pとの交互に対戦しますか? 1Pとコンピュータとの対戦にしますか? プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください: こんな感じで選らばせて対戦できるようにしてほしいです。 ※1Pのマスは○でコンピュータのマスは×でお願いします。 大変だと思いますがどうかお願いします。
- 310 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:46:03 ]
- 礼も言わないヤツか
- 311 名前:デフォルトの名無しさん [2010/06/28(月) 22:57:23 ]
- >>310
あの時は本当にありがとうございました。 本当に申し訳ありません。
- 312 名前:デフォルトの名無しさん [2010/06/28(月) 23:57:38 ]
- >>258
おい!同じ大学だw >>259 助かりました ありがとうございます。
- 313 名前:303 mailto:sage [2010/06/29(火) 00:11:24 ]
- >>308 ありがとうございます。
どなたか>>305に書いてある[2]の方もよろしくお願いします
- 314 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 00:15:38 ]
- >>273
codepad.org/IKYypUgq とりあえずここまで。 昇級については仕様を推測できなかった。 他の機能については適当に推測した。 リファクタリングし甲斐があると思うから,がんがれ。
- 315 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 01:09:05 ]
- >>312
char型ならまとめ方一緒だったの? 俺的には全然違ったw
- 316 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 02:14:34 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10760.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年7月1日 よろしくお願い致します。
- 317 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:05:10 ]
- [1] 授業単元:プログラミング言語
[2] # リストに格納したデータを,データファイルとは 別のファイル(出力先ファイルとよぶ)に書き出す. データファイルと出力先ファイルのファイル名は コマンドライン引数として指定する 下記テンプレートを使用すること codepad.org/d9CUmfae [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年7月2日 お願います
- 318 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:13:02 ]
- 言い忘れてました
>>310以外の方にお願いします
- 319 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:59:18 ]
- windows+gccな人って具体的にどういう環境なんだろ。
- 320 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 05:05:35 ]
- CygwinかMinGWだろ
- 321 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 05:22:04 ]
- そういう予想じゃなくてさ。
出題者がちゃんと理解してるのかどうかを知りたいという意味合いも含んでた。 実はteratermでredhatにつないでました、とかありえない話じゃないと思うのよ。
- 322 名前:デフォルトの名無しさん [2010/06/29(火) 09:22:02 ]
- >>316
#include <stdio.h> #define NN 3 #define loop(i,NN) for (i = 0; i < NN; i++) int main(void) { int i, j, seq[3], n; char s[NN][100]; loop(i, NN) { printf("入力文字列[%d]=", i); scanf("%s", s[i]); } printf("繋ぎ合わせる順番を入力してください\n"); loop(i, NN) { scanf("%d", &n); seq[i] = n; } printf("結果 -> "); loop(i, NN) { loop(j, NN) { if (seq[j] == i + 1) printf("%s", s[j]); } } return 0; }
- 323 名前:デフォルトの名無しさん [2010/06/29(火) 10:06:01 ]
- >>316の2番目
#include <stdio.h> #include <string.h> #define NN 100 #define loop(i,NN) for (i = 0; i < NN; i++) int main(void) { int i = 0, linemax = 0, cnt = 0; char s[NN][100], *p, str[] = "abc"; while (fgets(s[i++], 100, stdin) != NULL) linemax++; loop(i, linemax) { for (p = s[i]; *p; p++) { if (!strncmp(p, str, 3)) cnt++; } } printf("#%s is %d\n", str, cnt); return 0; }
- 324 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 11:49:06 ]
- >>322-323さん
助かりました。ありがとうございました。
- 325 名前:デフォルトの名無しさん [2010/06/29(火) 12:48:44 ]
- 画像上のある点からy=ax^2の2次曲線を赤線で描画しなさい(画像 320×240)
(x,y)=(160,120) a=1/3のとき a=1/2のとき a=1のとき a=2のとき 描画範囲 yの範囲は40 xの範囲は60
- 326 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/29(火) 14:19:04 ]
- >>283
すみません。折角作っていただいたのですが、データが>>242の通り、 x=1.0〜4.0,y=1/(1*25*x*x)でそれぞれ31個づつあります。 何度もお願いするのも申し訳ないと思い自分で拡張を試みたのですが、 Interpolationの部分が出来ませんでした。 startが最大で31まで増えるため、そのまま入れてもオーバーフローしてしまい、 かといって、iやjを消してdata[0][start]のような記述をするとnanになってしまいます。 何度も申し訳ないのですが、forの部分だけで構いませんので、作っていただけないでしょうか?
- 327 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 14:30:53 ]
- >>325
こっちにも投げたか
- 328 名前:278 mailto:sage [2010/06/29(火) 15:09:56 ]
- >>289 ありがとうございます。
- 329 名前:デフォルトの名無しさん [2010/06/29(火) 15:11:29 ]
- >>305
codepad.org/LiIrNdPK
- 330 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 15:17:38 ]
- >>324>>328
はい
- 331 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 17:26:05 ]
- [1] 授業単元:一般情報処理
[2] 問題文(含コード&リンク):次のような動作をするプログラムを作成せよ。 配列内のデータの最小値を返す。int min() 配列内のデータの最大値を返す。int max() 配列内のデータの平均値を返す。double mean() 配列内のデータの標準偏差を返す。double stdev() ただしmain関数は次のものを使うこと。 int main(void){ int a[15]={81,36,45,67,73,98,62,56,77,61,65,70,25,51,18}; printf("min=%d\n",min(15,a)); printf("max=%d\n",max(15,a)); printf("average=%lf\n",mean(15,a)); printf("standard deviation=%lf\n",stdev(15,a)); return 0; } さらに、配列a[]の各要素の偏差値を表示するプログラムを作成せよ [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C [4] 期限:[2010年06月30日18:30まで] [5] 文章中の示された関数・main関数を使ってください よろしくお願いしますm(_ _)m
|

|