1 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 06:56:18 ] あなたが解けない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++の宿題を片付けます 112代目 pc11.2ch.net/test/read.cgi/tech/1215439445/
2 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 07:14:02 ] >>1 ありがとうございます。
3 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 07:14:42 ] 既に回答済みの質問に回答するのは控え、できるだけ未回答のものを解きましょう。
4 名前:デフォルトの名無しさん [2008/07/14(月) 07:49:24 ] [1] 授業単元:プログラミング論U [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7366.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: borland C++ Compiler 5.5 [3.3] 言語: C [4] 期限: 2008年7月15日13;00 [5] その他の制限:どうしてもノードについてわからないので、できたらよろしくお願いします。
5 名前:前スレ505 [2008/07/14(月) 07:51:44 ] 前スレ>>929 さん、ありがとうございます! あと、今日の夕方頃に今までのとは別のをやってみます。 それでまた今回みたいに見ていただくと嬉しいです。
6 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 07:52:06 ] 基本的にスレ立て人がルールを作りますんで、最近話題の 回答テンプレはルール違反なんで遵守しないようお願いします。 以下の行為のいずれかを行った場合、回答テンプレ遵守行 為と見なされる場合がありますのでご注意下さい。 1)回答レスに回答の品質を書く事。 2)回答レスに外部サイト(アップローダー)に置かれたコードへのリンク を貼る際に、このレス(スレURL)とソースの間に相互関連づけを行 うこと。 3)コンパイル、コード作成に使用した環境を書く事 4)回答に余計なコメントを入れること。 (ソースに入れるコメントは本スレとの関連情報以外ならおKです)
7 名前:前スレ995 ◆ncKvmqq0Bs mailto:sage [2008/07/14(月) 08:00:13 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7365.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: VC6.0 [3.3] 言語: C [4] 期限: 7/14 14:00 期限を書き間違えていました、すいません よろしくお願いします
8 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:05:51 ] >>3 異議あり。せっかく自分もやったのに、数分先に雑なソースを投稿した奴がいて 自分の方がマシだと判断したら容赦なく提出するんで、あしからず。
9 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:07:16 ] >>7 これでいいですか? ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7367.txt
10 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:26:38 ] >>8 いいことです。>>6 を遵守した上で是非そうして下さい。
11 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 09:11:08 ] ここは質問により先に答えるのを競うスレではありませんので、あしからず。 速さを競うなら、別の場所でやってくれ。それも同じ時間にスタートしてな。
12 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 09:15:31 ] >>6 やなこった。
13 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 09:37:23 ] 長い夏休みが終わるのを気長に待つしか無いか
14 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:22:54 ] pc11.2ch.net/test/read.cgi/tech/1215439445/989 回答テンプレがあれば、まあ見やすいかなとは思う。けれど、無くても問題ないと思う。 で、回答テンプレを使う人が>>1 から連なるテンプレに載ってないんだけどドコ?という レスが稀にあったように思うので、含めておくが強制はしない程度がいいかなと思ったんだ …俺も回答テンプレ使ったり使わなかったりなんで適当なんだけどね。主に回答レベルがめんどい
15 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:29:19 ] 本人が初心者レベルに落としたクソースにも負けてくやしいのぅくやしいのぅ あと、このスレは課題に答えるべきであって、回答者同士で 出来を競うスレじゃありませんので、あしからず。
16 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:35:11 ] あと、何行だろうと一句だろうと、罵倒は良くないだろ。 何行以上でとか意味不明な指定も要らん。
17 名前:デフォルトの名無しさん [2008/07/14(月) 12:23:36 ] [1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する[3] 環境 [3.1] OS: Windows [3.3] 言語・C++ [4] 期限: ([2008年7月15日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。
18 名前:デフォルトの名無しさん [2008/07/14(月) 12:28:56 ] 前スレ>>977 >>945 >>554 >>99 ありがとうございました
19 名前: ◆nikSZog9tM [2008/07/14(月) 14:51:23 ] 前々スレの>>401 で二問聞いたのですが、一問回答が得られなかったのでもう一度聞かせて下さい。 [1] 授業単元:情報技術実験 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7172.txt バックトラック系の問題です。 リンク先は、正整数n を入力して、nを正整数の和の形に分割する方法が何通りあるか表示するプログラムです。 ただし、和の順番が異なるだけの分割は同じものとします。 それを、 n: 5 1 1 1 1 1 1 1 1 2 1 1 3 1 2 2 1 4 2 3 5 total number = 7 といったように途中経過を表示させるように修正する課題です。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: C Pad for Borlad [3.3] 言語: Cのみ [4] 期限: 2008年7月16日17:00 [5] その他の制限:授業ではポインタはやってないです。。 for if whileといった基礎的なものを使う感じです。 よろしくお願いします。
20 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:30:51 ] [1]C言語上級 [2]標準入力から入力されたタブもしくはスペースで区切られた単語 の出現回数を多いものの順に出力するプログラムを作りなさい。 単語の記憶方法は配列を使うこと。単語の検索は二分探索を 使うこと。 メモリが足りない場合はその時点で処理を中止するようにすること。 [3] linux/gcc 4/C [4] 7/20 12:00 stdio.h stdlib.h string.hのみインクルード可のことです。 自分もちょっとやってみましたが挫折しかかってます。 まだ時間は少しあるので、急ぎませんが、どうかよろしくお願いします。
21 名前:20 ◆t11zgaSFtY mailto:sage [2008/07/14(月) 15:31:30 ] トリップ入れ忘れましたので、設定しました。
22 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:47:44 ] >>19 バックトラックってなると多分再帰関数を使うことになると思うけど、大丈夫?
23 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:53:11 ] 配列で二分探索ってうまいやりかたあるん?
24 名前: ◆nikSZog9tM mailto:sage [2008/07/14(月) 15:58:36 ] >>22 再帰やってるんで大丈夫です! 「使え」とは言われてないんで書きませんでした、ごめんなさい。
25 名前:デフォルトの名無しさん [2008/07/14(月) 16:05:00 ] 再起使ったら重複の除去が困難な気
26 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:12:08 ] >>19 配列は使ってもいいんだよね? #include <stdio.h> #define N_MAX 1024 int ResultNum, Result[N_MAX]; int part(int,int,int); int main(){ int n; printf("n: "); scanf("%d",&n); if(n>N_MAX) return 1; printf("total number = %d\n", part(n,1,0)); return 0; } int part(int total, int min, int result_num){ int i, sub; int cnt = 0; if(total == 0){ cnt = 1; for(i=0;i<result_num;i++) printf(" %d", Result[i]); printf("\n"); }else{ for(sub = min; sub <= total; sub++){ Result[result_num]=sub; cnt += part(total-sub,sub,result_num+1); } } return cnt; }
27 名前: ◆nikSZog9tM mailto:sage [2008/07/14(月) 16:38:48 ] >>25 んーどうなんでしょう…正直よく分かりません。 この時は授業のタイトルが「バックトラック」で、課題は二つでした。 二問目がNクイーン問題で、これは一問目です。 プログラミングの知識に乏しい上に、授業が上記のようなものだったのでバックトラック系 と明記しましたが、場合によってはバックトラックとは関係ないのかもしれません。 >>26 配列大丈夫です!ありがとうございます! 配列苦手で勉強中なんで、まだ理解できませんが(^_^;) ありがとうございました。
28 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:33:47 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7369.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: C++ [4] 期限: 早急に… [5] その他の制限: 二次元関数の問題です。ソースの上部に問題文があります
29 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:51:18 ] >>20 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tag_word_t{ char *word; int count; } word_t; typedef struct tag_wordlist_t{ word_t *word; int wordnum; } wordlist_t; int countcmp(const word_t *a, const word_t *b){return b->count - a->count;} int wordcmp(const word_t *a, const word_t *b){return strcmp(a->word, b->word);} void word_add(wordlist_t *wordlist, char *word){ int s, e, m, ret; for(s = 0, e = wordlist->wordnum - 1; s <= e;){ m = (s + e) / 2; if((ret = strcmp(wordlist->word[m].word, word)) == 0){wordlist->word[m].count += 1;return;} if(ret < 0) s = m + 1; else e = m - 1; } if((wordlist->word = realloc(wordlist->word, sizeof(word_t) * (wordlist->wordnum + 1))) == NULL) exit(1); if((wordlist->word[wordlist->wordnum].word = strdup(word)) == NULL) exit(1); wordlist->word[wordlist->wordnum].count = 1; wordlist->wordnum += 1; qsort(wordlist->word, wordlist->wordnum, sizeof(word_t), wordcmp); } int main(void){ wordlist_t wordlist = { NULL, 0 }; char word[256]; int i; while(scanf("%255s", word) == 1) word_add(&wordlist, word); qsort(wordlist.word, wordlist.wordnum, sizeof(word_t), countcmp); for(i = 0; i < wordlist.wordnum; i++) printf("%s : %d\n", wordlist.word[i].word, wordlist.word[i].count); return 0; }
30 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 20:03:18 ] >>28 1行のみの変更で回答終わり 17line: // int calendar[rsize][csize]; int (*calendar)[csize] = new int[rsize][csize];
31 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 20:10:25 ] >>28 最後にやるdelete忘れた 84line: delete[] calendar; return 0;
32 名前:前スレ995 ◆ncKvmqq0Bs mailto:sage [2008/07/14(月) 20:21:42 ] >>9 助かりました 遅くなりましたが、ありがとうございました
33 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 20:56:44 ] >>4 07/15 13:00 線形リスト >>7 07/14 14:00 ソート : >>9 >>17 07/15 14:00 分数の四則演算を計算するプログラム >>19 07/16 17:00 組み分け : >>19 >>20 07/20 12:00 単語出現数 : >>20 >>28 00/00 00:00 二次元配列の動的確保 : >>30 ,31
34 名前:20 ◆t11zgaSFtY mailto:sage [2008/07/14(月) 21:36:07 ] >>29 非常に迅速なご回答 ありがとうございました。とりあえず動作を確認しました。 このコードを元にbsearch関数を使うように改造させて 頂いてよろしいでしょうか? というか、実は、bsearch関数自身の使い方が 良くわからなかったので、ここに質問したんです。 bsearchで見つからなかった場合、配列を拡張し 新しいデータを詰め込むというアイデアは、何となく わかってて、それらしきコードも書いてたんですが、 テストしてみると、何か良く動きませんでした。 qsort関数を使ってそれを切り抜けるってなんか裏技的で 凄い発想ですね。感心しました。
35 名前:デフォルトの名無しさん [2008/07/14(月) 22:27:39 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):(1)まず、0が入力されるまで、正の偶数を繰り返しキーボード入力する。 (2)次に、(1)で入力した数から「大きい方から二番目の偶数」を表示する。 ただし、(1)の繰り返し処理で、奇数や負の数が入力されたときは、その入力を無視してよい。 入力した偶数が二つに満たなかった場合は、(2)において「0」を表示せよ。 [3] 環境 [3.1] OS;macos [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年7月13日17:00まで] [5] その他の制限: Cのソースでおねがいします。 何とぞよろしくお願いします。
36 名前:デフォルトの名無しさん [2008/07/14(月) 22:28:59 ] 期限間違えました 15日です
37 名前:デフォルトの名無しさん [2008/07/14(月) 22:33:03 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):1から999までの整数を入力 その読み方をを表示するプログラムを書け 1から999でない場合エラーを表示せよ [3] 環境 [3.1] OS;macos [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年7月15日17:00まで] [5] その他の制限: Cのソースでおねがいします。 何とぞよろしくお願いします。 printfの所は略してもらって結構です。
38 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:43:47 ] >>37 日本語でok?
39 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:52:15 ] >>37 #include<stdio.h> int main(void){ char yomi[][10][13]={ {"", "いち", "に", "さん", "よん", "ご", "ろく", "なな", "はち", "きゅう"}, {"", "じゅう", "にじゅう", "さんじゅう", "よんじゅう", "ごじゅう", "ろくじゅう", "ななじゅう", "はちじゅう", "きゅうじゅう"}, {"", "ひゃく", "にひゃく", "さんびゃく", "よんひゃく", "ごひゃく", "ろっぴゃく", "ななひゃく", "はっぴゃく", "きゅうひゃく"} }; int num=0, unit100, unit10, unit1; printf("1 から 999 までの整数を入力してください : "); scanf("%d", &num); if(num<1 || num>999){ printf("エラー\n"); return 1; } unit100=num/100; unit10=(num/10)%10; unit1=num%10; printf("%s%s%s\n", yomi[2][unit100], yomi[1][unit10], yomi[0][unit1]); return 0; }
40 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:54:20 ] >>37 #include <stdio.h> int main(void) { int n, c, d; char *num[] = {"", "いち","に","さん","よん","ご","ろく","なな","はち","きゅう"}; scanf("%d", &n); if(n < 1 || 999 < n) return printf("error"); c = n / 100; n %= 100; switch(c) { case 6:printf("ろっぴゃく"); break; case 8:printf("はっぴゃく"); break; case 3:printf("さんびゃく"); break; case 2:case 5:case 4:case 7:case 9: printf("%s", num[c]); case 1:printf("ひゃく"); break; } d = n / 10; n %= 10; if(d) { if(d > 1) printf("%s", num[d]); printf("じゅう"); } printf("%s", num[n]); return 0; }
41 名前:デフォルトの名無しさん [2008/07/14(月) 22:54:35 ] >>39 早速ありがとうございます。助かりました
42 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:56:18 ] >>37 #include <stdio.h> void show(int n){ const char n[][10]={"ぜろ!","いち!","に!","さぁん","し!","ご!","ろぉく","しち!","はち!","きゅぅぅ"}; <print文なので省略しました> } int main(){ int n; scanf("%d",&n); show(n/100);show( (n - n / 100 * 100) / 10 ) ; show(n % 10); return 0; }
43 名前:デフォルトの名無しさん [2008/07/14(月) 23:00:48 ] >>40 >>42 回答ありがとうございます。参考にします
44 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:07:26 ] [1] 授業単元:プログラム入門 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7371.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:あさってまで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) お願いします
45 名前:前スレ505 [2008/07/15(火) 00:27:17 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク):試験問題の例を実行結果を見ながら、 自分なりに作ってたのですが、敵が表示されなかったりしたので困ってます。 ここに自分で作ったやつが置いてあります。 www.dotup.org/uploda/www.dotup.org5395.zip.html これが試験問題の例の実行結果です。ハムスター画像はないので、他のを代用して使ってます。 www.dotup.org/uploda/www.dotup.org5399.zip.html [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: VisualC++2005かVisualC++2008 [3.3] 言語:C++ [4] 期限: [2008年7月15日午前7:00まででお願いします。 [5] その他の制限:何かあったら言って下さい。
46 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:03:54 ] [1]C [2]三値の中央値を求める以下の関数を作成せよ。 int med3(int a,int b,int c); [3]LINUX C [4]今週中でお願いします よろしくお願いします
47 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:18:48 ] >>46 void swap(int *a, int *b){ int c; c=*a; *a=*b; *b=c; } int med3(int a, int b, int c){ if(a<b) swap(&a, &b); if(a<c) swap(&a, &c); if(b<c) swap(&b, &c); return b; }
48 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:41:20 ] ひどいな
49 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:42:17 ] int med3(int a, int b, int c) { return a>b ? a>c ? c>b ? c : b : a : b>c ? c>a ? c : a : b; }
50 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:58:25 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7372.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C [4] 期限: 2008/7/17/0:00 よろしくおねがいします
51 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 02:44:20 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク):基本交換法と挿入法の関数化 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VisualStudio2005 [3.3] 言語: C++ [4] 期限: 2008/7/15/12:00 ここでははじめての書き込みです よろしくお願いします。
52 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:16:09 ] >>51 ソートの話でしょうか。基本交換法とはなんでしょうか。(wikipedia をみましたがわかりませんでした。) 問題について、もう少し情報をいただけませんでしょうか。
53 名前:デフォルトの名無しさん [2008/07/15(火) 03:17:33 ] バブルソート
54 名前:デフォルトの名無しさん [2008/07/15(火) 03:19:45 ] バブルソートは、ソートのアルゴリズムの一つ。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。 バブルソート - Wikipedia 挿入ソート(インサーションソート)は、ソートのアルゴリズムの一つ。平均計算時間・最悪計算時間がともにO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本挿入法ともいう。 挿入ソート - Wikipedia
55 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:27:34 ] [1] 授業単元:プログラミング2 [2] 問題文(含コード&リンク): アルファベットと数字からなる文字列 str と文字 c を引数として受け取り,文字列 str から文字 c をすべて削除する返す関数 void del_chr(char *str, char c) を定義し,動作を確認するプログラム(kadai11_3.c)を作成せよ. strを別の配列にコピーして利用すればよい.配列の添え字アクセスを利用してもよい. 関数名:del_chr 引数 :char *str, char c 返却値:なし 機能 :文字列 str から文字 c をすべて削除 main関数のテンプレートを示す. int main(void) { char c; char str[100]; char *ptr; printf("変換前: "); gets(str); printf("削除文字: "); scanf("%c", &c); del_chr(str, c); printf("変換後: %s\n", str); return 0; } [3] 環境 [3.1] OS: Win Vista [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C [4] 期限: 2008/07/15 14時まで [5] その他の制限: ポインタまで
56 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:40:23 ] >>48 いや、>>47 ならちゃんと動作しますよ。反例はどんな場合ですか?
57 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:46:19 ] >>15 だれが決めたのですか?回答者同士で出来を競うのは問題ないと思いますが?
58 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:55:56 ] [1] 授業単元:プログラミングU [2] 問題文:www.dotup.org/uploda/www.dotup.org5542.mht.html 実行例:www.dotup.org/uploda/www.dotup.org5543.pdf.html ベースのコード:www.dotup.org/uploda/www.dotup.org5545.cpp.html [3] 環境 [3.1] OS:WindowsVista [3.2] コンパイラ名とバージョン:VisualStudio2005 [3.3] 言語:C++ [4] 期限: 本日 7月15日18:00まで [5] その他の制限:www.dotup.org/uploda/www.dotup.org5545.cpp.html にある内容までは一通り習っています。 以前もここで何度か助けてもらいましたが、 これが最後になると思いますので、どうかよろしくお願いします。 (特に後半が全然わかりません)
59 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 03:56:21 ] >>57 決めたんじゃなくてそんな決まりはないって話だろ・・・ どんだけ意味が理解できないゆとりだよ?w >>読め。競いたければ勝手に個人でやってろ。 競争心むき出しで、パクリだろとか言われても、はぁ? って思われているのは、分かりきった答えだからなんだよw
60 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:02:50 ] >>1 とスレタイ C/C++の ”宿題を片付けます” > 気に入らない質問やその他や発言はスルーの方向で。 どこにも回答者同士で出来を争うといった趣旨の内容はなく 質問者に答えるのが一番の目的だと思うんだが? だから決めたんじゃなくてそんな決まりはない、ということだよ。 路上で勝手に他の車と競争しているくらい、恥ずかしい行為だよ。 何一人で他人に負けたとか思って悔しい思いをしているの?ってねw マナーを守って運転できない、加速できるなら出来るだけする奴は 危険だし迷惑。そういうこと。適切なソースが出せないなら、それはそれで 他人から指摘される場合もあるってことだよ、ワトソン君。 >>35 は前スレで解決済みでは?
61 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:32:34 ] >>59 よりよい回答が発生するのであれば、競争は大いに結構。というのが現代流なのでは? ゆとりなのは、競争をしらないあなたでしょう。
62 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:36:03 ] >>60 >どこにも回答者同士で出来を争うといった趣旨の内容はなく どこにも回答者同士で出来を競うなといった趣旨の内容はありませんが。 結果としていい回答が発生するのであれば、競争してもかまわないと思いますが、いかが? あと車のたとえは意味不明。
63 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:37:14 ] えぇ、どこにも回答者同士で競い合うというった趣旨のスレではありません。 勝手に自意識過剰厨が、俺の方が出来が良いぜ、後出しじゃんけんは 必ず負けにしたいんだろ?w 内容じゃなくて早く書けるかを競うにしても無駄。 過去の課題のコピペで済むものも普通に存在しているし。 一人で見えない敵と戦ってろ
64 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:46:29 ] >>63 日本語でOK
65 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:10:58 ] 自動スクリプト回してますね
66 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:20:34 ] 先出し後出し中出しでもめるくらいなら、もう定石のある ありきたりなパターンのものはテンプレ化して、それを 提示するなり、必要に応じてそのスタイルの関数を用いて出すとか。 それを競い合っても無駄だがねw
67 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:24:17 ] >>66 中だしでもめるようなら手をつけなければいいのですが、(回答)初心者には難しいのでしょうね。
68 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:25:20 ] >>65 自動スクリプトで対応可ですからね。
69 名前:デフォルトの名無しさん [2008/07/15(火) 05:33:13 ] >>35 をお願いします。期限は今日なんで…
70 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:44:16 ] >>35 >>69 pc11.2ch.net/test/read.cgi/tech/1215439445/586 #include<iostream> void swap(int *a, int *b){ int c; c=*a; *a=*b; *b=c; } int main(void){ int max1=0, max2=0, num; while(std::cin >> num){ if(num==0) break; if(num<0 || num%2==1) continue; if(num>max2) max2=num; if(max1<max2) swap(&max1, &max2); } std::cout << max2 << std::endl; return 0; } 私自身はチェックしていません。
71 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:54:53 ] >>70 [3.3] 言語: C
72 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 06:08:05 ] >>35 >>69 #include <stdio.h> void swap(int *a, int *b) { int c; c=*a; *a=*b; *b=c; } int main() { int max1 = 0, max2 = 0, num; while(scanf("%d", &num) == 1){ if(num == 0) break; if(num < 0 || num % 2 == 1) continue; if(num > max2) max2 = num; if(max1 < max2) swap(&max1, &max2); } printf("%d\n", max2); return 0; } >>71 thanks.
73 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 06:21:03 ] 宿題に答えられたら答える人が答える、出来ない人が出来なかったことに 気を落とすスレでもなければ、回答したことに自己満足したのを アピールするスレでもありませんので、お間違えのないようお願いします。
74 名前:デフォルトの名無しさん [2008/07/15(火) 06:21:43 ] ありがとうございます
75 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 06:21:57 ] かまってちゃんが自己アピールするスレでもないんですけどね。
76 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:27:10 ] >>6 を参考に 回答に余計なコメントを入れず、簡潔にコードだけ。 出来ればアンカーも付けずに、うpローダーに ノーリンクな形で著作権フリーな形で書き込んで URLだけ本スレに貼って下さるようお願いします。
77 名前:45 [2008/07/15(火) 07:39:23 ] 誰か>>45 やってくれませんか? 自機の移動までは出来たのですが、ずっと右に進んだりすると消えてしまうので、消えないように表示がしたいです。 敵の跳ね返りもコンパイルは出来るのに、何故か表示されない…。
78 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:46:12 ] >>77 期限切れのものは無駄だから作らない
79 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:48:45 ] >>77 つーか、Ex09から雑魚1匹だけ抜き出して動かせばいいんじゃないの? 参考までに。あのコードはC++分かってないと書けないようになってるんで、 (クラスの継承やらオーバーライドやら使ってるんで)ここで中途半端なコード出すと 「ああ、、、誰かのパクったんだな」ってばれるんでそこらへんよろしく♪
80 名前:45 [2008/07/15(火) 07:48:52 ] >>78 期限は今日の12時までに変更するので、お願いします。
81 名前:45 [2008/07/15(火) 07:55:45 ] >>78 Ex09だと敵雑魚が複数居るから、1匹だけ表示する方法が分かりません。 とりあえず自分なりにやったけど表示されず…。
82 名前:45 [2008/07/15(火) 07:56:34 ] すみません、>>81 は>>79 さんへのレスです。
83 名前:デフォルトの名無しさん [2008/07/15(火) 08:26:30 ] だれか>>4 をやってくれませんか?? 難しいかと思いますが、期限が13:00までなので、わかる人がいればよろしくお願いします。
84 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 08:27:38 ] [1] 授業単元:プログラミング言語基礎 [2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7373.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: borland C++ Compiler 5.5.1 [3.3] 言語: C [4] 期限: [2008年07月16日12:30まで] [5] その他の制限: 特になし 今年からCを習い始めた初心者です、よろしくお願いします。
85 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:03:26 ] なんか、最近のいざこざでやる気が失せた。自分がやっても 誰かがやってたら、先に出した方がいれば後出しに何か言われるわ そんなんでちょっと面倒で時間が掛かりそうだと、もうやる気が失せるわ。 ちょっと他人の回答について、黙ってて欲しい。まぁ、そんなんだから 最近は催促された後に、誰もやらないなら自分がやるかって 風潮になっているんだろうけどね。
86 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:05:01 ] >>84 これでいいですか。 1) ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7374.txt 2) ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7375.txt
87 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:23:42 ] >>85 質問テンプレで質問あげたら再度催促しない限り、回答を 貰えないといルールにすればいい。 催促は問題よっても異なるが、質問をあげてから最速で3時間以上は してはならないことにする。 それまでに答えた回答者はフライングで、皆でバッシング 催促されたら、原則として最も早く回答した人が質問者との通信権を持ち ソースの授与とソースに対する質問が終わるまで、他の回答者は その質問者にアクセスすることが出来ないことにする。 その後、別の回答者、もしくは同じ回答者が質問者にアクセスす る場合は、質問者を呼び出すこと。応答が無い限り、質問者宛という 形でソースコードを置き逃げするようなことをしない。 あと回答者同士で、ソースコードをやりとりするのはタブーかな。 やはり。 要するに、相手がオンライン状態であることを確認し、相手が自分の コードを受け取る認識にあることを確認した上でソースを渡す方式すれ ばいいだけ。
88 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:27:26 ] 長文うぜー
89 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:34:10 ] >>50 数式が解けない f'(t)=? // f(0)=0 f''(t)=mg-kf(t)-aη/hf'(t)
90 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:34:48 ] f''(t)=mg-kf(t)-(aη/h)f'(t)
91 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:38:45 ] >>51 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void bubblesort(int *a, int size) { int i, j; for(i=size-1; i>0; i--) for(j=0; j<i; j++) if(a[j] > a[j+1]) swap(a+j, a+j+1); } void insertionsort(int *a, int size) { int i, j; for(i=1; i<size; i++) for(j=i; j>0 && a[j] < a[j-1];j--) swap(a+j, a+j-1); }
92 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:54:02 ] >>88 短文しか書けない奴は実は単文は書けないな
93 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:07:17 ] >>88 大卒のための卒論にはありきたりな文章を真似るにしても 短文じゃ無理だから、お前みたいな大学も卒業していない 知能レベルの低い奴が何を言っても説得力がないよw
94 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:09:30 ] >>93 中文が一番うざい
95 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:09:58 ] >>88 読む気がないんだろ?だったら読まなくて良いからw どうせ読解力、国語力のないお前じゃそういった低レベルの短文での 罵倒レスしか出来ないんだろうけどさw
96 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:10:35 ] >>94 だからお前個人の感想なんて要らないってw お前の存在そのものがうぜー、このスレには必要ない どうせお前が汚いソースを先走って出している低脳だから 必死に抵抗してんだろ?w
97 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:19:48 ] >>87 高卒?。中卒か? もしかしたら小卒かも知れねーな。 大卒とか院卒だとしても、この回答者の心理を無視した ルールは何だよw 相手がネットに張り付いて待っていよが居まいがコードが 出来たらいち早く置き土産みたく貼付けて楽しんでるんだよ。 コンパイルすら通らなくてもいい。とにかく形さえ出来てれば いいんだ。 もすこし、実態を知ってからカキコしろや
98 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:20:15 ] あぁ、なんだやっぱり 大卒未満 か、悪い。
99 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:23:31 ] 98の自己反省文でした。
100 名前:デフォルトの名無しさん [2008/07/15(火) 10:27:02 ] [1] 授業単元:プログラミング論 I [2] 問題文(含コード&リンク): fib(1) = fib(2) = 1 fib(i) = fib(i - 1) + fib(i - 2) i は3以上の整数時、 fib(i) を以下のプログラムで計算する時、fib(i) を計算するのに加算が何回行われるか、 fib(i) を使って示せ。 さらに、このプログラムより加算回数が少ないプログラムをCで実装せよ。 int fib(int i){ if(i <=2){ return 1;} int answer = fib(i-1) + fib(i-2); return answer; } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc3.4 [3.3] 言語: C [4] 期限: 2008年7月17日 [5] その他の制限: 特にありません。 よろしくお願いします。
101 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:30:29 ] とりあえず100は12:00まで回答禁止ってどーだ? 12:00以降100が再度お願いしますと言って来たら その時点で回答 期限は明後日だし、明日中に回答が貰えれば十分な筈だ
102 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:35:45 ] ここでいちいち名指し、個人宛て、アンカーをつけてレスしてないのに 反発レスをする奴は、自分に見に覚えのある基地外ってことだろ? 分かりやすいな、簡単に餌のない釣り糸に食いつく野郎って。 お前がいなくなれば、このスレは安泰するんだが、分かるかね?
103 名前:45 [2008/07/15(火) 10:47:03 ] >>79 一匹だけ抜き出す方法教えてくれませんか? 自機はできたので大丈夫そうです。
104 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:52:49 ] >>103 この間の君かw void elCreate(void) というところの Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40); Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40); Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40); Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40); というのが敵クラスを生成して画像を当てはめてるところ。 void MainScreen(void) というところの for(int i=0;i<4;i++){ Zako[i]->Draw(); } というのが敵クラスのDrawを呼び出して移動処理+描画をさせてる。 やっぱりクラス部分ではまったか・・・ 途中でやってた人がクラスで作ってきたがそれまでがそんなのできそうな気配が なかったのでいいのかな〜?と心配はしてたんだがw
105 名前:45 [2008/07/15(火) 11:04:59 ] >>103 つまり… for(int i=0;i<4;i++){ Zako[i]->Draw(); } を for(int i=0;i<1;i++){ Zako[i]->Draw(); } にすれば良いのですか?
106 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:06:33 ] >>105 それでもいいけど1個しか使わないなら Zako[0]->Draw(); だけでいいかな まあ本当は配列にする必要すらないんだけどね
107 名前:45 [2008/07/15(火) 11:15:44 ] >>106 ありがとうございます。無事にできました! あと、影は使わないので消す事できましたが、 下の 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40の部分は使わないので消しても平気でしょうか? Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40); Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40); Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40); Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40); Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60); Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60, 0,1,11,60,60); Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,120, 0,1,11,60,60); Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,180, 0,1,11,60,60); Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60,360,1, 1,60,60);
108 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:24:15 ] >>107 新しい方のお題がさっぱりわからないんだけど Ex09のお題でいうところの自分で操作するキャラクターと跳ね回ってる敵の両方で影を使わないので あればクラスの class Chara{ <中略> Chara(int _w,int _h,char *imgname,int _draw_type,char *kagename, int _show_cnt = 0, int _start_x = 0, int _start_y = 0, int _div_x = 1, int _div_y = 1, int _div_h = 0, int _div_w = 0) { を Chara(int _w,int _h,char *imgname,int _draw_type, int _show_cnt = 0, int _start_x = 0, int _start_y = 0, int _div_x = 1, int _div_y = 1, int _div_h = 0, int _div_w = 0) { として 続く
109 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:25:29 ] >>108 の続き class PlayerChara : public Chara { public: PlayerChara(int _w,int _h,char *imgname,int _draw_type,char *kagename, int _show_cnt = 0, int _start_x = 0, int _start_y = 0, int _div_x = 1, int _div_y = 1, int _div_h = 0, int _div_w = 0) : Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w) { setPos(px,py); } を class PlayerChara : public Chara { public: PlayerChara(int _w,int _h,char *imgname,int _draw_type, int _show_cnt = 0, int _start_x = 0, int _start_y = 0, int _div_x = 1, int _div_y = 1, int _div_h = 0, int _div_w = 0) : Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w) { setPos(px,py); } とすれば 続く
110 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:27:47 ] >>109 の続き Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40); の"bmp/kage2.bmp"は指定しなくてOKだし Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60); の"bmp/kage.bmp"は指定しなくてOK でも自分で操作するほうだけ影を残す場合は継承?してるっぽいのでちょっといじりかた変わると思う。 C++あまり詳しくないのであれなんだけどさ・・・^^;
111 名前:51 mailto:sage [2008/07/15(火) 11:31:07 ] >>91 ありがとうございます 無事できました
112 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:37:17 ] ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%BD%E3%83%BC%E3%83%88
113 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:47:18 ] ヒント:挿入ソートは比較対象となる値を記憶しておく変数を使い 比較中は押し出すだけで、最後に対象の位置へその値を入れるため スワップの必要が無い。
114 名前:45 [2008/07/15(火) 11:52:55 ] >>108 >>109 これ全部やった後、>>110 のようにやって。 これにしました。 Zako[0] = new Chara(200, 80,"bmp/teki.bmp",1,3,0,0,5,2,40,40); Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,0,0,1,11,60,60); Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,0,1,11,60,60); Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,120,0,1,11,60,60); Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,180,0,1,11,60,60); Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,360,1,1,60,60); そうしたら cpp(73) : error C2065: 'kagename' : 定義されていない識別子です。 って出たんですけど、影関係全部消去した方が良いのですか?
115 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:57:07 ] >>114 >>109 のこれ忘れてる? Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w) { setPos(px,py); } ↓ Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w) { setPos(px,py); }
116 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:15:02 ] すいませんが>>55 をお願いします
117 名前:45 [2008/07/15(火) 12:29:19 ] >>115 ありがとうございます!できました! 敵をこれ↓に変えて、跳ね返るときに音鳴らすのはどうやってやるんですか? www.dotup.org/uploda/www.dotup.org5699.bmp.html
118 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:35:25 ] >>60 いや、macになったよ
119 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:35:59 ] >>117 画像のサイズが同じならファイル名同じにして入れ替えるだけだろ
120 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:36:12 ] >>118 コンパイラと言語は同じでは?
121 名前:デフォルトの名無しさん [2008/07/15(火) 12:37:32 ] >>17 を誰かお願いします。
122 名前:115 mailto:sage [2008/07/15(火) 12:40:04 ] >>119 いや違う void Draw() { if(draw_type == 0){ cw = w; cx = 0; ch = h; cy = 0; }else{ cw = div_w; cx = start_x + (cw * (img_id % (div_x)) ); ch = div_h; cy = start_y + (ch * (img_id / div_x) ); } この部分で与えられた画像が1画像1キャラか1画像の指定開始位置から縦方向にn個あるか しか現在処理できないようになってるので横方向にn個並んでる際の処理がいる
123 名前:115 mailto:sage [2008/07/15(火) 12:41:35 ] ってなんで他人が設計した得意でもないC++の解説をやってるんだ俺はorz
124 名前:115 mailto:sage [2008/07/15(火) 12:43:25 ] あ、敵が横だな。 いけるのかな?
125 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:52:54 ] >>55 >>116 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7376.c
126 名前:115 mailto:sage [2008/07/15(火) 13:01:30 ] Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,3, 0, 0,10, 1,40,40); 引数1,2 任意の座標にしてね。 引数3 今回表示したいbmpのファイル名称に 引数4 1でOKかな? 引数5 キャラクターのアニメーション用コマの切り替えタイミング?3だと1/60*3で切り替えかな? 引数6,7 画像の開始位置、今回の画像は1画像に1キャラの複数コマしかないので0,0で 引数7,8 横方向に10個、縦方向に1個分しかないので10,1で 引数9,10 1キャラの縦横サイズが40x40ドットなので40,40で
127 名前:115 mailto:sage [2008/07/15(火) 13:03:12 ] >>126 の続き サウンド系のお話 class Chara の virtual void Move() { if( (x > 640-cw) || (x < 0) ) { dx = -dx; x = x + dx; } if( (y > 480-ch) || (y < 0) ) { dy = -dy; y = y + dy; } x = x + dx; y = y + dy; } 続く
128 名前:115 mailto:sage [2008/07/15(火) 13:04:12 ] >>127 の続き virtual void Move() { int soundflg = 0; if( (x > 640-cw) || (x < 0) ) { dx = -dx; x = x + dx; soundflg = 1; } if( (y > 480-ch) || (y < 0) ) { dy = -dy; y = y + dy; soundflg = 1; } if (soundflg == 1) { //鳴らしたい音の処理 } x = x + dx; y = y + dy; } とでもすればOKかな? elのサウンド系はよくわからん
129 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:06:33 ] >>1 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
130 名前:115 mailto:sage [2008/07/15(火) 13:09:11 ] ああ、すまん
131 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:15:43 ] >>55 void del_chr(char *str, char c){ char *s,*d; s = d = str; do{ if(*s != c) *d++ = *s; }while(*s++); }
132 名前:131 mailto:sage [2008/07/15(火) 13:17:07 ] かぶった。 リロードしてなかったorz
133 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:17:46 ] >>120 別の学校で同じ課題が出たのかな。 先生も課題考えるのめどいんだろうなー
134 名前:115 mailto:sage [2008/07/15(火) 13:18:56 ] >>133 実は先生も課題用として動く物をこのすれの住人に作らせてると 俺は常々思ってる。
135 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:20:54 ] そんな先生がいたらちょっとした質問であたふたしそうだw
136 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:23:12 ] >>125 ,131 ありがとうございます …そっか、do文か
137 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:27:14 ] >>134 う〜〜ん・・・同じ学校の別の生徒と思われるかもしれんが、もしかすると 講師が課題作りをしたは良いが、模範解答をどうしようか考えて ここを利用している可能性もあるかもね・・・その構図を思い浮かべて、 ちょっとワラタw っつか、俺利用されたっ!?
138 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:28:35 ] 学生臭いスレですね
139 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:29:56 ] >>131 うおっ、その手があったか。先にレスしたけど、それパクらせてもらうw
140 名前:115 mailto:sage [2008/07/15(火) 13:31:37 ] 現実にそれっぽいのがあったんだよ。 週末にここで質問された内容が週明けに再度復活とかさ・・・・
141 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:33:36 ] >>35 pc11.2ch.net/test/read.cgi/tech/1215439445/723 pc11.2ch.net/test/read.cgi/tech/1215439445/725 pc11.2ch.net/test/read.cgi/tech/1215439445/757 pc11.2ch.net/test/read.cgi/tech/1215439445/760
142 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:35:09 ] >>140 なるほど、確かに。講師が模範解答の依頼、それを次の授業の後に ここで質問した人が、既出のソースをそのまま提出して お前、あのスレを使ったな?っとバレて単位がもらえないなんて ことが、どこかの学校であるかも・・・そんな構図を思い浮かべて ますます吹いたw
143 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:37:52 ] >>141 のソースに、2 2 0 と入力した場合について指摘がされているが それをどう解釈するか?確かにこの場合、2番目も1番目も同じと 解釈するなら、2でも問題なし。まぁ、同じでも偶数は2つ入力されている わけだから、これでも問題の趣旨としては条件を満たしていると思われる。
144 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:41:31 ] 学生だって土日は外で遊ぶこともあるべ
145 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:52:55 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の説明を読んで、プログラムを作成しなさい。 小数で入力される気温のデータを5℃単位の整数に丸めたい。 キーボードからdouble型変数kに気温を入力し、 丸めた数値はint型変数gに求め、gを画面に出力する。 ただし入力データに負の気温はないものとする。 また必要なら、 計算途中の中間結果を格納するint型変数wなど、 適宜変数を用意すること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 繰り返しや分岐を使わず、簡単な計算で
146 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:53:54 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): キーボードから100点満点のテストの点数を入力し(-1で終了)、 10点ごとの人数を int型の配列 count[11]に数えるプログラムを 作成せよ。 テストは100点満点とし、それ以外の入力はエラーとし て無視する。ただし -1 はデータの終了を表すものとする。 点数 の入力が終了したら、度数分布を画面に出力して終了する。出力は 人数と,*(アスタリスク)によるグラフとする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限:
147 名前:デフォルトの名無しさん [2008/07/15(火) 13:54:37 ] >>128 ありがとうございます!無事鳴りました。 自機も移動する時鳴らしたいのですが、同じようにやるんですか?
148 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:55:09 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の処理を行うプログラムを作成し実行結果を確認しなさい。 int型の配列a[5]、int型へのポインタp1, p2を宣言する 配列名aで表示される値を画面に出力する 配列a[5]のすべての要素のアドレスを出力する ポインタp1にa[0]のアドレス、ポインタp2にa[4]のアドレスを格納する p1 - p2を計算し出力する [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 3問」ありますが、よろしくお願いします。
149 名前:115 mailto:sage [2008/07/15(火) 14:17:45 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7380.txt
150 名前:115 mailto:sage [2008/07/15(火) 14:18:16 ] >>149 は>>147 に
151 名前:115 mailto:sage [2008/07/15(火) 14:27:29 ] すまん、フラグを立てる際間違えてた if(key_lt == HOLD_KEY || key_rt == HOLD_KEY) { if( tx >= 0 && tx + cw <= 640){ px = tx; soundflg1 = 1; } else { soundflg2 = 1; } } if(key_up == HOLD_KEY || key_dn == HOLD_KEY) { if( ty >= 0 && ty + ch <= 480){ py = ty; soundflg1 = 1; } else { soundflg2 = 1; } }
152 名前:デフォルトの名無しさん [2008/07/15(火) 14:33:36 ] [1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647
153 名前:115 mailto:sage [2008/07/15(火) 14:42:15 ] でキー押しっぱなしだとうるせーよ対策バージョンはこれ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7381.txt
154 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 14:45:19 ] >>115 やさしいね
155 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 14:46:32 ] >>154 こういう題材じゃなければぶっちしてるw
156 名前:デフォルトの名無しさん [2008/07/15(火) 15:13:59 ] >>153 ありがとうございます!できました。 最後に今までのをユーザー関数群でまとめたいのですが、 どうすれば良いでしょう?
157 名前:115 mailto:sage [2008/07/15(火) 15:18:03 ] うーん クラスになってるからユーザー関数にするような箇所がないかも? 大半の機能はelライブラリでやってるし・・・ C++得意な方よろしこorz
158 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:23:14 ] >>156 一度自分で完成させたソースを上げて、見てもらったほうがいいよ。
159 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:33:00 ] [1] 授業単元: C [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7377.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7378.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7379.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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 基本ソートのcity.txtは問題文の一番下です。 お願いします。
160 名前:デフォルトの名無しさん [2008/07/15(火) 15:35:53 ] >>158 分かりました。 その前に自機と敵を下のに変えるには、 どこをどのように変更すれば良いのですか? 自機 www.dotup.org/uploda/www.dotup.org5804.bmp.html 敵 www.dotup.org/uploda/www.dotup.org5806.bmp.html 今までのソース www.dotup.org/uploda/www.dotup.org5816.cpp.html
161 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:36:46 ] >>35 Thanks, Part112>>760 #include <stdio.h> int main(void) { int m1=0, m2=0, n; while( scanf("%d",&n) ) { if(n == 0) break; if(n%2 == 1) continue; /* * if(n==m1) continue; * if(n >m2) m2=n; * if(m1<m2) swap(&m1, &m2); */ if(n>m2) { if(n>m1) { m2=m1; m1=n;} else if(n==m1) ; else m2=n; } } printf("%d \n",m2); return 0; }
162 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:39:39 ] >>145 #include <iostream> int main(void){ double k; int g; std::cout << "気温を入力:"; std::cin >> k; g = k / 2.5; g += g % 2; g = g / 2 * 5; std::cout << "気温は約" << g << "℃です。" << std::endl; return 0; }
163 名前:115 mailto:sage [2008/07/15(火) 15:42:52 ] >>160 その敵のほうのさ、白いのっていまどきマスクパターンっていわないよねw あくまで敵が何か発動中はその白塗りになると思っていいよね?
164 名前:デフォルトの名無しさん [2008/07/15(火) 15:47:31 ] >>163 はい。そうです。
165 名前:デフォルトの名無しさん [2008/07/15(火) 15:48:50 ] >>163 跳ね返りの時、白く点滅できれば…。
166 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:52:06 ] >>35 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7382.txt 指摘のあった、一番大きい値が2回入力された場合に対処してみた。
167 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:58:04 ] >>152 適当に kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7383.cpp
168 名前:161 mailto:sage [2008/07/15(火) 16:01:52 ] scanf の戻り値はエラーなら0か-1
169 名前:58 mailto:sage [2008/07/15(火) 16:04:08 ] すみません どなたか>>58 をお願いできませんか?
170 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:07:23 ] >>146 #include <iostream> int main(void){ int count[11]; int n; for(int i = 0;i < 11;i++) count[i] = 0; while(1){ std::cout << "点数入力:"; std::cin >> n; if(n == -1) break; if(0 <= n && n <= 100) count[n/10]++; } for(int i = 0;i < 10;i++){ std::cout << std::endl << i * 10 << "〜" << i * 10 + 9 << "(" << count[i] << "名)\t|"; while(count[i]-- > 0) std::cout << "*"; } std::cout << std::endl << "100(" << count[10] << "名)\t|"; while(count[10]-- > 0) std::cout << "*"; return 0; }
171 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:09:06 ] >>148 #include <iostream> int main(void){ int a[5],*p1,*p2; std::cout << "a=" << a << std::endl; for(int i = 0;i < 5;i++){ std::cout << "a[" << i << "]のアドレス:" << &a[i] << std::endl; } p1 = &a[0]; p2 = &a[4]; std::cout << "p1 - p2 (&a[0] - &a[4]) = " << p1 - p2 << std::endl; return 0; }
172 名前:115 mailto:sage [2008/07/15(火) 17:04:35 ] >>163 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7384.txt
173 名前:115 mailto:sage [2008/07/15(火) 17:05:06 ] >>163 じゃねえ>>165 だ
174 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:10:56 ] [1] 授業単元:プログラミング第一 [2] 問題文(含コード&リンク): 構造体bintree_nodeを次のように定義する。 typedef struct bintree_node{ int value; struct bintree_node *lt,*rt; } *bintree; このとき、次の条件を満たす関数void delgraph(bintree t)を作成せよ。 ・tからたどることのできる節点をすべてfreeによって消去する ・tに合流点・ループがあっても必ず停止し、かつどの節点にもfreeが2回以上適用されないようにする [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/16 12:00 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 以前、似たような問題をこちらで聞いた時のプログラム(木構造に合流点やループがないかどうか調べる) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7386.c に付け足していただけるとうれしいです。
175 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:11:05 ] PlayerChara(60,660 この数字がおかしいな
176 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:42:27 ] >>89 m(dz^2/dt^2)-an/h(dz/dt)-kz=0
177 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:48:23 ] >>100 ですが、 回答はご用意頂けたでしょうか?
178 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:00:38 ] >>174 その元のコードだとbintreeはmallocを使わず実装してるので この課題には流用しずらい。 それに付け足すまでもなく自明に実装できる。 void delgraph(bintree tree){ static bintree_node dummy; if(!tree || tree->lt == &dummy)return; bintree lt = tree->lt,rt=tree->rt; tree->lt = &dummy; delgraph(lt); delgraph(rt); free(tree); } ようするに一度巡回したノードにはltにdummy突っ込んでおくだけ。 削除するんだから値を勝手に書き換えても問題ないだろう。
179 名前:デフォルトの名無しさん [2008/07/15(火) 18:17:51 ] 0の値が格納された整数変数 pos_area を使って bst_sorted_output(root,A,&pos_area)を実行することにより、 2分探索木に格納されている整数データを配列Aへ小さい順に整列して出力する関数bst_sorted_output(Node *node, int A, int *pos)をC言語を用いてコーティングせよ。 ただし、変数*pos(実体はpos_area)は配列Aにおける次の格納位置を示すのに使うものとする。
180 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:20:21 ] >>177 #include<stdio.h> #include<stdlib.h> int fib(int i){ static int count; int answer; if(i==0){ int ret=count;count=0;return ret; } if(i <=2){ return 1;} answer = fib(i-1) + fib(i-2); // 3回加算 count+=4; // 1回加算 計4回 return answer; } int fib2(int i){ static int count; int n, fib_n_0=1, fib_n_1=1, fib_n_2=1; if(i==0){ int ret=count;count=0;return ret; } for(n=3;n<=i;n++){ // 1回加算 fib_n_2=fib_n_1+fib_n_0; // 1回加算 fib_n_0=fib_n_1; fib_n_1=fib_n_2; count+=3; // 1回加算 計3回 } return fib_n_2; } int main(int argc, char *argv[]){ int fib_n=20; printf("%d ", fib(fib_n)); printf(" %d\n", fib(0)); printf("%d ", fib2(fib_n)); printf(" %d\n", fib2(0)); return 0; }
181 名前:174 mailto:sage [2008/07/15(火) 18:52:33 ] >>178 回答ありがとうございます。 いただいたのをもとにプログラムを書いてみたんですが、うまく削除できてないみたいなんです・・・ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7387.c これを実行すると@を5回表示するんですが、bintree 〜 is deleted.のほうは表示されなくて。 申し訳ありませんがもう1度見ていただけますか。
182 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:56:27 ] >>181 削除は出来ている。 ただ、ローカル変数のta0とかの値は削除したからって自動でNULLにならない。 単にbintree 〜 is deleted.の部分のif文がおかしいだけ。
183 名前:174 mailto:sage [2008/07/15(火) 19:10:38 ] >>181 調べてみたら、確かにfreeした後の領域はNULLではなくて、 何があるかわからないということが書いてありました。 そうすると、削除したかどうかってどうやって調べればいいんでしょう・・・。
184 名前:デフォルトの名無しさん [2008/07/15(火) 19:13:47 ] >>35 なのですが、関数を使わずにか、 #include <stdio.h> void swap(int *a, int *b) { int c; c=*a; *a=*b; *b=c; } int main() { int max1 = 0, max2 = 0, num; while(scanf("%d", &num) == 1){ if(num == 0) break; if(num < 0 || num % 2 == 1) continue; if(num > max2) max2 = num; if(max1 < max2) swap(&max1, &max2); } printf("%d\n", max2); return 0; } *aやcontinue、&max1を使わずに出来ないでしょうか? 何度も申し訳ありません。
185 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:18:37 ] >>184 このスレ内に汝の欲するものは既にある
186 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:19:55 ] 空白文字の個数を保ったまま、文字列を単語単位で処理をしたいんですが どのように記述するのが良いのでしょうか 例えば次の文字列があり、単語の先頭にあるaだけ大文字にしたいです _aba__dea__aga__ (_は空白) _Aba__dea__Aga__ (こうなってほしい) stringstreamでパースして、後で結合する方法を思いつきましたが、この方法だと空白は消えてしまいました。 地道に1文字ずつみて、str[i]==0 || (str[i-1]==' ' && str[i]!=' ') こういった判定をする以外に良い方法ってありますか?
187 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:24:39 ] UDP:相手先のオンライン、着信確認をせずに送ること TCP:相手先がオンラインであること、着信確認を取った上で送ること という理解でいいでしょうか?
188 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:31:55 ] >>186 こういうことをしたいのかな? それともaだけを大文字にするのかな? #include<iostream> #include<string> #include<cctype> int main(void){ std::string foo=" aba dea aga "; std::cout << foo << std::endl; for(int i=0,next_toupper_flag=1;i<foo.size();i++){ if(next_toupper_flag) foo[i]=toupper(foo[i]); // 書き換えてるけどこれっておk? if(isspace(foo[i])) next_toupper_flag=1; else next_toupper_flag=0; } std::cout << foo << std::endl; }
189 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:37:21 ] >>186 while (*str) { while (*str == ' ') str++; if (*str == 0) break; else if (*str == 'a') *str = 'A'; while (*str && *str != ' ') str++; }
190 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:37:29 ] うpローダー使おうよ
191 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:49:53 ] 複数レスにならない限り過去ログに残るほうがうれしい 質問者側としては検索で出てくるのはまずいかもしれないが… 変数名変えれば多分大丈夫さw
192 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:51:40 ] [1] 授業単元:C言語 [2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7388.txt [3] 環境 [3.1] OS: Windowsxp [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C [4] 期限:7月18日 お願いします
193 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:05:21 ] >>192 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7389.txt
194 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:06:24 ] すいませんがお願いします。 [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 以下のようなdouble型配列がある。配列の全要素の合計と平均を求める プログラムをポインタを使用して作成しなさい。 [配列の定義] double date[5]={10.8,20.3,30.6,40.4,50.5} [実行結果] 配列の内容 date[]=10.800000,20.300000,30.600000,40.400000,50.500000 合計=152.600000 平均=30.520000 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:今週いっぱいまで [5] その他の制限: (シンプルにおねがいします)
195 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:07:51 ] >>193 どうもです!!
196 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:35:23 ] >>194 #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]){ double date[5]={10.8,20.3,30.6,40.4,50.5}, *p=date, sum, ave; int i; printf("date[]=%.6f", sum=*p++); for(i=1;i<5;i++,p++){ printf(",%.6f", *p); sum+=*p; } ave=sum/5; printf("\n合計=%.6f\n", sum); printf("平均=%.6f\n", ave); return 0; }
197 名前:デフォルトの名無しさん [2008/07/15(火) 20:36:13 ] >>184 やっぱりわからないです…
198 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:47:23 ] [1] 授業単元: Cプログラミング [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7390.txt [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限:7月17日 お願いします。
199 名前:194 mailto:sage [2008/07/15(火) 20:48:48 ] >>196 すごい、完璧に動きました。 ありがとうございます!
200 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:50:55 ] 完璧に動く > 完動 > 感動した!
201 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:06:53 ] >>194 シンプル > #include <stdio.h> #define COUNT 5 double date[5]={10.8,20.3,30.6,40.4,50.5}; void main(void) { int i; double *p=date, sum=0.0, ave; printf(" 配列の内容\n date[]="); for(i=0; i<COUNT; i++, p++) { sum += *p; printf("%f", *p); if(i < COUNT-1) printf(","); } ave = sum / COUNT; printf("\n 合計=%f\n 平均=%f\n", sum, ave); }
202 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:09:30 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7391.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: C++ [4] 期限: 至急 [5] その他の制限:問題文をソースの上に載せています。よろしくおねがいします
203 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:09:34 ] >>198 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7392.txt
204 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:11:27 ] 動作は完璧かもしれないが、出題内容のdateはdataに変えるべきだと思った。
205 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:12:53 ] >>198 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7393.txt
206 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:20:39 ] どうか>>50 をお願いします!!
207 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:21:22 ] [1] 授業単元:数値計算 [2] 問題文(含コード&リンク): y' = x +y y(0) = 0 の厳密解を求めるプログラムを作って☆ [3] 環境 [3.1] OS:mac os x leopard [3.2] コンパイラ名とバージョン:gcc.4.0.1 [3.3] 言語: C [4] 期限: 至急 [5] その他の制限:printfもfprintfもしなくて結構です。ええ、そうです。私ができないのは積分なのです…orz すいませんすいませんすいませんすいませんすいません…。公式分かってるけど、計算ミスが多すぎて何が何だかなのです><
208 名前:186 mailto:sage [2008/07/15(火) 21:26:37 ] >>188 ありがとうございます。 next_toupper_flagで単語の先頭(書き換えるべき箇所)を保持してるわけですね 書き換えもOKだったので助かりました。 >>189 ポインタ苦手なんですが、何とか理解できました。 最初、全てのaを置換しているのかと思いましたが 最後のwhileで先頭以外を読み飛ばしてるんですね
209 名前:デフォルトの名無しさん [2008/07/15(火) 21:41:29 ] >>184 ですが 関数使わずにか* & continueを使わない方法ないですか? 図々しいとは思いますが、今日中なので頼みます
210 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:46:25 ] >>209 >>166 でダメなら諦めるしかない
211 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:55:52 ] >>107 >>110 Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,NULL,3, 0, 0,5, 2,40,40); にすればいいだけなのに(´;ω;`) >>126 引数4は 0-背景 1- パターン1 → パターン2 → …… → パターンN → パターン1→ …… 2- パターン1 → パターン2 → …… → パターンN → パターンN-1 → パターンN-2 → …… → パターン1 → ……
212 名前:デフォルトの名無しさん [2008/07/15(火) 21:58:06 ] >>210 アドバイスありがとうございます。
213 名前:198 mailto:sage [2008/07/15(火) 22:02:15 ] >>205 ありがとうございます! 初めて見る単語の理解に努めます・・・
214 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:12:06 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
215 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:42:36 ] >>4 07/15 13:00 線形リスト >>17 07/15 14:00 分数の四則演算を計算するプログラム >>35 07/15 17:00 キーボード入力と表示 : >>72 , >>141 , >>161 , >>166 >>37 07/15 17:00 数字の読み方 : >>39 , >>40 , >>42 ? >>44 07/17 --:-- 4択3種 >>45 07/15 07:00 ゲーム? : >>108->110 その他アドバイスは多数 >>46 07/18 --:-- メディアン : >>47 , >>49 >>50 07/17 00:00 減衰振動 >>51 07/15 12:00 ソーティング:基本交換法と挿入法 : >>91 >>55 07/15 14:00 文字列中の特定文字を削除 : >>125 , >>131 >>58 07/15 18:00 木構造を用いた数式の処理 >>84 07/16 12:30 自由落下・BMI : >>86
216 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:44:03 ] >>100 07/17 --:-- フェボナチ数列 : >>180 >>145 --/-- --:-- 5ごとに丸め >>162 >>146 --/-- --:-- 数字入力と度数分布表示 : >>170 >>148 --/-- --:-- ポインタ演算 : >>171 >>152 07/21 14:00 = >>17 : >>167 >>159 07/16 --:-- 複素数演算・ソーティング >>174 07/16 12:00 領域開放 : >>178 ? >>179 --/-- --:-- 2文木->配列 >>186 ? : >>188 , >>189
217 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:44:33 ] >>192 07/18 --:-- ? : >>193 >>194 07/18 --:-- 配列の全要素の合計と平均 : >>196 , >>201 >>198 07/17 --:-- 大文字小文字3題 : >>203 , >>206 >>202 --/-- --:-- (ごめんなさい、よくわからないです。) >>207 --/-- --:-- 微分方程式の解析解 >>214 07/16 --:-- 20次元の2つのベクトル余弦
218 名前:84 mailto:sage [2008/07/15(火) 22:45:01 ] >>86 ありがとうございます! まさかこんなに早く答えていただけるとは・・・助かりました。 見たことある単語がいくつもあったので自分にも理解できそうです。
219 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:49:39 ] >>214 20次元の場合の計算方法はこれでいいのか? #include<stdio.h> #include<math.h> #define EPS (1.0e-20) typedef struct tag_vector20d_t{ double num[20]; }vector20d_t; double vector20d_size(const vector20d_t *vector20d){ int i; double x2=0.0; for(i=0;i<20;i++) x2+=vector20d->num[i]*vector20d->num[i]; return sqrt(x2); } double vector20d_inner_product(const vector20d_t *a, const vector20d_t *b){ int i; double ret=0.0; for(i=0;i<20;i++) ret+=a->num[i]*b->num[i]; return ret; } double vector20d_cos(const vector20d_t *a, const vector20d_t *b){ double size_a, size_b; size_a=vector20d_size(a); size_b=vector20d_size(b); if(size_a<EPS || size_b<EPS) return -10.0; return vector20d_inner_product(a, b)/(size_a*size_b); } int main(void){ int i; vector20d_t a, b; for(i=0;i<20;i++) scanf("%lf", &(a.num[i])); for(i=0;i<20;i++) scanf("%lf", &(b.num[i])); printf(" %f\n", vector20d_cos(&a, &b)); return 0; }
220 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:09:22 ] >>100 ありがとは? >>596 過去ログ嫁
221 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:13:59 ] >>201 ループの中に無駄な分岐を入れるのはバカ
222 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:16:34 ] >>221 どのくらい早くなりますか?
223 名前:174 mailto:sage [2008/07/15(火) 23:27:22 ] 追記です。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7387.c でta1のltをta4にしたとき(合流点があるとき)、@を1つ出力したあとAbortedと出て強制終了してしまいます。 (↑ta4をfreeしたあとta3でta4にアクセスしようとするから?) 他にも、ta3のrtをta2にするとSegmentation Errorとなってしまいます。 ループのときは正しく動いているようなので、上の2つのようなときに正しく動けばいいんですが・・・ よろしくお願いします。(引き続き>>183 も答えていただけると幸いです)
224 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:27:27 ] >>2 01 このばあいほとんど分岐が起こらないから、きにする必要なし。
225 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:39:35 ] 分岐結果の分布がどうとかではなくて毎回判定処理が動作することを懸念してるんで無いの? 今回の場合は大差ないし、そういうのは必要に応じてやればいいと思うけど。
226 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:45:30 ] なんでもループにまとめたり、短く書くことがいいことだと思う時期があんだよな。
227 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:14:21 ] >>223 あーそれは俺のバグだなぁ。 たしかにfreeを実行するタイミングが早すぎた。 修正してみた。あんまり自明なアルゴリズムじゃなくなってしょんぼり。 void delgraph2(bintree tree,bintree*rest){ static bintree_node dummy; if(tree && tree->lt != &dummy) { bintree lt = tree->lt , rt = tree->rt; tree->lt = &dummy; tree->rt = *rest; *rest = tree; delgraph2(lt,rest); delgraph2(rt,rest); } } void delgraph(bintree tree){ bintree rest = NULL; delgraph2(tree,&rest); while(rest){ bintree self=rest; rest = rest->rt; free(self); } }
228 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:18:00 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 #include<stdio.h> #include<string.h> main() {char string[]= "I write the book about internet search engine."; printf("%s",string); } string内の配列内の文字列の順番を逆にせよ。ただし出力だけが逆文字 に表示されては駄目である。配列の中身自体を変えなければいけない [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
229 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:23:19 ] #include <stdio.h> int main(void) { char string[] = "I write the book about internet search engine.", *p, *q, temp; printf("%s\n", string); for(p=string; *p; p++); q = string; while(p-- > q) { temp = *p; *p = *q; *q++ = temp; } printf("%s\n", string); return 0; }
230 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:25:13 ] >>228 過去ログ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7350.txt
231 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:27:38 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7395.txt [3] 環境 [3.1] OS: windows xp [3.2] コンパイラ名とバージョン:vc6.0 [3.3] 言語: C++ [4] 期限: 早急に… [5] その他の制限: 配列の問題です よろしくおねがいします
232 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:33:58 ] >>231 すまないが、配列の配列は動的に確保できないんじゃよ。We apologize for your inconvenience...
233 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:40:22 ] >>231 >>28 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7369.txt
234 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:24:02 ] [1] 授業単元:数値解析 [2] 問題文(含コード&リンク):減衰振動の運動方程式 m(d^2x/dt^2)=−kx−α(dx/dt) をルンゲクッタ法で解くやり方を教えてください m k αはキーボードからの入力値です 初期条件はx(0)=0 , x'(0)=0です [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C [4] 期限: >>50 でしましたが、とりあえずこれだけわかればなんとかできそうなんで・・・
235 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:56:00 ] >>234 ルンゲクッタ法とか法がつくものは、やり方のことだよ。 明日朝以降にもう一度お願いすれば、もしかしたら 誰かが解いてくれてるかも
236 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 02:02:46 ] >>235 解くまでもなく 0しか答えがないので釣りとみなされました。
237 名前:デフォルトの名無しさん [2008/07/16(水) 02:16:12 ] [1] 授業単元: [2] 問題文(含コード&リンク):ランダムに現れる#、$、%、&を同じ記号で3つ揃えるスロットゲームの作成 条件:スロットをするかどうかをy、nで判定 スロットを行う 実行結果通りの結果を出力させる [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 至急 [5] その他の制限:実行結果の例 スロットをを回しますか?(y/n)>>>y 幸運をお祈りします ### 大当たり スロットを回しますか?(y/n)>>>n ありがとうございました どうかよろしくお願いします
238 名前:44 mailto:sage [2008/07/16(水) 02:31:44 ] だれか>>44 の問題お願いします
239 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 03:35:38 ] >>44 ,238 1.1 [A] struct xyz [B] struct xyz [C] {0,0,0} [D] t 1.2 [A] struct xyz * [B] (*x).x [C] (*x).y[D] (*x).z 2.1 typedef struct tDate{ int y,m,d }Date; 2.2 void printDate(Date d) { fprintf( stdout, "%4d/%2d/%2d", d.y,d.m,d.d ); } 2.3 void printDateGen(Date d) { #define DD(Y,M,D) ((Y)*10000+(M)*100+(D)) char *Era[] = {"","明治","大正","昭和","平成"}; int y, e, dd = DD(d.y,d.m,d.d); e = ( dd >= DD(1989,1,8) ) ? 4 : ( dd >= DD(1926,12,25) ) ? 3 : ( dd >= DD(1912,7,30) ) ? 2 : ( dd >= DD(1868,9,8) ) ? 1 : 0; y = d.y - ( ( e == 1 ) ? 1867 : ( e == 2 ) ? 1911 : ( e == 3 ) ? 1925 : ( e == 4 ) ? 1988 : 0 ); if ( y == 1 ) { fprintf( stdout, "%s 元年 %2d月 %2d日", Era[e], d.m, d.d ); } else { fprintf( stdout, "%s %2d年 %2d月 %2d日", Era[e], y, d.m, d.d ); } }
240 名前:237 [2008/07/16(水) 03:44:28 ] >>>237 誰かお願いします 切羽詰ってます
241 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:17:34 ] >>240 「至急」なんて書かれても、「その内やる」としか思わないんじゃね?
242 名前:237 [2008/07/16(水) 04:24:04 ] >>>237 午前7時まで
243 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:41:34 ] >>240 >>237 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7400.c スペースキーを押すと、左から順に止めることが出来る仕様
244 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:42:30 ] あぁ、すまん、繰り返すかの y/n は自分で適当に組み込んでおいて
245 名前:237 [2008/07/16(水) 04:59:02 ] >>>244 ありがとうございます! 繰り返すのはfor文ですよね?
246 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:11:44 ] うむ。やっぱ、もう少し書き直してみるんでお待ちを
247 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:20:46 ] >>240 >>237 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7401.txt これでどうかな?
248 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:01:50 ] >>234 とりあえず解いてみてください ちなみにこれであってる? 一般解の形は x(t)=a*e^(-b*t*i)+c 但し e をネイピア数、i を虚数単位とする
249 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:15:52 ] >>202 コンパイルエラーを取る問題。無理なのでネタと判断した。
250 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:16:29 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 構造体配列struct tfield name[10];がありメンバにchar str1;があるとします 文字列を適当にabscedと標準入力したとして その文字列を1文字ずつ構造体配列name[i].str1にいれるように. 最終的にそのname[i].str1を表示するブログラムを [3] 環境 [3.1] OS: LINUX [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
251 名前:248 mailto:sage [2008/07/16(水) 08:21:46 ] >>248 の一般解、定数 b が複素数かも よーわからん 忘却の彼方なので数学部分は中学レベルまでにして
252 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:32:55 ] >>250 文字列の終端はどうするの? #include<stdio.h> struct tfield{ char str1; }; int main(void){ struct tfield name[10]; char buf[10+1]=""; int i; fgets(buf, sizeof(buf), stdin); for(i=0;buf[i];i++) name[i].str1=buf[i]; // for(i=0;name[i].str1=buf[i];i++); for(i=0;i<10;i++) printf("%c\n", name[i].str1); return 0; }
253 名前:249 mailto:sage [2008/07/16(水) 08:51:07 ] void (*a)(const strtype) = show; void (*b)(const strtype&) = show; a(hello); b(hello);
254 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:14:17 ] キーボードから50人分の点数を入力し 90点以上の人の番号と点数を表示せよ。 っていうプログラムってどんな感じですか?
255 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:17:58 ] 入力が大変です
256 名前:デフォルトの名無しさん [2008/07/16(水) 10:19:34 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 キーボードから50人分の点数を入力して、90点以上の人の番号と点数を表示せよ [3] 環境 [3.1] OS: vista [3.3] 言語: (C言語) [4] 期限: [5] その他の制限: 特になし
257 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:53:56 ] >>254 50人分の点数をテキストファイルにでも保存して リダイレクトを使えば、プログラムを実行してから 毎回入力する手間は省けるが。 あとは、受け継いだ点数から90以上のものをカウントする プログラムを作ればええがな。
258 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:57:34 ] あ、カウントじゃなくて番号と点数で良いのか。 まぁ、そういうことで、1行ずつ先頭から番号、点数、改行して 50人分の点数を記述するか、点数も乱数を使って発生させるのもありやな。 ってことで、誰かやってちょっ。自分はちと席を外すんで。
259 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:14:17 ] >>256 リダイレクト使った成績入力は自分でやってくれ #include <stdio.h> #define CLASSMAX (2) /* クラスの人数 */ #define MAXNAME (128) /* 名前の最大文字数 */ #define BOADER_POINT (90) /* 表示する最低点数 */ /* 生徒1分の成績 */ typedef struct tagRECORD { char name[MAXNAME]; int point; } RECORD; void input_record(RECORD *r, int i) { const int MAXBUF = 128; char buf[MAXBUF]; printf("Name[%d]?:", i); scanf("%s", r->name); printf("Point[%d]?:", i); scanf("%d", &(r->point)); } void print_record(RECORD *r) { printf("Name: %s, Point: %d\n", r->name, r->point); }
260 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:14:58 ] >>259 続き int main(int argc, char *argv[]) { RECORD clsRecord[CLASSMAX]; int i; /* クラスの成績を入力 */ for (i = 0; i < CLASSMAX; i++) { input_record(&clsRecord[i], i); } /* BOADER_POINT以上の生徒の成績表示 */ printf("\n***** Over %d students *****\n", BOADER_POINT); for (i = 0; i < CLASSMAX; i++) { if (clsRecord[i].point >= BOADER_POINT) { print_record(&clsRecord[i]); } } return 0; }
261 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:17:38 ] // 入力フォーマット: [番号],[得点] int main() { int i; int number; int score; for ( i = 0; i < 50; i++ ) { scanf( "%d,%d", &number, &score); if ( score >= 90 ) { printf("%d,%d", number, score); } } }
262 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:39:01 ] アンカー忘れてる、は回答プレ?
263 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 12:56:07 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): #include<stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ ch-=0x20; printf("%c", ch); } } 上記のプログラムを改良し、アルファベットは大文字と小文字を逆転し、それ以外の文字はそのまま表示するようにしなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:? [3.3] 言語:C [4] 期限:[本日16:30まで] 宜しくお願いします。
264 名前: ◆03xZ2wWsBw mailto:sage [2008/07/16(水) 12:57:49 ] [1]C言語中上級 [2] 3つの65535以下の非負整数a,b,cを乱数で生成します。a,b,cから次のような文字列を作ります。 [a+b][b+c][c+a][a][b][c][|a-b|][|b-c|][|c-a|][ab][bc][ac] [m]はmを10進表示した文字列を表す |m|はmの絶対値を表す それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 元の3つの数を再現する処理をC言語プログラムで記述しなさい。 元の3数は、decompositeからはアクセスできない、呼び出し側のローカル変数領域の外側に公開しないで下さい。 ☆23,39,17が生成された場合文字列 62564023391716226897663391をdecompositeに渡す。 ☆生成された3つの数、渡す文字列共に出力してから、decomposite関数を呼び出して下さい。 (関数の中で、決定された3数を出力) ☆一意に元の数を決定できない場合はdecomposite関数の中で一意決定不能と表示し、すべての候補を 出力して下さい。 [3]linux/gcc/C [4]7/30 12:00 時間がまだあるので、急ぎません。 少なくとも本日はこのスレを覗きません(これからバイトに行きますので) 明日以降、どなたかよろしくお願いします。
265 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:03:04 ] >>239 ありがとうございます マジで助かりました
266 名前: ◆03xZ2wWsBw mailto:sage [2008/07/16(水) 13:03:27 ] 問題文に誤りが見つかりました。 -それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 +それをdecomposite関数に引数渡しして、 として下さい。
267 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:07:10 ] >>263 っつか、そのプログラムの意図は? ttp://e-words.jp/p/r-ascii.html
268 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:13:59 ] >>263 ライブラリ使っていいなら以下。 #include<stdio.h> #include<ctype.h> main() { char ch; while(scanf("%c", &ch)==1){ if(islower(ch)!=0) ch=(char)toupper(ch); else if(isupper(ch)!=0) ch=(char)tolower(ch); printf("%c", ch); } }
269 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:16:36 ] >>263 #include <stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ if(ch >= 0x40){ if(ch >= 0x61) ch-=0x20; else ch+=0x20; } printf("%c", ch); } }
270 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:18:36 ] >>267 小文字を大文字にしてるんでないの?
271 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:20:44 ] >>270 アッ、ナール
272 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:23:47 ] >>263 >>269 ミスってた #include <stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ if(ch >= 0x41 && ch <= 0x5a) ch+=0x20; else if(ch >= 0x61 && ch <= 0x7a) ch-=0x20; printf("%c", ch); } }
273 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:24:11 ] [1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク): 以下のプログラムを完成してください。 共有バッファを用いたプロセス間メッセージ通信をするプログラム。 親/子プロセスでメッセージを書き込み、子/親で読み出す。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7402.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2008年7月16日23:59まで よろしくお願いします。
274 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:29:50 ] >>263 せっかくだからキモイコードを張るぜ #include<stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ ch=(ch|32U)-'a'<26?ch^32:ch; printf("%c", ch); } }
275 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:33:38 ] >>263 ならば、おいどんのキショースも出すでごわす #include<stdio.h> int main(void) { char ch; while(scanf("%c", &ch)==1){ if( ch>='a' && ch<='z') ch=ch-'a'+'A'; else if( ch>='A' && ch<='Z' ) ch=ch-'A'+'a'; printf("%c", ch); } }
276 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:47:52 ] 悪法回答テンプレが一掃されて以来スレが清々しいなw でもまだコードと一緒にアンカーと、コメント書く奴が多いな。
277 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:49:44 ] どうでもいいけどな
278 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:50:12 ] >>276 (・∀・)ニヤニヤ (・´ω`・)ンダゴルァ (・`ω´・)ナッナンダッテー
279 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 14:59:48 ] >>274 キモッ >>275 キショくなくてこまる
280 名前:263 mailto:sage [2008/07/16(水) 16:25:55 ] >>272 ありがとう。おかげで間に合ったよ。
281 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 17:41:27 ] [1] 授業単元:プログラム [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7403.txt [3] 環境 [3.1] OS: windows xp [3.2] コンパイラ名とバージョン:vc6.0 [3.3] 言語: C++ [4] 期限: [5] その他の制限:ソースに記載しています よろしくおねがいします
282 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:38:31 ] [3.2]のコンパイラ名とバージョンってのが良くわからないんですが、 コンパイラ名:Borland C++ バージョン:5.5.1 って感じでいいんですか?
283 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:15:47 ] >>273 は上級問題でおk?
284 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:32:31 ] >283 少なくても僕の脳みそでは分かりません。 たぶん上級問題なのかもしれません。
285 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:33:29 ] >>4 07/15 13:00 線形リスト >>44 07/17 --:-- 4択3種 : >>239 >>50 07/17 00:00 減衰振動 >>58 07/15 18:00 木構造を用いた数式の処理 >>159 07/16 --:-- 複素数演算・ソーティング >>179 --/-- --:-- 2文木->配列 >>202 --/-- --:-- (ごめんなさい、よくわからないです。) : >>253 >>207 --/-- --:-- 微分方程式の解析解 >>214 07/16 --:-- 20次元の2つのベクトル余弦 : >>219 >>228 07/16 --:-- 文字列のリバース : >>229 , >>230
286 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:34:00 ] >>231 --/-- --:-- = >>28 >>234 --/-- --:-- 微分方程式:ルンゲタック法 >>237 07/16 19:00 スロットゲーム : >>243 , >>247 >>250 07/16 --:-- 構造体のメンバへの代入 : >>252 >>256 --/-- --:-- 「キーボードから50人分の点数を入力し90点以上の人の番号と点数を表示せよ」: >>2590-261 >>263 07/16 16:30 大文字<->小文字 : >>268 , >>272 , >>274 , >>275 >>264 07/30 12:00 ??? >>273 07/16 23:59 セマフォを用いたプロセス間通信
287 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:20:19 ] >>286 ルンゲ”食った”ね
288 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:28:43 ] ほっとぞぬな問題
289 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:39:46 ] すいませんがお願いします。 ポインタの問題です。 [1] 授業単元:C言語演習 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7404.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual stdio 2005 [3.3] 言語: (C言語) [4] 期限:今週 [5] その他の制限:ポインタを使用すること。
290 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:40:08 ] [1] 授業単元: C言語入門 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7405.txt [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限: 7月17日まで [5] その他の制限: お願いします。
291 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:53:03 ] だれか>>282 について教えて
292 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:54:06 ] [1] 授業単元: 1次元配列 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7406.txt [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限: 7月17日まで [5] その他の制限: お願いします。
293 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:20:28 ] >>292 #include<stdio.h> #define DATA_NUM_MAX 100 int main(void){ int data[DATA_NUM_MAX], datanum int sum=0, i; double average; for(datanum=0;datanum<DATA_NUM_MAX;datanum++){ printf("%d件目の点数を入力してください.\n", datanum+1); scanf("%d", &data[datanum]); if(data[datanum]==999) break; printf("%d件目の点数は%d点です.\n", datanum+1, data[datanum]); sum+=data[datanum]; } if(datanum==0) return 1; average=(double)sum/datanum; printf("\n合計点は%d点です.\n平均点は%.1f点です.\n", sum, average); printf("\t点数\t平均からの差\n"); for(i=0;i<datanum;i++) printf("\t%d点\t%5.1f点\n", data[i], data[i]-average); return 0; }
294 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:25:23 ] >>290 #include<stdio.h> #include<string.h> int main(void){ char buf[10]; int i, count=0; for(i=100;i<=600;i++){ sprintf(buf, "%d", i); if(strchr(buf, '4') || strchr(buf, '9')) continue; count++; } printf("このホテルの客室総数は%dです.\n", count); return 0; }
295 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:33:51 ] >>273 をお願いします。
296 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:35:28 ] >>289 #include<stdio.h> int main(void){ int a[5][5] = { { 1, 2, 3, 4, 5}, { 6, 7, 8, 9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25}, }; int b[5][5] = { { 3, 6, 9,12,15}, {18,21,24,27,30}, {33,36,39,42,45}, {48,51,54,57,60}, {63,66,69,72,75}, }; int c[5][5],*p_a,*p_b,*p_c, i; p_a=a; // p_a=a[0] ? p_b=b; p_c=c; for(i=0;i<5*5;i++){ // 問題1 printf("%d ", *(p_a+i)); if(i%5==4) printf("\n"); } for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i); // 問題2 for(i=0;i<5*5;i++){ printf("%d ", *(p_c+i)); if(i%5==4) printf("\n"); } for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i)+*(p_b+i); // 問題3 for(i=0;i<5*5;i++){ printf("%d ", *(p_c+i)); if(i%5==4) printf("\n"); } return 0; }
297 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:50:17 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/18 [5] その他の制限: お願いします><
298 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:54:03 ] >>998 >>898 >>798 >>698 >>598 >>498 >>398 >>297 過去ログ 否 過去レスをみよ
299 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:55:31 ] 過去ログ見ろと言われて実際に見る奴なんていないだろw
300 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:58:01 ] 1]プログラミング [2] 2から1000までの素数を表示するプログラム [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 4.3.0 [3.3] 言語:C [4] 期限:7月18日17:00まで [5] その他の制限: ポインタ、構造体なんかは習って無いです 宜しくお願いします
301 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:14:21 ] >>300 #include<stdio.h> int main(void){ int i, j; for(i=2;i<1000;i++){ for(j=2;j<i;j++) if(i%j==0) break; if(j>=i) printf(" %d", i); } return 0; }
302 名前:300 mailto:sage [2008/07/16(水) 23:33:22 ] すみません。 >>300 を関数を使ってお願いします。
303 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:34:51 ] >>291 それで良いんじゃないの。 オレ、ボーランド製品が全然わからないけど
304 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:43:29 ] >>302 #include<stdio.h> int is_prime(int value){ int i; if(value<2) return 0; for(i=2;i<value;i++) if(value%i==0) return 0; return 1; } int is_prime(int value){ int i; if(value<2) return 0; if(value%2==0) return value==2; for(i=3;value/i>=i;i+=2) if(value%i==0) return 0; return 1; } int is_prime(int value){ int i, chk; double sqrt(double); if(value<2) return 0; if(value%2==0) return value==2; chk=sqrt(value+0.1); for(i=3;i<=chk;i+=2) if(value%i==0) return 0; return 1; } int main(void){ int i; for(i=2;i<1000;i++) if(is_prime(i)) printf(" %d", i); return 0; }
305 名前:デフォルトの名無しさん [2008/07/16(水) 23:45:01 ] >>159 お願いします
306 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:47:49 ] >>264 一意決定不能の例なんかあると助かるんだが。
307 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:08:04 ] >>264 スペースないからdecomposite関数だけ。 void decomposite(char *str) { int a, b, c, ab, bc, ca; char *p, *q, *r, temp[256]; for(p=str,ab=0; ab<=65535*2; p++) { ab = ab * 10 + *p - '0'; for(q=p+1,bc=0; bc<=65535*2; q++) { bc = bc * 10 + *q - '0'; for(r=q+1,ca=0; ca<=ab + bc; r++) { ca = ca * 10 + *r - '0'; a = (ab + ca - bc) / 2; b = ab - a; c = ca - a; if(a<0||b<0||c<0||a+b!=ab||b+c!=bc||c+a!=ca) continue; sprintf(temp, "%d%d%d%d%d%d%d%d%d",a,b,c,abs(a-b),abs(b-c),abs(c-a),a*b,b*c,c*a); if(strcmp(r+1, temp)==0) printf("a=%d b=%d c=%d\n", a, b, c); } } } }
308 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:13:29 ] >>159 一つ目 #include<stdio.h> #include<stdlib.h> struct bunsuu{ int bunsi, bunbo; }; int gcd(int a, int b){ int c; while((c=a%b)) a=b,b=c; return b; } struct bunsuu bunsuu_set(int bunsi, int bunbo){ struct bunsuu ret={0, 1}; if(bunsi==0 || bunbo==0) return ret; if(bunbo<0) bunsi=-bunsi, bunbo=-bunbo; ret.bunsi=bunsi/gcd(abs(bunsi), bunbo); ret.bunbo=bunbo/gcd(abs(bunsi), bunbo); return ret; } struct bunsuu bunsuu_add(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo+b.bunsi*a.bunbo, a.bunbo*b.bunbo); } struct bunsuu bunsuu_sub(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo-b.bunsi*a.bunbo, a.bunbo*b.bunbo); } struct bunsuu bunsuu_mul(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunsi, a.bunbo*b.bunbo); } struct bunsuu bunsuu_div(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo, a.bunbo*b.bunsi); } void bunsuu_print(struct bunsuu x){ printf(x.bunbo==1?"%d\n":"%d / %d\n", x.bunsi, x.bunbo); } int main(void){ struct bunsuu a={1,2}, b={2,3}; printf("input bunsuu ( ex. 1 / 2 ) :"); scanf("%d/%d", &a.bunsi, &a.bunbo); printf("input bunsuu ( ex. 2 / 3 ) :"); scanf("%d/%d", &b.bunsi, &b.bunbo); bunsuu_print(bunsuu_add(a, b)); bunsuu_print(bunsuu_sub(a, b)); bunsuu_print(bunsuu_mul(a, b)); bunsuu_print(bunsuu_div(a, b)); return 0; }
309 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:15:10 ] >>296 助かります、ありがとうございました。
310 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:17:19 ] またすいません。 2問ありますがお願いします。 [1] 授業単元:C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7407.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual stdio 2005 [3.3] 言語: (C言語) [4] 期限:今週 [5] その他の制限:ポインタを使用すること。
311 名前:45 [2008/07/17(木) 00:23:15 ] >>172 遅れましたが、ありがとうございます。
312 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:23:32 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7408.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: C++ [4] 期限:(2008年7月18日17:00まで [5] その他の制限: 一次元関数の問題です。期限が…
313 名前:300 mailto:sage [2008/07/17(木) 00:28:05 ] >>304 うまく行きました ありがとうございます
314 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:29:39 ] [1] 授業単元: [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7409.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: (C++) [4] 期限: [5] その他の制限:クラスを変更して動作させよというものです 宜しくお願いします
315 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:35:37 ] すみません。>>273 をどなたがお願いできないでしょうか? 期限は明日までになりそうです。
316 名前: ◆r8ev9T1A36 mailto:sage [2008/07/17(木) 00:37:13 ] [1] 授業単元: c言語演習 [2] 問題文(含コード&リンク): c言語を用いて制作すること ・入力は、整数n≥1 ・出力は、nのパリティ(偶パリティor奇パリティ) [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語: c [4] 期限: 2008年7月19日 [5] その他の制限: よろしくお願いします。
317 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:43:18 ] >>264 >>307 氏とは少しアプローチのちがうやつを kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7410.txt 長くてすまん さっきからループでまわして見てるが一意に解が出ないパターンに出くわさないな
318 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:01:18 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7411.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2008年07月17日18:00まで
319 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 02:56:22 ] >>312 そのうち>>231やるかも line 18 // int calendar[rsize][csize]; int *calendar = new int[rsize * csize]; line 23 // calendar[i][j] = 0; calendar[i*csize + j] = 0; line 50 // calendar[i][j] = day; calendar[i*csize + j] = day; line 62: // const int day = calendar[i][j]; const int day = calendar[i*csize + j];
320 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:22:30 ] >>318 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7412.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7413.c
321 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:23:46 ] >>231 >>319 delete[] calendar; retrun 0; 忘れてた。 line 17 // int calendar[rsize][csize]; int **calendar = new int*[rsize]; line 20 for (int i = 0; i < rsize; ++i) { calendar[i] = new int[csize]; line 83 for (int i = 0; i < rsize; ++i) delete[] calendar[i]; delete[] calendar; return 0;
322 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:36:06 ] すみません>>58 助けてください・・・
323 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:46:09 ] >>322 期限を過ぎてるじゃん
324 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:59:15 ] 期限過ぎても提出しないと全部ボツになるんです
325 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 05:09:45 ] 期限が過ぎていたからって、機嫌を悪くしないでね。
326 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 09:31:42 ] >>320 >以下の雛形プログラムの指定部分のみを変更すること. <ctype.h>のインクルードは題意に反する。
327 名前:デフォルトの名無しさん [2008/07/17(木) 09:48:43 ] >>318 //1 #include <stdio.h> #define N 128 /* プロトタイプ宣言 */ void printCapitals(char *s); int main(void){ char str[N]; fgets(str, N, stdin); printCapitals(str); return 0; } void printCapitals(char *s) { int i; for(i=0;s[i];i++) if('A' <= s[i] && s[i] <= 'Z') putchar(s[i]); } for(i=0;s[i],i++) if('A' <= s[i] && }
328 名前:デフォルトの名無しさん [2008/07/17(木) 10:18:39 ] >>318 #include <stdio.h> //2 unsigned CommaSeparatedValueSum(FILE *fp) { unsigned csv[5] = {0}; unsigned sum = 0; unsigned i; while(!feof(fp)){ fscanf(fp,"%u,%u,%u,%u,%u",&csv[0],&csv[1],&csv[2],&csv[3],&csv[4]); for(i = 0; i < 5; i++) sum += csv[i]; } return sum; } int main() { FILE *fop = fopen("data3.csv","r"); unsigned sum = CommaSeparatedValueSum(fop); printf("CSV DATA SUM %u \n",sum); return 0; }
329 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 10:28:21 ] >>281 private: void strset(char *str){ p = new char[strlen(str)+1]; strcpy(p,str); } public: strtype(char* str=""){ strset(str); } strtype(strtype &st){ strset(st.p); }
330 名前:デフォルトの名無しさん [2008/07/17(木) 10:40:34 ] [1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.2]Microsoft Visual Studio [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647 Visual Studioでお願いします
331 名前:100 mailto:sage [2008/07/17(木) 10:40:56 ] >>180 遅れましたがありがとうございます。
332 名前:デフォルトの名無しさん [2008/07/17(木) 10:53:02 ] >>310 問題文をもっと詳しく書かないと 意味がわからない
333 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:10:10 ] >>310 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7416.txt これであってるか?
334 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:25:25 ] >>234 をお願いしますm(__)m
335 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:53:44 ] >>335 C言語の宿題じゃなくて数学の宿題ね
336 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:57:56 ] >>334 自分で微分方程式解いたら、それ持って又来て。
337 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:59:46 ] >>235 そだね
338 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 12:10:20 ] >>236 違ってる
339 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 12:17:28 ] >>273 をどうかよろしくお願いします。 セマフォを用いたプロセス間通信をするプログラムです。 期限は明日の12:00までになりました。 どうか、よろしくお願いします。
340 名前:デフォルトの名無しさん [2008/07/17(木) 12:49:47 ] >>330 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7419.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7420.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7421.txt こんなんで良いのかな
341 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 13:17:46 ] >>234 >>334 ttp://pc-physics.com/rk1.html ttp://www.damp.tottori-u.ac.jp/~ooshida/edu/ode/ この辺を参考にしてみたら?