1 名前:デフォルトの名無しさん [2009/01/15(木) 23:21:27 ] あなたが解けない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++の宿題を片付けます 121代目 pc11.2ch.net/test/read.cgi/tech/1230678123/
201 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:15:05 ] じゃあもう一個増やしてやるよ。 do{ if(!x){ break; } /*処理*/ }while(x);
202 名前:デフォルトの名無しさん [2009/02/03(火) 01:27:04 ] 暇人・・・ww
203 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:55:24 ] do { if(!x) break; /*処理*/ }while(1); でもよくね?
204 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:58:34 ] do { loop: if (!x) break; /* 処理 */ goto loop; } while (0);
205 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:59:27 ] あ〜あ夜は暇だなっと。マジレスでもするか while(cnd){ /* ○処理 */ } if(cnd?"GO"[0|0]:0x0)do{ /* ○処理 */ }while("yoru"['-'-'-']?cnd:69);
206 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 06:08:15 ] [1] 授業単元:(復習課題) 分岐 繰り返し 一次元配列 2重ループ 2次元配列 文字列(これらどれかを使って解け) [2] www.pref.fukushima.jp/pc-concours/2008/03/pdf/2007honsen.pdf 問6 問7 [3] 環境 [3.1] OS:Windows [3.2]visual C++ [3.3] 言語:C++ [4] 期限: 2009年2月4日まで [5] main関数を使いそれ以外にもユーザ定義関数を1つ以上作成すること。 入力はscanf 出力はprintfでお願いします。 >>46 の時は、ほんと助かりました。 今回もお願いします。
207 名前:デフォルトの名無しさん [2009/02/03(火) 06:57:53 ] >>158 実行できなかったもので・・・
208 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 07:38:52 ] >>206 問6 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8805.txt
209 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 07:48:04 ] >>208 >入力はscanf 出力はprintfでお願いします。 ってかいてあるべ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8806.txt
210 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 08:16:43 ] >>206 問7 #include <stdio.h> #define COUNT_OHAJIKI 32 #define MAX_JIRO 25 int main(){ int n; scanf("%d",&n); while(n!=0){ int i,rest=COUNT_OHAJIKI,jiro[MAX_JIRO]; for(i=0;i<n;i++)scanf("%d", jiro+i); i=0; while(rest!=0){ rest-=(rest-1)%5; printf("%d\n", rest); rest-=jiro[i]; if(rest<0)rest=0; printf("%d\n", rest); i=(i+1)%n; } scanf("%d",&n); } return 0; }
211 名前:デフォルトの名無しさん [2009/02/03(火) 10:13:29 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): ・2つの分数の分子と分母を入力すると,それらの和・差・積・商を 出力する.データは構造体で表現すること. ・分数計算では通分・約分には最大公約数が必要になる.通分には分母の最小公倍数が, 約分には最第公約数が必要である.したがってこれらを計算する関数をそれぞれ作る. ・最大公約数を求めるには,次のアルゴリズムを使うとよい(ユークリッドの互除法). @ mをnで割る (ただしm>n). A @の割る数を@の余りで割る. B Aの割る数をAの余りで割る. C 以下同様に,余りが0になるまで繰り返し,そのときの「割る数」が最大公約数になる. ・2つの数,m,nの最小公倍数は,m*n/(mとnの最大公約数)で求めることができる. (実行例) 1つめの分数の分子・分母の入力―>3 4 2つめの分数の分子・分母の入力―>1 6 和:11 / 12 差: 7 / 12 積: 1 / 8 商: 9 / 2 [3] 環境 [3.1] OS: Windows vista [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C [4] 期限: 今週中ぐらい [5] その他の制限: 繰り返し文、条件判断文、構造体を勉強しました。 初心者なので、初心者にもわかるようなプログラムをお願いします。
212 名前:デフォルトの名無しさん [2009/02/03(火) 11:25:26 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8807.txt [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: ([2009年02月04日17:00まで] [5] その他の制限:
213 名前:デフォルトの名無しさん [2009/02/03(火) 11:28:51 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8808.txt [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: ([2009年02月04日17:00まで] [5] その他の制限:
214 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 11:36:27 ] ノ >>149 これ見てから考えな。あと、これくらい一つのファイルにまとめろ。
215 名前:デフォルトの名無しさん [2009/02/03(火) 11:40:08 ] >>212 #include <stdio.h> int main(void) { int i, j, n; printf("段数を入力してください: "); scanf("%d", &n); for(i = 0; i < n; i++) { for(j = 0; j < i + 1; j++) printf("*"); printf("\n"); } return 0; }
216 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 11:41:04 ] >>211 構造体はどういう形で作ればいいんだ? 指定なし? なしなら授業で作った構造体を1つ晒してくれ
217 名前:デフォルトの名無しさん [2009/02/03(火) 11:42:41 ] >>213 #include <stdio.h> int main(void) { int i, j, n; printf("段数を入力してください: "); scanf("%d", &n); for(i = 0; i < n; i++) { for(j = 0; j < i; j++) printf(" "); for(j = 0; j < (n - i) * 2 - 1; j++) printf("*"); printf("\n"); } return 0; }
218 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:48:06 ] >>211 どう? #include <stdio.h> typedef struct bunsu{int bunshi,bunbo;} BUNSU; int main(){ BUNSU bunsu1,bunsu2; printf("1つめの分数の分子・分母の入力->\n");scanf("%d%d",&(bunsu1.bunshi),&(bunsu1.bunbo)); printf("2つめの分数の分子・分母の入力->\n");scanf("%d%d",&(bunsu2.bunshi),&(bunsu2.bunbo)); int bunbo=bunsu1.bunbo*bunsu2.bunbo;int bunshi=bunsu1.bunshi*bunsu2.bunbo+bunsu2.bunshi*bunsu1.bunbo; int GCD = gcd(bunshi,bunbo); printf("和:%d / %d\n",bunshi/GCD,bunbo/GCD); // bunshi=bunshi=bunsu1.bunshi*bunsu2.bunbo-bunsu2.bunshi*bunsu1.bunbo; GCD = gcd(bunshi,bunbo); printf("差:%d / %d\n",bunshi/GCD,bunbo/GCD); // bunshi=bunshi=bunsu1.bunshi*bunsu2.bunshi; GCD = gcd(bunshi,bunbo); printf("積:%d / %d\n",bunshi/GCD,bunbo/GCD); // bunshi=bunshi=bunsu1.bunshi*bunsu2.bunbo; bunbo=bunsu1.bunbo*bunsu2.bunshi; GCD = gcd(bunshi,bunbo); printf("商:%d / %d\n",bunshi/GCD,bunbo/GCD); return 0; } int gcd(int m,int n){ if(m<n){int temp=m;m=n; n=temp;} int amari; while((amari=m%n)!=0){m=n;n=amari;} return n; }
219 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:18:18 ] 全部bunではじめるなよ。 bunsu とbunsu1じゃ大違いだろ。int int1;と同じ。 編集してみた。 #include <stdio.h> typedef struct bunsu{int son,mom;} BUNSU; int main(){ BUNSU A,B; int new_mom,GCD; printf("1つめの分数の分子・分母の入力-> \t"); scanf("%d %d",&(A.son), &(A.mom)); printf("2つめの分数の分子・分母の入力-> \t"); scanf("%d %d",&(B.son), &(B.mom)); GCD = gcd(A.mom,B,mom); new_mom = (A.mom*B.mom)/GCD; // 通分 GCD = gcd(new_mom,A.son+B.son); printf("和:%d / %d\n",(A.son+B.son)/GCD,new_mom/GCD); GCD = gcd(new_mom,A.son-B.son); printf("差:%d / %d\n",(A.son-B.son)/GCD,new_mom/GCD); GCD = gcd(A.son*B.son,A.mom*B.mom); printf("積:%d / %d\n",(A.son*B.son)/GCD,(A.mom*B.mom)/GCD); GCD = gcd(A.son*B.mom,A.mom*B.son); printf("商:%d / %d\n",(A.son*B.mom)/GCD,(A.mom*B.son)/GCD); return 0; } int gcd(int m,int n){ if(m<n){int temp=m;m=n; n=temp;} int amari; while((amari=m%n)!=0){m=n;n=amari;} return n;
220 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:28:11 ] >>219 そんなのを気にするくらいなら BUNSU bunsu_add(BUNSU a, BUNSU b); 的なのを作ったほうがよくないか?
221 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:32:37 ] >>220 ツッコミドコロは、そこじゃないな。
222 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:39:36 ] >>218 をbun -> "空白"にWORDで置換してみると 文字数 896 -> 680。実にソースの24%がbun成分です。もはやネタソースだろ。
223 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:39:52 ] 大文字の変数とかやめてよ。 しかも一文字
224 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:47:10 ] 分子が息子で分母がお母さんかw
225 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:49:17 ] >>222 一文字変数にしてご満悦って、70年代の世界からでも来たのかよ?
226 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:50:00 ] >>219 通分が分からないって、ありえないだろ。 いじらなくても変数名だけ変えられたし。
227 名前:219 mailto:sage [2009/02/03(火) 13:50:29 ] 小さいプログラムや、ローカルな変数の場合、無駄に長い変数は望ましくないと考えるが。 a,c,i,xは基本の型で、行列や構造体等A,Ary,Array場合によるが大文字も使う。 特にVBとか別言語触れてからは、使い分けるようになった。 >>224 ソースコードで変な想像したら負け組(new_mom?A.mom*B.son:A.son*B.momとか)
228 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:50:52 ] >>227 ばかか
229 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:52:31 ] >>227 バカだから、テストどころかコンパイルもしないで貼ってみたわけね・・・
230 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:52:55 ] >>227 小学校からやり直せよ
231 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:54:02 ] >>227 そもそも>>219 は計算が間違ってるwww
232 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:09:51 ] 計算しなければどうということはない
233 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:18:21 ] [1] 授業単元: アルゴリズムと数値計算 [2] ニュートン法とオイラー法で√2の近似値を計算するプログラムを作れ ただし、計算は50ステップ行い、それぞれの初期値とsqrt(2)との差を表示する事。 初期値は各々が定めてよい [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC2005EE [3.3] 言語:C [4] 期限:09/02/04迄 [5] その他の制限: 文字表示・繰り返し文・条件判断とオイラー法の計算は分かります
234 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:58:41 ] >>233 オイラー法ってこんなか? #include <stdio.h> #include <math.h> double newton(){ double x=1.0; int i; for(i=0;i<50;i++){ x=x-(x*x-2)/(2*x); } return x; } double euler(){ int n=50; double x=1.0,h=(double)(2-1)/n; int i; for(i=0;i<n;i++){ x=x+h/(2*x); } return x; } int main(){ double temp=newton(); printf("sqrt(2):%f,newton:%f,差:%f\n",sqrt(2),temp,sqrt(2)-temp); temp=euler(); printf("sqrt(2):%f,euler:%f,差:%f\n",sqrt(2),temp,sqrt(2)-temp); return 0; }
235 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:19:50 ] >>227 VBに触れたから呪われたんだな
236 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:04:45 ] >>234 ありがとうございます! for文の中身1行で表せるんですね。 初期値表示と(double)(2-1)を2.0-1.0など軽く置き換えて完成しました。
237 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:48:11 ] >>193 O(N^2)じゃなくO(NlgN)だ
238 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:41:50 ] だいたい、プログラム入れてみるとxln(x)が定数なしで自己相関関数に一致してるくらいだな。 つまり、O(NlnN)だな。でも、NlogNだと思ってて、N^2だったってよりよくない?
239 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:51:59 ] うん。
240 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:18:36 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 角度はラジアン単位(rad),度単位(degree)【°】で表される.さらに 度単位は 32.4°と10進小数表示する場合と 32度24分と度分秒で表示する場合がある.(60秒で1分, 60分で1度) @2つの角度(度単位)を10進小数点2桁 でキーボードから入力し(例 69.21° と 33.73° ) それらを度分秒単位で 表示させるプログラムを作成しなさい. Aさらに度分秒単位で表示された2つの角度の差を求め,度分秒単位で表示しなさい. 計算は度分秒単位のまま引き算すること(60進法の引き算アルゴリズムを作成すること). [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年2月4日 13:00 [5] その他の制限: よろしくお願いします
241 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:25:50 ] キーボードから入力し(例 69.21° と 33.73° ) 2バイト文字か?まずその入力ができるかが問題だ。 Alt+半角で全角打てるけど、(例 69.21 と 33.73)の間違えだと言ってくれ。
242 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:37:58 ] >>241 すみません 半角です
243 名前:デフォルトの名無しさん [2009/02/03(火) 22:03:28 ] >>211 のものですが、>>219 をコンパイルしたら 和と差が計算できなかったのですが、どうすれば いいでしょうか? どなたか教えてください。
244 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:18:25 ] A.son *= B.mom; B.son *= A.mom; A.mom=B.mom=(A.mom*B.mom); // 通分(約分せず) GCD = gcd(A.mom,A.son+B.son); printf("和:%d / %d\n",(A.son+B.son)/GCD,A.mom/GCD); GCD = gcd(A.mom,A.son-B.son); printf("差:%d / %d\n",(A.son-B.son)/GCD,A.mom/GCD);
245 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:23:43 ] 分母: mom 分子: son っていうネーミングセンスが素敵だ
246 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:36:37 ] 辞書片手に英語にしまくったら単語の意味を忘れて自分で読めないというのは聞かなくもないけれど、 日本語の一部を切り出して英語にするっていうのは新しい。
247 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:40:47 ] >>240 誤差がぁぁぁ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8809.c
248 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:42:30 ] >>240 #include<stdio.h> #include<math.h> typedef struct { int deg, min, sec; } Degree; void rad2deg(Degree *pdeg, double rad) { pdeg->deg = (int)rad; rad = (fabs(rad) - fabs(pdeg->deg)) * 60; pdeg->min = (int)rad; rad = (rad - pdeg->min) * 60; pdeg->sec = (int)rad; } void print_deg(const Degree *pdeg) { printf("%d度%02d分%02d秒\n", pdeg->deg, pdeg->min, pdeg->sec); } void degsub(Degree *pdiff, const Degree *pdeg1, const Degree *pdeg2) { pdiff->sec = pdeg1->sec - pdeg2->sec; pdiff->min = pdeg1->min - pdeg2->min; pdiff->deg = pdeg1->deg - pdeg2->deg; if (pdiff->sec < 0) { pdiff->sec += 60; pdiff->min --; } if (pdiff->min < 0) { pdiff->min += 60; pdiff->deg --; } } int main() { double rad1, rad2; Degree deg1, deg2, degdiff; printf("radian1="); scanf("%lf", &rad1); printf("radian2="); scanf("%lf", &rad2); rad2deg(°1, rad1); printf("degree1="); print_deg(°1); rad2deg(°2, rad2); printf("degree2="); print_deg(°2); degsub(°diff, °1, °2); printf("degree1-degree2="); print_deg(°diff); return 0; }
249 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:55:09 ] >>240 の人気に嫉妬 #include <stdio.h> #include <math.h> struct ds_t { int d; int m; int s;}; struct ds_t dec2ds(double dd){ struct ds_t ds; ds.d = floor(dd); ds.m = floor(60*(dd - ds.d) + 0.5/60); ds.s = floor(3600*(dd - ds.d) - 60*ds.m + 0.5); return ds; } void print_ds(struct ds_t *ds){ printf("%d.%d\'%d\"\n", ds->d, ds->m, ds->s); } struct ds_t sub_ds(struct ds_t *ds1, struct ds_t *ds2){ struct ds_t ds3; ds3.d = ds1->d - ds2->d; ds3.m = ds1->m - ds2->m; ds3.s = ds1->s - ds2->s; if(ds3.s < 0) ds3.s += 60, ds3.m--; if(ds3.m < 0) ds3.m += 60, ds3.d--; return ds3; } int main(void){ double dd1, dd2; struct ds_t ds1, ds2, ds3; scanf("%lf%lf", &dd1, &dd2); ds1 = dec2ds(dd1); ds2 = dec2ds(dd2); print_ds(&ds1); print_ds(&ds2); ds3 = sub_ds(&ds1, &ds2); return 0; }
250 名前:248 mailto:sage [2009/02/03(火) 22:57:35 ] degsubの符号の扱いが全然だめだった。>>248 は取り下げます。
251 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:58:00 ] >>243 そのコードはクズだ。捨てろ。
252 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:00:11 ] [1] 授業単元:ループ [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8810.txt [3] 環境 [3.1] OS:WindowsXP [3.2]コンパイラ名とバージョン:C++ Compiler 5.5/Turbo Debugger [3.3] 言語:C [4] 期限:一ヶ月以内 [5] その他の制限:2重ループを使うらしいですが使わなくてもいいそうです。
253 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:01:15 ] >>244 そこで上書きして残りの積と商をどうするツモリだ。
254 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:03:53 ] >>253 分母と分子に同じ数掛けてるから大丈夫
255 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:16:22 ] そうだよね。>>253 は2/4拍子と3/6拍子の違いが分かってらっしゃる。 #include<stdio.h> int main(){ int i,j,tmp,data[5+1]; for(i=0;i<10;i++){ printf("%d人目",i); scanf("%d",&tmp); data[tmp]++; } for(i=1;i<=5;i++){ printf("\n%d",i); for(j=0;j<data[i];j++) printf("*"); } return 0; }
256 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:16:46 ] どなたか>>134 をお願いいたします。ググってもわかりません。。。
257 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:21:21 ] >>256 一番上に書く名前が分かりません>< マジレスはお断りしておきます
258 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:23:35 ] >>247 degree[i][1] = (int)((input[i] - (int)input[i]) * 10) * 6; degree[i][2] = (int)((input[i] * 10 - (int)(input[i] * 10)) * 10) * 6; この計算式は何なのか、後でAAで提出するように。
259 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:23:40 ] 5秒で答えにたどり着いたけど 134は馬鹿なの?死ぬの?
260 名前:240 mailto:sage [2009/02/03(火) 23:28:32 ] >>247-249 ありがとうございました
261 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:34:09 ] >>256 フローチャートは詳しくないが日本語にそれらしく訳してくと 開始 ファイルをfpiに読み込む ファイルの先頭からデータ数をnへ代入 ループ iをn回 配列xのi番目にi番目のデータを代入 ループ iをn-1回 (中身jループ) /* */ ループ jをi+1からnまで /* */ /* */ 分岐 x[i]>x[j] --YES--> x[i]とx[j]を交換 -->jループへ /* */ /* */ --NO-->jループへ ループ iをn回 iとx[i]を表示 終了
262 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:50:17 ] >>134 オフィスを入れてなかった。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8811.zip
263 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:55:15 ] >>262 力作乙 だが、extention error だ 名前と実体が異なっている
264 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:01:47 ] >>263 そんな突っ込みは想定していない。 OpenOfficeの操作覚えようかな……。
265 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:25:25 ] >>252 #include <stdio.h> int main(void) { int a[10], c[5], i, j; for (i = 0; i < 9; ++i) scanf("%d,", &a[i]); scanf("%d", &a[9]); for (i = 0; i < 5; ++i) c[i] = 0; for (i = 0; i < 10; ++i) c[a[i] - 1]++; for (i = 0; i < 5; ++i) { printf("%d", 5 - i); for (j = 0; j < c[4 - i]; ++j) printf("*"); printf("\n"); } return 0; }
266 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:56:37 ] >>172 コンソールアプリでいいんだよね? 言語はCとC++どっち?
267 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:13:27 ] >>266 >[5] その他の制限: まだ基礎段階なので、なるべく簡単なプログラムがいいです。 画像の取り込みとかはせずに、文章で表示すればいいらしいです。 Visual c++がよくわからないので、よろしくお願いします C++のWindowアプリケーションを望んでいるようには見えない。 求めてるのは”なるべく簡単”でしょ。
268 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:27:20 ] [1] 授業単元: プロムラミング演習2 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8813.txt [3.1] OS: Windows [3.3] 言語:C言語 [4] 期限:2月5日まで [5] その他の制限:すみません自力ではわかりません.ご指導お願いします
269 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:46:26 ] void bitpart(int x) { char str[33]=""; for(b=31;b>=0;b--){ sprintf(str,"%s%d",(x>>b)&1); return str; } > jprintf(bit pattern=%s\n",bitpart(x,bit)); なんかちがう
270 名前:897です mailto:sage [2009/02/04(水) 14:51:10 ] すみません... 打ち間違いでした printf("bit pattern =%s\n", bitpart(x,bit)); です.すみません
271 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:51:44 ] >>268 char*bitpart(int x,char *bit) { int b; bit[32] = '\0'; for(b=31;b>=0;b--){ sprintf(&bit[31-b],"%d",(x>>b)&1); } return bit; }
272 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 15:00:15 ] >>271 早い返事ありがとうございます 助かりました
273 名前:897 mailto:sage [2009/02/04(水) 17:01:19 ] [1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8814.txt [3.1] OS: Windows [3.3] 言語:C言語 [4] 期限:2月5日まで [5] その他:お願いします
274 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:17:20 ] >>273 void insert(int num, struct node *p) { struct node *n; while (p->next != NULL && p->next->key < num) { p = p->next; } n = (struct node *)malloc(sizeof *n); n->key = num; n->next = p->next; p->next = n; }
275 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:27:54 ] >>274 ありがとうございます!! なんとかいけそうです
276 名前:デフォルトの名無しさん [2009/02/04(水) 17:46:14 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8815.txt [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: ([2009年02月05日12:00まで] [5] その他の制限: よろしくお願いします。
277 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:01:53 ] >>276 #include <stdio.h> int main(void) { int kinshu[10] = { 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1 }; int i, j, c, n; printf("金額を入力してください: "); scanf("%d", &n); for (i = 0; i < 10; ++i) { for (c = 0; n / kinshu[i]; ++c) n -= kinshu[i]; printf("%5d円: %d枚\n", kinshu[i], c); } return 0; }
278 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:10:45 ] > for (c = 0; n / kinshu[i]; ++c) n -= kinshu[i]; c=n/kinshu[i]; n-= c*kinsyu[i];
279 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:37:30 ] [1] 授業単元:数値解析 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8817.txt [3] 環境 [3.1] OS: Windows XP [3.3] 言語: C [4] 期限: 2009年02月05日まで 問題多いですがよろしくお願いします。
280 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:38:16 ] [1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8816.txt [3.3] 言語:C言語 [4] 期限:2月5日まで [5] その他: 違うところで同様の質問をして,いろいろヒントをもらった のですが,いまいちわかりません.その時こちらを紹介されたので, どうかお願いします
281 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:52:39 ] >>280 int pop(void) { struct node *n = TOP.next; if (n == NULL) { fprintf(stderr, "no stack\n"); return 0; } else { int num = n->key; TOP.next = n->next; free(n); return num; } } int main(void) { TOP.next = NULL; push(21); push(42); printf("%d\n", pop()); printf("%d\n", pop()); return 0; }
282 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:29:50 ] >>279 どんだけ丸投げだよ。
283 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:37:05 ] 丸投げスレなんだから当然だろ? ってこれは・・・w
284 名前:280 mailto:sage [2009/02/04(水) 19:46:00 ] >>281 ありがとうございます 助かりました!!
285 名前:Rm [2009/02/05(木) 00:09:41 ] [1] 計算システム(C言語) [2] N×Nの行列A,Bに大して、次のようなプログラムを作成せよ。 ・A+B、A−B、A×Bを出力するプログラム ・Aの逆行列を出力するプログラム(ピボット選択法) ただし ・Nはdefineで4と定義する。 ・A,Bそれぞれの成分データはdouble型配列に保存する。 ・行列A,Bの各成分のデータは時間に依存した種から与えられる疑似関数により自動生成する。 mathweb.sc.niigata-u.ac.jp/~yamada/system/wed/kadai.htm 実際ほかの課題もわかりません。1は出来ましたが。 [3] 環境 [3.1] OS:Windows [3.2] gcc [3.3] 言語: C [4] 期限: 5日 よろしくお願いいたします。
286 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:52:15 ] >>273 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8819.txt
287 名前:280 です mailto:sage [2009/02/05(木) 02:14:54 ] >>281 さんの方から解答をいただいたのですが main関数の所がいまいちわかりません できたらもう一度お願いします.
288 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:24:30 ] >>287 わかりませんもなにも見たまんまpushしてpopしてるだけだと思うが もう一度といわれてもこれ以外書きようがないと思うべ? どこがどうわからないか考え直してきなさい
289 名前:280 です mailto:sage [2009/02/05(木) 02:39:14 ] push(21); push(42); これがよくわかりません コンパイルしてもこれしかでないのですが・・・ mainは、任意個数の数字を入力させてそれをpushし、 EOFになったら逆にpopで値を取り出して画面に表示する みたいな感じにしたいのですが・・
290 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:57:53 ] >>289 >pushとpopが正常に動作をしているか確かめられるプログラムを作成してください といわれて>>289 の下半分の内容を読み取れなんてエスパーじゃない限り無理 int main(void) { TOP.next = NULL; int d; while(scanf("%d", &d)!=EOF) push(d); while(TOP.next) printf("%d\n", pop()); return 0; }
291 名前:280 です mailto:sage [2009/02/05(木) 03:03:11 ] >>290 言葉足らずですみません 夜遅くわざわざありがとうございます
292 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:06:14 ] 十分テストコードになってると思うんだけどな。
293 名前:デフォルトの名無しさん [2009/02/05(木) 03:23:22 ] while(1) { wakeup; static int day; int time = wakeuptime(); while(1) { 2ch; if(time == Daytime()) { lunch; }; if(time == nighttime()) { supper; }; if( time == sleeptime();) { break; } time++; } day++; sleep; } こんな毎日、無限ループって怖いよな;;
294 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:48:10 ] >>285 和、差、積のやつ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8821.c
295 名前:285 [2009/02/05(木) 04:09:48 ] >>294 ありがとうございます。よろしければ逆行列プログラムもお願いします。
296 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 04:54:22 ] >>295 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8822.c
297 名前:285 [2009/02/05(木) 05:24:02 ] >>296 このような時間帯にわざわざありがとうございます。 おかげ様で助かりました。
298 名前:279 mailto:sage [2009/02/05(木) 06:58:42 ] >>282 >>283 確かにこれはひどいですよね… 1問でもいいのでお願いしたいです。 一応自分でもやっていますが、数学が苦手なもので…
299 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:42:16 ] >>167 です。 自己解決したので取り下げます。スレ汚し失礼しました。
300 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:13:46 ] 1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8823.txt [3.1] OS: Windows [3.3] 言語:C言語 [4] 期限:2月6日まで [5] その他:お願いします