1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net] C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 144 https://mevius.5ch.net/test/read.cgi/tech/1514025223/ 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
930 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:00:02.24 ID:eEDtLY6e0.net] char line[256]; scanf("%255s", line); scanfを使えないアホが scanfをdisるのを見る度に 嘲笑するのも勿体ない気分になる
931 名前:デフォルトの名無しさん [2018/04/20(金) 18:02:13.70 ID:rQE2Qud50.net] これでもし入力条件が不明の長さで受け取らなきゃ行けなかったらどうすればいい?
932 名前: mailto:sage [2018/04/20(金) 18:08:34.85 ID:RP9oZBhW0.net] >>898 それ 256 という定数を変えるとき、いちいちレテラルの中を手書きで直すんですか? いけてないですね…
933 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:10:03.88 ID:wjKqEKEv0.net] *ぐらい使えよ
934 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:10:57.05 ID:PF4NyNv9d.net] std::getline 一文字ずつ読み込む
935 名前:デフォルトの名無しさん [2018/04/20(金) 18:40:42.36 ID:dyY1ZlsFa.net] gccならgetline()
936 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:44:42.17 ID:PF4NyNv9d.net] 入力バッファにちょっとゴミが混じるだけでscanfは使えなくなる。 そんな役立たずは、業務では使うべきではない。使うなら、fgetsとsscanfの方がいい。 我が国のコンピューター教育は残念ながら、業務では役に立たない言語を教えている。
937 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 19:13:13.94 ID:2JMfU3z40.net] むしろ余程プアな環境でない限り、業務でC言語は使うべきではない
938 名前: mailto:sage [2018/04/20(金) 19:54:49.61 ID:RP9oZBhW0.net] >>905 かわりに何を使えばいいですか?
939 名前:デフォルトの名無しさん [2018/04/20(金) 19:55:43.39 .net] >>906 Python
940 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:49:36.44 ID:9tWrHk9l0.net] 業務でこそC言語
941 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:55:22.00 ID:18ECoYTh0.net] COBOLかVB
942 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:04:02.42 ID:qDS4Ifrca.net] >>905 心配しなくても使われる所は限られてるよ。 OSそのものとかデバイスドライバとかな。 それも減りつつあるんじゃないかな。 まあしかし過去の資産がありすぎて捨てられないって感じか。 うまいこと互換性を保ちつつ次の段階へ行ければいいんだろうけどね。
943 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:08:14.53 ID:9tWrHk9l0.net] MCUはほとんどがC言語 たまにC++ たまにアセンブラ
944 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 22:17:00.80 ID:DDZisBasM.net] >>899 その受け取ったデータをどう使うかによる
945 名前:デフォルトの名無しさん [2018/04/21(土) 00:13:25.41 ID:Oxipuy330.net] >>901 scanf() の * は・・・
946 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:47:37.05 ID:Ynju1Yzg.net] hallo warld
947 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:55:01.78 ID:nJ9/ilUK0.net] >>914 ばかに見えるから止めた方がいいと思うよ
948 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:07:34.81 ID:pETeS31u0.net] こちらでどうぞ https://mevius.5ch.net/test/read.cgi/tech/1427572389/
949 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:24:19.45 ID:pETeS31u0.net] >>904 898の例でゴミが問題になるのか?
950 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:05:42.05 ID:WYiI1Hbl0.net] 入力された文字列(例えば10文字程度)を、 数字だけ*に変えるプログラムを作りたいと思ってるんですが、 どうもうまく行きません どなたか簡単なコード書いてくれませんか
951 名前:デフォルトの名無しさん [2018/04/21(土) 15:31:16.54 .net] >>918 数字は半角の「*」でいいの? それとも全角の「*」? それによって処理の複雑さが変わる
952 名前:デフォルトの名無しさん [2018/04/21(土) 15:32:52.02 .net] ああ、あと入力された文字列にはマルチバイト文字が含まれるのか、1バイト文字なのかも明確にしとかないとな
953 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:17.96 ID:VeVDn114a.net] >>918 お前さんが書いたコードをあげれば誰か添削くらいはしてくれるかもよ
954 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:18.46 ID:WYiI1Hbl0.net] >>919 すいません、半角でお願いします
955 名前:デフォルトの名無しさん [2018/04/21(土) 15:45:37.64 .net] 入力部分には>>897 を使わせてもらった #include <stdio.h> #include <string.h> void mask_num(char *s) { char *c; for (c = &s[0]; *c != '¥0'; c++) { if (*c > '0' && *c < '9') *c = '*'; } } int main() { char line[64]; fgets(line, sizeof(line), stdin); strtok(line, "¥n"); mask_num(line); printf("%s¥n", line); return 0; }
956 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:47:16.12 ID:FmyBtpFH0.net] プログラムのコードの話してるのに全角は無いわ。 データの話ならむしろ文字コードとかまで考えなきゃならんがな。
957 名前:デフォルトの名無しさん [2018/04/21(土) 15:49:15.15 .net] >>923 >if (*c > '0' && *c < '9') *c = '*'; if (*c >= '0' && *c <= '9') *c = '*'; だった
958 名前:デフォルトの名無しさん [2018/04/21(土) 15:51:21.42 .net] >>918 を見て「*」を「*」に勝手に読みかえるようじゃ 受け入れ試験時で不具合が見つかって大幅手戻りが発生するぞ
959 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:07:01.70 ID:a/Xqi2VF0.net] void mask_num(char *s) { while (*s) { if (isdigit(*s)) *s = '*'; s++; } }
960 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:17:22.90 ID:Oxipuy330.net] 入力して変換して出力するだけでいいならこうかな。 #include <stdio.h> #include <ctype.h> int main() { int c; while ((c = getchar()) != EOF) if (isdigit(c)) putchar('*'); else putchar(c); return 0; }
961 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 17:23:05.22 ID:2bKzbSLP0.net] >>926 しかしながら「数字を*に変えるプログラム組んどきましたよ」と言って 本当にASCIIの '*' でなくマルチバイトの "*" に変える処理だったら 発注側から「普通全角はないだろ、お前さん常識ないのか?」と 発言者にとって都合の良い「普通」「常識」の波状攻撃を受けるハメに。 その意味で >>919 と >>920 の態度は正しい。 世の中には自分のミスを認めたくない人もいるけどな。
962 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:01:42.48 ID:bgp2zzOH0.net] 今回の発注者は>>918 だから注意喚起として * じゃないの? って確認するのは正しいけど全角半角言うならむしろ数字と言うのが半角だけでいいのかを確認した方がいいかと 下手すると 壱萬弐仟参佰四拾伍 が変換されてないじゃないかとか言われるかも知れんし
963 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:05:08.78 ID:uE8GRdCpd.net] >>924 プログラムのコードの話なんてどこに書いてある?
964 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 03:46:05.48 ID:jlGSrB9uM.net] >>930 Unicode正規化も確認しないとな
965 名前:918 mailto:sage [2018/04/22(日) 06:45:30.49 ID:5hVlVxZz0.net] すいません遅れました 添削おねがいします #include <stdio.h> void num_star(char *p) { while (*p) if(*p >= '0' && *p <= '9') *p++ = '*'; } int main(void) { char ch[10]; printf("文字列を入力せよ\n"); scanf("&s",
966 名前:ch); num_star(ch); printf("%s\n", ch); return 0; } [] [ここ壊れてます]
967 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 06:59:36.50 ID:cFbiqY2T0.net] >>933 scanfに"&s"は間違い"%9s"だ if(*p >= '0' && *p <= '9')は標準関数でif(isdigit(*p))とできるのに勿体ない p++はifの条件が偽のときに実行されなくなっている
968 名前:デフォルトの名無しさん [2018/04/22(日) 13:47:43.90 ID:J/MYnpG10.net] 数字以外の文字だけ入力されたら無限ループになって終わらないね。
969 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 13:59:28.07 ID:1MVwzpIAd.net] >>934 関数コールは遅いしサイズも増える 標準ライブラリを全てリンクしてるかわからない わざわざC言語を使う場面ていうのは そういうことも多少は心配した方が良いこともある
970 名前: mailto:sage [2018/04/22(日) 14:04:21.13 ID:bjDlbJPk0.net] >>936 >標準ライブラリを全てリンクしてるかわからない 必要なものをリンクすればいいし、必要なものをリンクするように出来ているのでは?
971 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:13:43.70 ID:1MVwzpIAd.net] リンクしない選択をすることもあるのだよ 色々な理由で 特にわざわざC言語を使うような環境では
972 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:18:09.76 ID:1MVwzpIAd.net] なにが「勿体ない」だか
973 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:38:15.31 ID:cFbiqY2T0.net] >>936 > 標準ライブラリを全てリンクしてるかわからない リンク? インプリメントの間違いだろ 何をリンクして何をリンクしないのかは 組み込みでは厳密に指定し結果も確認する isdigitにはマクロバージョンもある おそらくお前さんはそんなん知らんと言うだろうな 総じて、現物のコンパイラを細かくいじるということをせずに 上っ面だけ使って満足している手合いか
974 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:40:37.67 ID:RLohAeVua.net] strip
975 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:46:38.59 ID:RDdUHzj0a.net] >>936 そういう話は最低限の基本ができてから教えれば十分なことで、始めたばかりの初心者にあれこれ言ってかえって混乱させるのは良くないかと。
976 名前:デフォルトの名無しさん [2018/04/22(日) 15:27:22.65 .net] >>940 isdigitの指す文字が’0’〜’9’だけとも限らないからな(事実上は問題にならないとしても)
977 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 15:45:55.57 ID:RLohAeVua.net] digitの定義はlocaleに依存するので制御可能。 基本的にはisdigitが妥当だろうね。 自前でテーブル定義してもよい。大小で判断するのは危険だね。
978 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 16:35:36.81 ID:H/AU6k7y0.net] >>944 > 大小で判断するのは危険だね。 危険だと思う理由は? '0'〜'9' が連続してることは規格で保証されてる
979 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:32:41.34 ID:cFbiqY2T0.net] >>945 その規格とやらの文書番号は? つまり何の規格かと
980 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:59:29.92 ID:rTRuhMGrM.net] >>946 X 3010:2003 (ISO/IEC 9899:1999) 5.2.1文字集合 ソース基本文字集合及び実行基本文字集合の双方において,10 進数字に関する上の並びにおいて,0 の右側に並んでいる各文字の値は,一つ左側にある文字の値に比べ 1 だけ大きくなければならない。
981 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:31:37.06 ID:cFbiqY2T0.net] >>947 あれ本当だ ということはCの翻訳環境でも実行環境でも 採用を禁じられる文字集合規格がありうるってことか なんか出過ぎた決めごとだな
982 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:58:05.22 ID:H/AU6k7y0.net] >>948 > 採用を禁じられる文字集合規格 そんなもの見たことない
983 名前: mailto:sage [2018/04/22(日) 19:16:00.91 ID:bjDlbJPk0.net] >>949 「0 の右側に並んでいる各文字の値は,一つ左側にある文字の値に比べ 1 だけ大きく」なっていない文字集合は思いつけませんね… ftp%3A//ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00037.pdf
984 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:35:50.81 ID:cFbiqY2T0.net] >>949 いや俺も見たことないけどさ それはASCII系が絶対的とでも言うほどの多数派で 遙かに遅れたEBCDICもそうなっているからだろ 科学的にそう規定すべき合理性あるか?
985 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:36:32.85 ID:YjWQK7FP0.net] [[['[] ]]] { {] ]][ '[][][] [][] [][][] [] '[] []
986 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:06:54.82 ID:H/AU6k7y0.net] >>951 自分の回りにないならあるものを前提にするのはあたりまえ そもそも連続してないことにメリットがあるとは思えないし
987 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:06:57.91 ID:TH0cxcHD0.net] >>951 BCD計算が出来なくなるからCOBOLが動かなくなるわな CPUの時点で排除しているのは6502系ぐらいじゃね?
988 名前:デフォルトの名無しさん [2018/04/22(日) 20:20:55.56 ID:d95yXvpO0.net] 再帰関数を使って次の問題の会を出すプログラム書いたんですけど、なんかミスばっかでダメなので、だれかどういうプログラム書けばいいのか教えてもらえませんか? 九つの椅子が ○○○ ○○○ ○○○ のように並んでおり、はじめに数字の書いた札を持った何人かが座っているとする 例 ○○5 ○9○ 12○ さらに他にも何人か数字の書いた札を持った人がいて、その人たちが空いてる席に順番に座って行くとする 全員座った後、それぞれの点数を数えるとする、ただし点数は前後左右の人が持ってる札の数字を足し算する 例 ○○5 ○9○ 12○ で 3さん→4さん→7さん とすわり ○75 493 12○ となった、9の点数は7+4+3+2 この時、それぞれが自分の点数を常に最大になるように座ったら最終的にはどういう配置になるでしょう?ただし ・それぞれは座る順番を知っている ・その次に座る人達がどこに座るかまで考慮に入れて考える ・自分以外の点数は気にしない ・誰もいないところは0 ・次の人が何箇所か座る候補があり絞れない時は常に予想図の最小値をとって考えるとする、つまり極端にリスクを恐れる
989 名前:デフォルトの名無しさん [2018/04/22(日) 20:22:39.58 ID:d95yXvpO0.net] 質問てここでいいですか?
990 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:32:24.58 ID:H/AU6k7y0.net] >>954 この2行にアホが詰まってる 会話の内容も実際の動作も用語もわかってないっていう
991 名前:デフォルトの名無しさん [2018/04/22(日) 20:58:30.62 ID:kdP+cJ/x0.net] >>955 面白そうなテーマだから、お題スレに投げてみるのがいいのではないかと誘導 プログラミングのお題スレ Part10 mevius.2ch.net/test/read.cgi/tech/1514772904/
992 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:11:08.54 ID:1MVwzpIAd.net] >>942 いやだから、 >>934 の真ん中がいらないっていう話
993 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:17:34.90 ID:1MVwzpIAd.net] >>940 どこからつっこんでいいのやら
994 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:18:50.30 ID:1MVwzpIAd.net] >>957 どこかで見たセリフ
995 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:19:12.17 ID:T8nVVEKh0.net] 形式 #include <ctype.h> int isalnum(int c); int isalpha(int c); int iscntrl(int c); int isdigit(int c); int isgraph(int c); int islower(int c); int isprint(int c); int ispunct(int c); int isspace(int c); int isupper(int c); int isxdigit(int c); 機能説明 上記にリストされている関数はすべて ctype.h 内で宣言されており、指定されている整数値をテストします。 c で適切な整数値は、unsigned char または EOF として表現可能なものです。 デフォルトで、これらの関数は ctype.h がインクルード されている場合はマクロとして定義されます。 パフォーマンスを良くするために、関数形式よりマクロ形式を使うのが適切です。
996 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:26:12.24 ID:20oer2uOa.net] >>962 そういえばそれって locale 考慮すると言っときながら unsigned char でしか 判定してくれないというなんとも言えない仕様だよな。マルチバイトの判定が できない。まあそんな拡張したら面倒な感じはするのでそのままでもいいが。
997 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:28:15.82 ID:cFbiqY2T0.net] ですます調ということは、JISソースではないな
998 名前:デフォルトの名無しさん [2018/04/22(日) 21:29:41.48 .net] >>963 つ iswdigit
999 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:31:58.01 ID:cFbiqY2T0.net] C99以後はinlineがあるんだがID:1MVwzpIAdはC89前提?それともK&Rかね
1000 名前:デフォルトの名無しさん [2018/04/22(日) 21:33:04.20 ID:1srXW/Rwd.net] >>958 ありがとうございます、そっち行きます
1001 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:33:34.88 ID:1MVwzpIAd.net] 前提など不要
1002 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:34:00.82 ID:cFbiqY2T0.net] >>953 数字が連続していないことにメリットがあるとは思えない という思考回路では 英字が連続していないことにメリットがあるとは思えるのか? 具体的にどんな?
1003 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:34:42.49 ID:1MVwzpIAd.net] どんな環境かわからないんだからどんな環境でも動くコードが良い
1004 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:36:00.62 ID:cFbiqY2T0.net] レスが長文化してるやつは効いてる効いてるwだが 逆もまた真なり 情報量が非常に乏しいレスしかしなくなったやつw
1005 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:42:55.38 ID:1MVwzpIAd.net] ねえねえ なにが「勿体ない」の?
1006 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:18:10.29 ID:H/AU6k7y0.net] >>969 > 英字が連続していないことにメリットがあるとは思えるのか? おそらくEBCDICのことを言ってるんだろうけどあれはパンチカードフォーマットから変換しやすくするような体系になってるだけの話
1007 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:19:34.67 ID:TH0cxcHD0.net] >>961 何ら有益な情報を書けない。只の荒らしでしょ。
1008 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:35:44.05 ID:OBDOSUSoa.net] 今更で悪いけど、文字はまず集合として扱うのが筋だからさ。 大小比較したいなら、一度数値に直せばいいじゃんと思うよ。これについては規格上の正しさという話ではなくて、抽象的な意味にこだわらないと保守性下がるというのが実感としてあるから言うとるのよ。
1009 名前: mailto:sage [2018/04/22(日) 22:36:07.06 ID:bjDlbJPk0.net] 「こういう仕様になっているのはこういう理由だからだ」という設問 あるいは「もしこういう仕様だったらこういう問題があっただろう」という反実仮想的設問には意味があると思っているから、そういう話で盛り上がる今はありがたいと思っています
1010 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:40:48.03 ID:T8nVVEKh0.net] >>964 https://www.ibm.com/support/knowledgecenter/ja/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxbd00/isalnum.htm
1011 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:43:35.78 ID:bBx4tH0Hd.net] >>974 元はおれの文 1行でアホが詰まってると、本気で感心した時に書いた
1012 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:07:06.08 ID:TH0cxcHD0.net] >>978 最近のBOTは優秀になったのね。CNTKか何かか?
1013 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:08:02.95 ID:H/AU6k7y0.net] >>974 関係ないことを堂々と書く奴に言われてもな w
1014 名前:デフォルトの名無しさん [2018/04/22(日) 23:55:50.76 ID:J/MYnpG10.net] 数字なのに1足されてないというと、Unicodeでの漢数字かな。
1015 名前:デフォルトの名無しさん [2018/04/27(金) 11:38:54.60 ID:OGjTaEqd0.net] うむ
1016 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 21:59:14.79 ID:4vnB69wL0.net] [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
1017 名前:デフォルトの名無しさん [2018/04/29(日) 17:07:26.07 ID:X9PCZykj0.net] O(n)のin-placeなセレクティングネットワーク O(n)のin-placeなマージアルゴリズム O(n)のin-placeなマージングネットワーク O(n log n)の(実用的な)ソーティングネットワーク は存在しますか? ここらへんがあると並列ソートがかなり捗るんだけど。
1018 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 20:34:40.36 ID:My7UiDyw0.net] [[[ []]]]*[[ [][] ][] } } {} [[[
1019 名前:デフォルトの名無しさん [2018/04/29(日) 20:42:41.53 ID:0iHuAZG8M.net] こんにちは c言語で質問です 写真の通りのプログラミングを書きたいのですができません *などで四角形は作れるのでそれを応用するのだと思うのですが、2段目以降を違うのにするやり方がわかりません どなたかお願いします。 https://i.imgur.com/09EKR0n.jpg
1020 名前:片山博文MZ mailto:sage [2018/04/29(日) 20:45:11.87 ID:PLWQQmF3d.net] >>986 数学で数列は習ったかい? 一般式で表してそれを二重のforループにするだけだ。
1021 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 21:16:42.92 ID:gpEFuXsMa.net] 二重ループよりも二個関数作った方が将来のためになるかもな
1022 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:14:07.36 ID:PLWQQmF3d.net] 数列を極めるには、差分法が役に立つが、今ではかなりマイ
1023 名前:iーな数学分野になっている。 [] [ここ壊れてます]
1024 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:20:26.21 ID:PLWQQmF3d.net] 差分法は、微分法の兄弟みたいなもので、差分法の極限をとると微分法になる。
1025 名前: mailto:sage [2018/04/29(日) 22:21:28.34 ID:20g7tnTI0.net] >>989 漸化式がマイナーだって?
1026 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:27:28.61 ID:PLWQQmF3d.net] 差分法は、研究分野としてはマイナー。差分方程式は地球上ではもうだれも研究していないのではないか。
1027 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 01:05:41.13 ID:Knbm+hrA0.net] https://ja.wikipedia.org/wiki/%E5%B7%AE%E5%88%86%E6%B3%95
1028 名前:デフォルトの名無しさん [2018/04/30(月) 01:30:28.58 .net] 別に小難しい数学の知識とかいらなくね? a = 6, b = 4だとして、 ary = malloc(sizeof(int) * a * b); for (i = 0; i < a; i++) { for (j = 0; j < b; j++) { v1 = (i == 0 || j == 0) ? 0 : ary[i - 1][j - 1]; v2 = (i == 0) ? 0 : ary[i - 1][j]; v3 = (j == 0) ? 0 : ary[i][j - 1]; ary[i][j] = v1 + v2 + v3; } }
1029 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 01:58:30.12 ID:njDF1dun0.net] いやいや、教科書的にはこうでしょ for (i = 1; i <= b; i++) { for (j = 1; j <= a; j++) { v = j; for (k = 1; k < i; k++) { v = v * j; } printf("%d, ", v); } puts(""); }
1030 名前:デフォルトの名無しさん [2018/04/30(月) 02:09:48.77 .net] >>994 はなんか勘違いしてたw b<=2までしか合わんかったわw
1031 名前:デフォルトの名無しさん [2018/04/30(月) 02:31:14.12 ID:XX4FB8lc0.net] >>986 2番目の値だけ抜き出すと 2, 4, 8, 16 となっているので、一つ前の値を2倍にしている。 3番目の値だけ抜き出すと 3, 9, 27, 81 なのでひとつ前の値を3倍にしている。 4, 5, 6 番目も同様。 ということは、a の入力の個数だけ要素を入れられる配列を作っておいて、その各要素に 1 〜 a の値を一つづつ入れておいて、その後 b の回数だけループしながら出力して 掛け算してを繰り返せばいい。プログラムにするとこうなる。 https://paiza.io/projects/EIvP4vpEHRgWnXFlka5Vjg
1032 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 02:48:27.09 ID:XX4FB8lc0.net] 配列でひとつ前の値を保持したくない場合はpow()使って計算するという方法もある。 https://paiza.io/projects/_L8doEZwIG6g0imlZM_Fug pow()使いたくない場合はループして掛け算を自分でやる。
1033 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 02:58:01.24 ID:Xjg4h3Qz0.net] 別に小難しい数学の知識はいらんけど>>994 が頭悪いのを晒したのはイタかったな 普通なら恥ずかし過ぎてもうこのスレ覗くこと出来ないレベル
1034 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 03:04:53.67 ID:Knbm+hrA0.net] 別に小難しい数学の知識はいらんし質問の趣旨からも逸れるが>>992 が頭悪いのを晒したかった
1035 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 69日 4時間 50分 55秒
1036 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています