1 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:18:31 ] あなたが解けない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++の宿題を片付けます 106代目 pc11.2ch.net/test/read.cgi/tech/1209810861/
641 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 10:35:01 ] >>639 とりあえず const int b[][BOARD_SIZE] を int b[][BOARD_SIZE] にすれば警告は消える でも、なんで警告が出るんだろう?
642 名前: ◆DuoCt8/SKk [2008/06/05(木) 12:43:10 ] >>604-605 ありがとうございます. 今日が締切なので,引き続き>>592 をお願いしたいのですが・・・ よろしくお願いします!
643 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:50:43 ] >>635 アンカーの先をよく見るんだ弟よ
644 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 13:31:02 ] >>641 > >>639 以下はtccの場合。 :60: cannot cast 'int **' to 'const int **' constを付けると、コンパイラはconst領域に変数等を割り当てようとするが、今回のように 書きかえ可の領域 ---> 書きかえ不可の領域へのキャスト指示はプログラムミスと見なされる。
645 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 13:34:22 ] >>644 続き。 const領域を書きかえようとした場合のエラー。 #include<stdio.h> int main(){ const int a=3; a=2; } :4: error: assignment of read-only variable ‘a’
646 名前:ロベ [2008/06/05(木) 13:49:11 ] [1] 授業単元:プログラミング [2] 問題文:BMPファイルの情報(画像サイズ、色数等)を表示する BMPファイルの画像を上下・左右反転させる BMPファイルの画像を回転(90、180、270度)させる BMPファイルのカラー画像をグレースケール化するプログラムの作成 輝度を変換する式は、下記の式を使用すること Y=0.298912*R+0.586611*G+0.114478*B ※BMPファイルにはWindows形式とOS/2形式があります。どちらにも正しく対応できるように。 ※入力ファイル名は、プログラム実行後に聞いてくるものとします。 ※出力ファイル名は、プログラム実行後に聞いてくるものとします。 ※反転・回転方法の指示は、プログラム実行後に聞いてくるものとします。 ※ソースには必ずコメントを書いて下さい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32 [3.3] 言語:C [4] 期限:6月5日 0:00 [5] その他の制限:無し よろしくおねがいします
647 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:15:52 ] >>644-645 嘘を教えるなよ。。。
648 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:22:25 ] constがどこにかかってるかを考えれば、なんとなくわかるぞ
649 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:50:50 ] [1] 授業単元:C言語 [2] 問題文: int 型の2つの数をキーボードから読み込んで, それらの3乗の和を出力するプログラムを作成せよ。 ただし,2つの数の3乗の和を計算する部分は, 関数 int cubesum(int x, int y) を作成してそれを使え。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年6月9日 [5] その他の制限:
650 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 15:04:16 ] int cubesum(int x, int y) { return x*x*x + y*y*y; }
651 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:07:23 ] #include <stdio.h> int cubesum(int x, int y) { return x*x*x + y*y*y; } int main() { int a, b; printf("2つの整数を入れてください:"); scanf("%d %d", &a, &b); printf("%d^3 + %d^3 = %d\n", a, b, cubesum(a, b)); return 0; }
652 名前:デフォルトの名無しさん [2008/06/05(木) 19:31:10 ] .;;;;彡彡ミミ;;; ;;;;彡彡ミミミ;;; ;;;;彡彡ミミミ;;; ;;;;;;彡彡ミミミ;;;;; ;;;;彡ミ彡ミミミミ;;; ;;;彡ミ彡;;人;;;ミ彡ミ;;; ;;;彡ミ彡ノ ヽ;ミ彡ミ;;; ;;;彡ミ;;;;ノ.人 ヽ;彡ミ;;; ;;;彡ミ;;;ノ | ..| ;ヽ彡ミ;;; ;;;彡ミ;;ノ .| | ヽ彡ミ;;; ;;;彡ミ;ヽ |.・.| /彡ミ;;; ;;;彡ミ;;ヽ| .| /;;彡ミ;;; .;;;;;;;ミ;;;ヽ|( )|./ミ彡;;;; ..;;;彡;;;;ヽ| .|/;;;ミ;;; ..;;;;.彡;|.|;;ミ;;;;;.... ;;;;;彡;彡|;;ミミミ;;;; ;;彡彡彡*ミミミミ;; マンコ ;;;;彡彡ミミミ;;; ;;彡彡ミミミ;;;
653 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:54:07 ] >>550 の問題にメイン文も付け加えた形で教えて欲しいです。 よろしくお願いいたします。
654 名前:デフォルトの名無しさん [2008/06/05(木) 19:56:27 ] マルチで申し訳ないです。 本格的にハマってしまい、ヘルプをお願いさせてください。 [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 2次元配列(hai[10][10])を用いる。 各マスには予め1または2がランダムで入力されている。 100マスの中で、1と2のサイズを計測せよ。 なお、境界は存在せず、トーラス状とする。 例) 1,1,1 2,1,1 1,1,1 であれば、 1:8 2:1 1,1,1 2,1,2 1,2,1 であれば、 1:6(トーラス状であるため、左下と右下も一つの塊と見る) 2:2(トーラス状であるため、中段の左右は一つの塊と見る),1 [3] 環境 [3.1] 言語: どちらでも可 [4] 期限: 6月10日 解決の糸口が見つかりません。 どうかよろしくお願いします。
655 名前:639 mailto:sage [2008/06/05(木) 20:40:30 ] >>639 のところで回答してくださりました方々 ありがとうございます 課題ですのでgccで固定という以上 ほかの方法では試せませんのでなんともいえませんが 自分でもいろいろと試そうかと思います
656 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:53:40 ] >>654 無理やり1レスにまとめたからいろいろ足りないけど #include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 10 char hai[SIZE][SIZE], check[SIZE][SIZE]; int f(int x, int y, int n) { if(check[x][y] || hai[x][y]!=n) return 0; check[x][y] = 1; return 1 + f(x, (y+1)%SIZE, n) + f(x, (y+SIZE-1)%SIZE, n) + f((x+1)%SIZE, y, n) + f((x+SIZE-1)%SIZE, y, n); } int main(void) { int i, j, c[2][50] = {0}, count[2] = {0}; srand(time(NULL)); for(i=0; i<SIZE; i++) for(j=0; j<SIZE; j++) hai[i][j] = rand()%2+1; for(i=0; i<SIZE; i++) { for(j=0; j<SIZE; j++) { int n = f(i, j, hai[i][j]); if(n) c[hai[i][j]-1][count[hai[i][j]-1]++] = n; } } for(i=0; i<2; i++) { printf("%d : ", i+1); for(j=0; j<count[i]; j++) printf("%d ", c[i][j]); putchar('\n'); } return 0; }
657 名前:654 mailto:sage [2008/06/05(木) 21:11:52 ] >>656 ありがとう! 自分は3日間超絶悩んだのに、あっさり出来てるw 動作を確認させていただいたのですが、 #define SIZE 100 に変更した場合は、 int i, j, c[2][5000] = {0}, count[2] = {0}; と変更すれば、 SIZEが大きくなっても検索できるようですね。 もしよろしければ、いろいろ足りない部分とお名前を・・・・。
658 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:12:31 ] お名前ってww
659 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:17:24 ] 足りないってのは最後にソートしたほうがいいんじゃないかなってこと。
660 名前:デフォルトの名無しさん [2008/06/05(木) 21:18:00 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): 次の規則に従い、入力された文字列を変換して表示する。 T ・・・タブとして空白を2つ入れる(Tは表示しない) N ・・・改行する(Nは表示しない) + ・・・空白を1つ入れる(+と空白を置きかえる) その他・・・そのまま表示する。 $ ・・・¥に変換する。($は表示しない。) $の後に入力されてる数値を円に換算する。換算率は1$を120円とする。 行の先頭の英小文字は英大文字に変換する。 実行結果 データを入力してください:aprilT$012-NmayTT$023+Njune T$026+N April \01440- May \02760 June \03120 [3] 環境 [3.1] OS: windouws [3.2] コンパイラ名とバージョン:Visual C++ [3.3] 言語:どちらでも可 [4] 期限: 明日中 [5] その他の制限:switch使用 C言語歴2ヶ月の課題なんで低レベルとは思いますが、よろしくお願いします。
661 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:18:40 ] >>625 20x20の行列を用意後、画面から入力したサイズ分だけを使用。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6798.txt
662 名前:654 mailto:sage [2008/06/05(木) 21:24:32 ] えっと、ちなみにソートするにはどうすればw c[i][j]と c[i][j+1]を比較させまくるのかnya。
663 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:30:16 ] バブルソートでもクイックソートでもすきなのでいいだろw >>654 が宿題に出されるレベルならソートぐらいできんだろ
664 名前:654 mailto:sage [2008/06/05(木) 21:42:29 ] >>663 おk。 本当にありがとねノシ
665 名前:デフォルトの名無しさん [2008/06/05(木) 21:45:24 ] ヘボいなーおまえら プログラミング向いてないよ
666 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:52:16 ] トーラスってなんじゃろうと思ってみてた。 ドラクエの地図の海と陸地の数およびサイズを知りたいって書いてくれればよかったのに。。
667 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:58:42 ] [1]プログラミング [2]問題文 多次元配列を利用して、5人の3教科(国語・数学・英語)の@最高点A平均点それぞれのソースを作れ。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明日まで よろしくお願いいたします。
668 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:10:48 ] >>664 マルチの片割れにも終わったことを知らせんかい
669 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:12:13 ] なんで偉そうなの?
670 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:20:55 ] >>660 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6799.txt
671 名前:デフォルトの名無しさん [2008/06/05(木) 22:48:13 ] >>670 ありがとうございます、助かりました。 こんなに早く応えがくるなんて、良い意味で驚きました
672 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:51:04 ] >>664 ,669 礼儀も知らんのかボケ
673 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:55:17 ] >>671 タイミングさえ合えばちゃんとした回答者がいるスレだよ
674 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:00:16 ] >>672 なんで回答者でもないあなたが偉そうなの?
675 名前:654 mailto:sage [2008/06/05(木) 23:00:26 ] ちょw 669は自分じゃない。
676 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:01:30 ] >>674 っつか、マジで態度が悪いぞ、お前。社会じゃそれじゃやっていけねーよ 失せろクズガキ
677 名前:デフォルトの名無しさん [2008/06/05(木) 23:01:57 ] >>534 をお願いしますm(_ _)m
678 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:04:23 ] >>535
679 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:05:35 ] >>674 会社の同僚と何かあった時に上司から何か言われても 「同僚との問題なのになんであなたがそんな事言うの?」 とか言うんか? 消えろ
680 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:07:03 ] >>674 っつか、偉いとかって話じゃないだろ。完全にお前が態度が悪い ただそれだけ。何で自分が指摘されたのか、分からないのか? だとしたら相当痛いぞ、お前。反論する前に自分が起こしている行動 発言を自覚しろ。干されんぞ。人間社会はお前一人の都合や 思う通りには動いてないからw
681 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:09:21 ] >>667 お願いしますm(__)m
682 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:11:22 ] なんか>>674 の人気に嫉妬しつつ、本当に>>672 は回答者ではないのだろうか?
683 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:11:27 ] #include <sys/param.h> #include <stdio.h> int z(int y, int m, int d) { int a = y / 100, b = y % 100; return ((int) (m * 2.6 - 0.2) + d + b + (int) b / 4 + (int) a / 4 + 5 * a) % 7; } int zeller(int y, int m, int d) { return m < 3 ? z(y - 1, m + 10, d) : z(y, m - 2, d); } int main(int argc, char *argv[]) { int year, month, nf13 = 0; for (year = 2001; year <= 2100; year++) { for (month = 1; month <= 12; month++) { if (zeller(year, month, 13) == 5) { nf13++; } } } printf("%d\n", nf13); return 0; }
684 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:12:26 ] >>681 はやる気持ちは分からんでもないけど、もうちょっとまとう。 ギリギリまで宿題やらなかったのもちょっと悪いとおもうお
685 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:01 ] >>667 問題ってほんとにこれだけ? 制限とかかいとかないと 「それなんですか?分からないのでもっと簡単なものを。。。」 というハメになっちゃうかもだよー
686 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:18 ] #include <stdio.h> int main(void) { int i, j, data[3][5] ={0}, max[3]; double ave[3]; char *kamoku[3] = {"国語","数学","英語"}; for(i=0; i<3; i++) { ave[i] = max[i] = data[i][0]; for(j=1; j<5; j++) { ave[i] += data[i][j]; if(max[i] < data[i][j]) max[i] = data[i][j]; } ave[i] /= 5; } for(i=0; i<3; i++) printf("%s 最高点:%d 平均点%.2f\n", kamoku[i], max[i], ave[i]); return 0; }
687 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:25 ] 多次元配列を利用 int point[5][3]={{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
688 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:16:32 ] わざわざ多次元って言ってるんだから、二次元程度じゃ許されない。
689 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:17:45 ] >>682 人気じゃなくて一人がファビョってるだけにしか見えねーよw
690 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:18:10 ] 多次元っていったってどう考えても2次元で十分だろ。
691 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:18:48 ] >>688 口だけじゃなくてソースplz
692 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:19:48 ] せいぜい平均と最高点をまとめて もひとつ2次元配列にするくらいかな
693 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:25:58 ] 679はこのスレの上司だそうですw
694 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:48 ] こんなところで宿題丸投げする学生?相手に語ってるほうもどうかとw
695 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:50 ] >>689 = >>691 = >>674 必死だなぁ・・・IDが無いからって、他人のふりしようとか 白々しいぞお前。やたらと口出しする一言居士って、友達のいない構ってちゃんだろ?
696 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:56 ] IDが出ないと一人芝居が楽でいいよな
697 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:27:57 ] >>693 = >>689 = >>691 = >>674 しつけぇ・・・お前、このスレに何の用があって来てんだ? 無駄口叩く奴って、口先だけで役に立たない上に 自分が否定されるとファビョるからうぜぇ。
698 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:28:17 ] なんだこれ
699 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:30:05 ] ケフィア、、でしょうか?
700 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:31:23 ] なんで691まで一緒にされてるのかわからんw
701 名前:デフォルトの名無しさん [2008/06/05(木) 23:33:12 ] 二つの整数値を読み込んで、 小さい方の数以上で大きい方の数以下の整数を全て加えた値を 表示するプログラム。 コンパイラ gcc OS Windows 言語 C お願いします。
702 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:34:33 ] 何度か書いてるが、Windows + gccってのはほんとにそういう環境なのかなあ。
703 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:35:20 ] >二つの整数値を読み込んで、 標準入力でOK?
704 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:36:07 ] >>702 Cygwin + gcc かもね
705 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:36:54 ] a < b ((1+b) * b - (1 + a) * a ) / 2
706 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:37:44 ] >>626 わかりました。ありがとうございます。
707 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:37:54 ] >>701 #include <stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); printf("%d", a > b ? (a + b) * (a - b + 1) / 2 : (a + b) * (b - a + 1) / 2); return 0; }
708 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:39:12 ] >>703 標準かどうかはよくわかりませんが、scanfで読み取る形です。
709 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:42:00 ] >>707 すいません!書き忘れました。 Do文を使って最後にWhile文を追加する形でした。
710 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:44:04 ] >>704 cygwin + gcc だとして、実行環境はWindows?cygwin?というのも あるし、Xかもしれない。 といったところで実行環境に依存するような宿題については そのような曖昧な環境記述は無かったような気もするし、、、 気にしないほうがいいのかなあ?
711 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:04 ] なんだそりゃw #include <stdio.h> int main(void) { int a, b, sum = 0; scanf("%d%d", &a, &b); if(a < b) do { sum += a++; } while(a<=b); else do { sum += b++; } while(b<=a); printf("%d", sum); return 0; }
712 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:10 ] >>1 より。 > ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 きをつけてね
713 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:33 ] >>707 初心者向けにしましょうw
714 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:38 ] >>701 #include<stdio.h> #include<stdlib.h> int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\n", (a+b)*(abs(a-b)+1)/2 ); return 0; }
715 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:49:32 ] >>713 初心者の定義は何?自分が理解できる=初心者向け? 理解できない=初心者じゃない?とか?
716 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:51:02 ] パッと見であっさり理解できるか ちょっと見てみてあぁなるほどと思えるか の差じゃない?
717 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:51:48 ] >>711 ++はどういう意味なんでしょうか?
718 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:52:21 ] >>715 いちいち絡むなよw
719 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:54:13 ] >>717 a++ は a = a + 1
720 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:55:29 ] >>717 a++ = a = a + 1
721 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:58:06 ] その=の使い方には問題があるぞ
722 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:58:49 ] ではsum+=とは何なのでしょうか? 初心者ですいません
723 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:32 ] sum += a は sum = sum + a
724 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:50 ] sum = sum + 1
725 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:01:27 ] つまり sum += a++; は sum = sum + a; a = a + 1;
726 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:05:30 ] >>725 cのとっつき難さはそこなんだろうな。
727 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:06:39 ] A += B A -= B A *= B A /= B A = A 演算子(+-*/) B
728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:06:45 ] レスをくれた方々ありがとうございます。 色々勉強になりました。 ちょっと複雑に考えすぎていたようです。
729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:09:36 ] プログラムは単純に考えよう。 プログラムを書くこときも、トリッキーなことをせずに簡単に書こう。 って、先輩にならったな。
730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:10:02 ] >>725 逆も上げとくわ sum += ++a;は a = a + 1; sum = sum + a;
731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:11:29 ] >>729 sum += a++ が一番簡単で単純だろ?
732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:12:13 ] 直感的ではないよ
733 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:15:09 ] >>731 そうだな。 こっちのPart28終わりからPart29の頭にかけてa++関連の未定義問題で論争があったくらいだ。 C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/
734 名前:733 mailto:sage [2008/06/06(金) 00:15:52 ] >>733 は>>731 への同意ではなく>>732 への同意だ。
735 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:17:36 ] インクリメントを禁止してるプロジェクトに関わった事があったな。。。。。 ちょっと新鮮だった。
736 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:21:07 ] 実際のところたとえば a = a + 1; sum = sum + a; を sum += ++a; としたところでコンパイル後のバイナリレベルでどのくらいクロックやメモリ を稼げるものなんだ? それと引き換えに新人が保守するかも知れないリスクとの天秤にかけた場合の コストも。
737 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:23:16 ] まだ学生だからわからんのだけど仕事でやってて、それに引っかかる人いるの?
738 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:24:10 ] 万人にわかるようにするんだよ。
739 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:25:54 ] そんなのもわからないやつにソース触らせんなよw
740 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:27:30 ] しるかよw そういう規約をつくってるんだからw あ、デクリメントも禁止されてたよ。
741 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:28:09 ] >>737 ソースって案外長生きなんだよ。 COBOLとかあれだけクラサバ登場で無くなるといわれたのに 今だに残ってる。 webの発達でc出来る人口が減ってるのに、新人にわざわざ 今の程度の説明で時間取られたくないだろ?