[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/26 14:12 / Filesize : 314 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 148



1 名前:デフォルトの名無しさん [2018/09/19(水) 17:56:50.83 ID:XSTNMnDwa.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言語なら俺に聞け 147
mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

910 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 17:56:49.79 ID:zmVgc+jlM.net]
>>880
大量⇒高速に処理が必要だから、その条件は大体セットだろ
それにプログラムが異常終了してもログが欠落しないとかの条件がつくと難易度が更に上がる

911 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 18:37:09.60 ID:R/0gSUq30.net]
うーん。素人考えなんだけどfprintf()関数を呼び出したり,その中で__FILE__マクロ変数を展開したりするのって
そんなにコスト掛かる動作じゃないよね。
いくら大量の処理とは言え,ログを出力しただけで影響がでるような厳しい環境ってそうなくない

912 名前:
そしてそもそもそんな環境でログ処理ではないメインの処理って動くの?
[]
[ここ壊れてます]

913 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 18:46:33.19 ID:s6Ph9fEn0.net]
>>886
マルチプロセスやマルチスレッドだったりすれば排他も必要だし、fprintf 使っただけだとプロセスの突然死なんかではバッファがフラッシュされず失われ、一番欲しい落ちる寸前の情報が欠けかねない。
小まめにフラッシュしたらそれはそれで性能の問題が出る。
奥が深いと思うよ。

914 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 23:51:29.92 ID:GsCjxORea.net]
>>872
ああ、過剰な例だったか

>>873
あの例は抽象化ではないけどな
まあ例だから深くは言うまい

915 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 00:21:48.90 ID:7237jhqNa.net]
>>886
どの程度の性能を求めてるか次第だと思うよ
時刻取得でも clock_gettime と gettimeofday でうるさく言う人もいるしね

トレースログみたいに高速かつ大容量を考えるなら
ログがN件入るバッファを複数持っておいて
情報は基本バイナリで登録、ローテート時にファイル書き出し、
別途パーサーを作る、とかかな

まあそこまでする必要のあるソフトなんて稀だろうけど

916 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 09:13:38.45 ID:hAbqlzFH0.net]
ポインタをややこしくしてるのは
int* a;
の a がポインタ変数で
a[10]
という配列がある時、a と書くだけで配列の先頭アドレスの別の書き方として許されてるがいけないんじゃないのかな?って思ったんだけど合ってる?
配列の先頭アドレスは常に&a[0]って書くようにするようにすればポインタのごちゃごちゃって解消されない?

917 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 09:51:00.93 ID:2eu7c7Ria.net]
Cだったら配列なんてものがあると思わん方がいいかもね
入門書的にはポインタより配列の紹介が先に書いてあったりするが、確かに問題はある。

918 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 10:26:55.40 ID:8auh1e/NM.net]
>>890
あと、p[i] も禁止して、*(p+i) を強制しないとだめ。



919 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 10:54:29.59 ID:cduwye+60.net]
>>890
そのへんはシンタックスシュガーというよりは
たまたま結果的に同じものを指している 程度だし
原理原則を省かず丁寧に覚えていくしかないのでは

920 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 11:21:53.96 ID:E0U+wNaz0.net]
違う
違うナァ

機械語→BASICのころには
「変数って何だ?!!」として変数なる概念をなかなか理解できなかったやつがいた……
と言う話を聞いてる

今の初心者の一部もなじめないヤツが一定数いる

言ってしまえばC言語は「変数指向」のプログラミング言語だ
オブジェクト指向や関数型に並び立つような、な
気付いてないが現代プログラミング言語は「変数指向」で出来てる
そしてどんな思想であろうとどんだけ説明してもその概念の片鱗すら理解出来ないヤツはいる

なので「変数」概念の理解に原理原則なんて存在しない
一発で理解出来るか素直に受け入れるかのどちらかしかない
それ以上説明しても意味が無い、という人物は少数だがいる
これはしょうがない

921 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:12:26.16 ID:k/2ANTBE0.net]
なんかの本に
int *a;
と宣言してあったら、式の中で
*a
と書かれたものが整数であると的確に説明してあった。

922 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 13:39:36.53 ID:T+aWo9i70.net]
>>895
それが分かりやすいかはちょっと微妙じゃね。
int i; ならその領

923 名前:謔ヘ確保されてるけど、int *a; と宣言した *a は型としては i と同じだけどそのままで i と同じように使えるわけじゃないし。
ポインタで迷うレベルに通じる話じゃなさそうだし、これが通じるならポインタで迷ってないんじゃね。
[]
[ここ壊れてます]

924 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 14:13:47.90 ID:ScQN6FWl0.net]
じゃんね?

925 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 14:14:23.54 ID:ScQN6FWl0.net]
あ んじゃね か。
馬鹿だった。

926 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 15:09:00.24 ID:WWw+Yxena.net]
>>894
マシン語でもレジスタが変数みたいなもんだろ

927 名前:デフォルトの名無しさん [2018/10/26(金) 17:09:00.87 ID:JLzES5S7d.net]
これを実行するときに、argcに3が入っているとsegmentation faultとなってしまうのですがなぜだかわかりますか?
OSはopensuseでコンパイラはccです

#include <stdio.h>
#include <string.h>

int main(int argc,char *argv[])
{
int cmp=0;
char *s1=argv[1],*s2=argv[2];
cmp=strcmp(s1,s2);
if(argc!=3){
fprintf(stderr,"usage:%s[string1][string2]\n",argv[0]);
return -1;
}
if(cmp<0){
printf("%d : %s\n",strlen(s2),argv[2]);
}
else{
printf("%d : %s\n",strlen(s1),argv[1]);
}

return 0;
}

928 名前:デフォルトの名無しさん [2018/10/26(金) 17:14:58.46 ID:8JGFizbaa.net]
>>900
argc調べる前にstrcmp()するのは変だろう。



929 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 17:17:49.51 ID:BF6Z7BaaK.net]
組み込みでsicpて読む価値あんの?

930 名前:デフォルトの名無しさん [2018/10/26(金) 17:21:54.90 ID:JLzES5S7d.net]
>>901
それを直したらsegmentation faultしなくなったんですけど、理由が知りたくて…

931 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 18:06:31.80 ID:XW9xoDKGa.net]
>>903
たとえばargv[2]が空だったらstrcmpの引数は何になるんだという

932 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 18:16:18.06 ID:T+aWo9i70.net]
>>904
argc が 3 なら argv[2] は何か入ってるだろ

933 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 18:20:05.25 ID:pYWWPyQzM.net]
どうでもいいけどargvが3じゃなきゃいけないのにそのusageはどうよ

934 名前:デフォルトの名無しさん [2018/10/26(金) 18:25:03.95 ID:HaLyiKNA0.net]
>>904
なるほどです
理解しました
>>906
これではよくないんですか?

935 名前:デフォルトの名無しさん [2018/10/26(金) 18:25:43.74 ID:8JGFizbaa.net]
>>903
引数がなかったり一つだったりした時に先に無条件にstrcmp()をしてしまうと両方または一方が不定値やNULLになるので落ちたり変な動きになったりする。

936 名前:デフォルトの名無しさん [2018/10/26(金) 18:28:06.65 ID:HaLyiKNA0.net]
>>908
詳しい説明ありがとうございます

937 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 19:03:31.73 ID:T+aWo9i70.net]
>>909
え、その問題はもう直してあって、>>900 は直す前のコードで argc が 3 だと落ちたけどなんで?って話なんだよね?

938 名前:デフォルトの名無しさん [2018/10/26(金) 19:42:46.18 ID:HaLyiKNA0.net]
>>910
すみません間違いました
3以外が入ってるときです



939 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 20:16:13.66 ID:XW9xoDKGa.net]
main(void)の場合もメモリ上のどこかにargvが入ってるだろうか?

940 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 20:46:48.73 ID:TAH5LWiNM.net]
>>907
[hoge]はhogeが省略可能って表現
あとスペースちゃんと入れろよ

941 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 21:08:53.88 ID:ScQN6FWl0.net]
みんな知ってるかもしれないが
[--foo]で--fooオプションが省略可能だということはかなり広範な決まりで,
POSIXに始まりGNUプロジェクトやPythonのインターフェース規格でも取り入れられてる。

942 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 22:48:54.99 ID:dAefMjKVa.net]
>>912
そりゃいるだろうよ、と思って確認してみた
ubuntuだと環境変数の近くにいるね
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *c = getenv("PATH");
while (--c != NULL)
if (!strcmp(c, "hoge")) {
printf("%s\n", c);
while (++c != NULL)
if (!strcmp(c, "foo")) {
printf("%s\n", c);
return 0;
}
return 0;
}
return 0;
}

$ ./a.out

943 名前: hoge foo
hoge
foo
[]
[ここ壊れてます]

944 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 22:54:36.13 ID:dAefMjKVa.net]
>>914
これだな
https://ja.wikipedia.org/wiki/Man%E3%83%9A%E3%83%BC%E3%82%B8
https://qiita.com/aosho235/items/0f2b73d08eb645c05208

俺が生まれる20年以上前からあるとか感慨深い

945 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 23:22:14.01 ID:ScQN6FWl0.net]
>>916
ちょっと違うぞ。
pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
こういうの。

946 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 23:22:24.86 ID:gi8K36IH0.net]
man読む習慣があれば自然と身につくのに

947 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 23:50:26.20 ID:vTWFo6xp0.net]
ナウなヤングはinfo使ってるから…

948 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 00:13:55.83 ID:BbyQQXdF0.net]
infoの使い方分からないマン



949 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 00:36:12.58 ID:QSCXw9iYa.net]
]で次のページに行く

950 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 00:49:36.02 ID:If2PGrjfa.net]
>>917
POSIXに始まりってのは歴史的な話じゃなくて規約的な話だったか
でもここまで規約が決まってたのは知らんかったわ

951 名前:デフォルトの名無しさん [2018/10/27(土) 01:29:30.14 ID:x+9raBkh0.net]
>>913
そういう意味があるんですね
ありがとうございます

952 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 13:15:19.86 ID:8fc2vBvs0.net]
>>894
違うぞ。

その世代(ベーマガ世代)で変数が理解出来なかったのは、数学的素養がなかったからだ。
数学で「変数」が導入されるのは「方程式」からで、それ以前の小学校の算数は全部「定数」で出来ているから、
その世代の『小学生』はそこに戸惑っただけ。
機械語/BASICとかは関係ない。

高一で物理を始めると、三角関数が出てきて戸惑うようなもの。
学校によっては高二から始めるらしいが、その場合は戸惑うことはないだろ。

或いはアフィン変換も同じ。
あれも数学で回転行列を習った後なら容易いが、
『小学生プログラマ』にやらせようと思ったら、まず座標を教えて、その後に…と色々必要だろ。

数学的素養がないと、プログラミングは理解出来ないんだよ。
小学校教育に取り入れた馬鹿共は、プログラミングが出来ないから、それが分からないだけ。

○○が分からない、と言う奴は大概、数学の素養がないか、そもそも全てを『暗記』で済ませてきたタイプだ。
(世の中大概それでどうとでもなるのも事実ではあるが、)それではどうあがいてもプログラミングは上達しない。
頭を切り換えて、全てを『理解』する癖を付けることだね。そしてまず数学を勉強すべきだ。
そうしないとただのコピペ(写経)マンになってしまう。
(はっきり言って昔のベーマガ世代も実際やっていたのは写経でしかないし)

色々理解したら、なるほどCは文法的にも構造的にも美しく出来ているし、
色々無駄がないからこそ、いまだに現役で使われ続けていることが理解出来るようになる。
ただし、分かりやすいわけではないので、俺は初心者はCから始めるべきではないと思うがな。

953 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 15:37:40.83 ID:BkFfYRiz0.net]
>>924
中学の授業では便宜上は今まで変数を習ったことの無い中学なりたてホヤホヤのガキに変数を教えるんだよな?
なのになんでそれで新中学一年生は変数を理解出来るんだ?
素養が無いのにも関わらず変数を授業で教えると理解できるんだぞ?
不思議じゃないか?

954 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 15:55:34.30 ID:IeSn2Jid0.net]
ベーマガのゲーム入力して
兄「ここの数字増やすと自機数が

955 名前:増えるんだよ」
自分「へぇ」

兄「ここの P=P-1を消すと死んでも自機数減らないんだよ」
自分「へぇ」

当時小学3年ごろ。
これで変数と言うのを理解したわ。
[]
[ここ壊れてます]

956 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 15:59:43.62 ID:YzjvNBrca.net]
どういう順番でも抽象的な理解はできると思うよ。本当に「理解」なのかわからんけど。
でも数学が先じゃないと時間の無駄という気はする。

957 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 16:01:45.78 ID:YzjvNBrca.net]
線形代数はプログラミングと同時にやってもいいと思うわ。紙の上の操作はちょっとつまらん

958 名前:デフォルトの名無しさん [2018/10/27(土) 17:08:17.28 ID:pWQGtgcn6.net]
線形代数とプログラミングってなんの関係があるん?
最近、プログラミング始めたからよくわからんのよな



959 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 17:14:52.39 ID:NY1AcmJf0.net]
>P=P-1

プログラム上と代数学上の記法の違い、最初面食らわなかったか?

960 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 17:36:20.97 ID:DmauAY/3M.net]
>>925
変数にしろ関数にしろ教え方がアホすぎて全然理解できてなかったわ
単に計算できるだけだった

後にプログラミングやるようになって何で学校の数学ではあんな馬鹿な教え方をされたんだろうかと思ったわ

961 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 17:38:52.04 ID:Ttfv0KRj0.net]
やねうらおとか小学生の時にはもう大学の数学をやっていたというが・・・冗談なのか本当なのかわからんがとんでもねぇプログラマなのは確かだからな・・・

962 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 17:43:25.28 ID:8fc2vBvs0.net]
>>925
だからお前は猿のままなんだな、納得した

963 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 17:53:34.74 ID:zu36BJom0.net]
代入に=を使ったFORTRANの罪は大きい

964 名前:デフォルトの名無しさん [2018/10/27(土) 17:59:56.52 ID:p3Z91K38a.net]
P=P-1みたいなのが解らない人は関数型言語に行けば良いんじゃ無いかな。
代数学に比較的近い。

965 名前:デフォルトの名無しさん [2018/10/27(土) 18:06:00.09 ID:p3Z91K38a.net]
>>932
プログラミングに必ずしも数学が得意で有る必要は無いとは言われてるけど、数学得意な人がプログラミング出来るようになる事が多い気はする。
どちらも例外はあるけれども。

少なくともプログラミング関係の専門書って大学数学前提が多い。
前提じゃ無いのはわざわざ高校数学で出来るとか書いてるし。

966 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 18:16:50.52 ID:C9jhaecu0.net]
推論型言語でP=P-1

967 名前:デフォルトの名無しさん [2018/10/27(土) 18:24:00.38 ID:HWNtkJs26.net]
1〜12月を入力し、入力した月の日数を表示する。
これを論理演算子で表示しろという。
else if( month == 3)
{ printf("3月は31日です\n")}
というのを作ったが不可。
論理演算子を使っていないからという。
論理演算子をどう使えばいいんですか。

968 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 18:28:29.79 ID:zu36BJom0.net]
>>938
month == 3 && printf("3月は31日です\n");
とか?w



969 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 18:31:23.89 ID:zu36BJom0.net]
; も || に置換可。

970 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 18:38:10.74 ID:8fc2vBvs0.net]
>>938
> ガックシ
先生に聞けよマジで

971 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 19:17:35.26 ID:5acUAORp0.net]
>>938
m を月としたら
d = (15657907 >> (m - 1) * 2) & 3 | 28;
とか?

972 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 19:24:28.76 ID:8fc2vBvs0.net]
>>942
それはビット演算子、そして+、あと普通は0x*****で書く

973 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 19:29:22.72 ID:5acUAORp0.net]
>>943
あぁ、そうか。
てことは単純に 30日になるもの 31になるものを || でまとめろって話か。

974 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 19:54:11.57 ID:8fc2vBvs0.net]
>>944
まあ普通はな。
ただそれ以前に、if文11個連ねて書くよりは…のはずだから、
普通は正しく動けばまずはよしで、それより断然いい書き方があるよね、となる。
いずれにしても先生に聞け、でしかないが。

975 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 20:31:12.68 ID:FFMC2/bw0.net]
第三回バーチャルYouTuber人気投票リベンジ募集中(全287名、2018年10月27日〜)

あなたの好きなVtuberは?(一人十票)
https://script.google.com/macros/s/AKfycbzW_Er5wP6kI0ZNcmcZVA4UdlXPiernQqL4xG1dVv146T8LwGKZ/exec

・前回(2018/8/22)は不正投票が行われた為、投票を途中で中止させていただきました。大変申し訳ありませんでした。
・Googleフォームは標準仕様では不正投票が可能な為、改造して対策を行いました。
・2018/10/27時点でチャンネル登録数10,000人以上のVtuberを対象としています。
・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。
・一人十票です。(全287名の中からお好きなVtuber10名を選んでください。)
・このフォームに投票するにはグーグルアカウントでログインする必要はありません。
・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。
・今回も1,000人の方が投票するまで継続します。

なお投票結果はスプレッドシートにリアルタイムで表示されるようにしました。
また【概要】と【詳細】でシートを分けております。
https://docs.google.com/spreadsheets/d/1qvhqRdbbOFGQ2veqrnQmaAXIA79xTAANKUKa3HEUUC0

▽過去の投票結果はこちら

第二回バーチャルYouTuber人気投票結果(2018年6月5日〜8月6日、全投票数1,000票)(スプレッドシート)
https://docs.google.com/spreadsheets/d/1HqVp41DzLXPSuarWKkqNFZRyL20-nkMF5O5kkeEmqnA

第一回バーチャルYouTuber人気投票結果(2018年5月7日〜5月30日、全投票数1,000票)(スプレッドシート)
https://docs.google.com/spreadsheets/d/1uaKoB3pJQHgC9VEkvg74v9OaSNW3Zvccr91mPN1lt5k


tyjty

976 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 22:39:08.44 ID:aNTv90Ss0.net]
>>945
…お前の中ではif文で書いて当然の処理なのか

977 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 22:39:25.58 ID:BkFfYRiz0.net]
>>933
中学生にちょっと教えるだけで変数を理解するのは
大抵の人間には「変数」を理解する資質が生まれながらに備わってるからさ
要するに生得論だよ

978 名前:デフォルトの名無しさん [2018/10/27(土) 23:26:48.51 ID:tUxhH/wza.net]
>>938
2月は何日で出すんだ?



979 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 23:30:49.74 ID:NY1AcmJf0.net]
論理演算子なんて要求がなければ、配列作ってテーブル参照にしてしまう

980 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 23:55:00.74 ID:8fc2vBvs0.net]
>>947
普通は948の通りだろ。
そこを論理演算子なのだから、論理演算子の練習だろ。
超初心者だってことだよ。

981 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 23:56:21.90 ID:8fc2vBvs0.net]
>>948
それだとお前が今現在も猿と同程度なのと矛盾するだろ

982 名前:デフォルトの名無しさん [2018/10/28(日) 00:11:48.31 ID:D9Gt7gmT0.net]
>>938
m を月の数として
printf("%d月は%d日です。\n", m, m == 2 ? 28 : (30 + ((m & 1) ^ (m >= 8 ? 1 : 0))));
なんてのはどうかな。年がわからないので2月は28日固定だが。

バグの温床になりそうなので普通はこんな複雑なの書かないが。

983 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 00:20:30.07 ID:oSIXYZ/dM.net]
書かないのはバグの温床だからじゃなくて
他人に意図が伝わらないオナニーに過ぎないからだぞ

984 名前:デフォルトの名無しさん [2018/10/28(日) 00:23:07.12 ID:D9Gt7gmT0.net]
>>954
あー。まあそういうことでもあるか。

985 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 00:55:30.03 ID:0+vzkOx80.net]
>>953
お前ら初心者にも分かる言い方を思いついた。

・コードからお題に戻せるコードを書け

なんだよ。
初心者は「お題○○を実現するコードは?」ばかりやってるから、「お題→コード」の変換ばかり考えるけど、
実際に重要なのは逆で、「コード→お題」の変換なんだよ。
今回の例で言うと、お題は

・月を与えて日数を得る関数

だが、これが重要なのではなくて、

・この関数は、月を与えたら日数が得られる

とコードからお題に『逆変換』出来ることが重要なのであって。 []
[ここ壊れてます]

987 名前:デフォルトの名無しさん [2018/10/28(日) 04:41:04.83 ID:vBzuIBdia.net]
それで行くとクイックソートとか最早ムリぽ。

コメント使わ無いのかな。。。
他にも命名規則とか、そう言うので推測し易くしてるもんでしょ。
理想だけじゃ何も書けなくなる。

988 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 05:50:13.54 ID:Lt7UAQQy0.net]
殺人的にくだらん



989 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 08:48:10.56 ID:0+vzkOx80.net]
>>957
コメント自体が既に次善策なんだよ。
可能であれば、コード見たら分かることを目指すべき。

クイックソートが意味不明なコードだとも思わないけど、
あの手の「末端の」関数は適切な名前を付ければそれで問題なくなる。
つまり、sort()なら、「ソートする」と分かり、使う分に支障はないだろ。
数学関数の sin() とかも、実際の中身なんて気にしてないだろ。これと同じ。
問題は、

int d0 = (15657907 >> (m - 1) * 2) & 3 | 28; // 940

int d1 = m == 2 ? 28 : (30 + ((m & 1) ^ (m >= 8 ? 1 : 0))); // 951

では、ぱっと見意味不明だろ。
だから最低限、「関数として切り出して適切な名前を付ける」か、「コメントを付ける」かが必要になる。
これが上記みたいにベタでコメント無しで書かれてたら、殺すぞテメー、になるって話さ。

990 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 11:51:08.52 ID:W0+pPBsw0.net]
>>959
こういうのどうすんの
https://ideone.com/FGqs1S

991 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 12:06:15.31 ID:/iW8vuMIa.net]
ポッカント

992 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 12:53:44.56 ID:0+vzkOx80.net]
>>960
それはいつぞやのコードだろ。
末端の関数だから、適切な名前を付けた関数にすれば問題ない。
俺なら count_1_bits か get_nof_1_bits とかにする。
勿論そのコードがベタでコメント無しで書かれてたらアウトだ。

あと、戻り値は int にしておけ。

993 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 12:57:22.68 ID:lZrPQQ03M.net]
>>962
どんなコメント付けるの?

994 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 13:29:34.14 ID:0+vzkOx80.net]
>>963
// count nof 1 bits

995 名前:デフォルトの名無しさん [2018/10/28(日) 13:45:43.40 ID:Bm6vOY0Hd.net]
>>956
かけるようになるのも大事だけど、それよりもまず読めるようになれってこと?

996 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 13:51:17.06 ID:0+vzkOx80.net]
>>965
1年後に読んでも分かるコードを書け、ということ。

997 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 14:44:33.68 ID:lBJoUXxI0.net]
963にそのアドバイスはまだ早い

998 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 15:00:37.51 ID:6j1kxIYb0.net]
// なぜこのコードが動いているのかわからない

// 以下、あるはずのないコード群でお送りします。

/* 俺のせいじゃない */

//ここに来ることは絶対にない



999 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 15:05:52.81 ID:2a8cvg/h0.net]
もうちょっと読み物風に書いて行けば最後まで呼んでくれるかも知れない
(つづく)なんて書くと、続編への熱いメッセージをもらえるかも

1000 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 15:39:42.29 ID:D9Gt7gmT0.net]
冒険活劇飲料サスケ


    つづく


1001 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 17:45:31.27 ID:fHxT9uJhM.net]
中学生向けみたいなお題に噛み付き過ぎで草

1002 名前:デフォルトの名無しさん [2018/10/28(日) 18:05:27.14 ID:vBzuIBdia.net]
逆にちょっと高度になるとみんなダンマリ。
最近久しぶりに来たけど、昔のCスレはこんなんじゃなかった。。。

1003 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 18:11:47.40 ID:Z7LZHjRuM.net]
じゃあまた10年後にいらっしゃるのをお待ちしてます

1004 名前:デフォルトの名無しさん [2018/10/28(日) 18:50:49.19 ID:vBzuIBdia.net]
もっと悪くなってるわw

正直、ここの住民がどの程度まで作れるのか分からん。
以前のお題は無視されたから、それ以下だとは思うが。。。
私もたいして書けるわけでもないのに。
(むしろ以前の方が書き込み難かった)

1005 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 18:51:32.36 ID:0+vzkOx80.net]
>>972
ここ数ヶ月、何故か超初心者が沸いてる。

1006 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 18:53:04.74 ID:2a8cvg/h0.net]
高度なお題をお願いします

1007 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 18:57:13.59 ID:2a8cvg/h0.net]
C言語相談室(上級者専用)
https://mevius.5ch.net/test/read.cgi/tech/1519998483/

C言語上級者スレ
https://mevius.5ch.net/test/read.cgi/tech/1519750371/

こういうスレもあるし、そちらを覗いてみたら?
私は見てないので、内容は保証出来ませんが

1008 名前:デフォルトの名無しさん [2018/10/28(日) 19:12:09.42 ID:vBzuIBdia.net]
>>977
そっちもチェックはしてる。(ほとんど更新されないが)
こっちでも入門書程度のコードは割と出てたと思うんだが、最近全然出ない。



1009 名前:デフォルトの名無しさん [2018/10/28(日) 19:13:01.60 ID:HCT7bRsva.net]
お題はお題スレで。

プログラミングのお題スレ Part12
https://mevius.5ch.net/test/read.cgi/tech/1538096947/

1010 名前:デフォルトの名無しさん [2018/10/28(日) 19:20:12.29 ID:vBzuIBdia.net]
>>976
高度過ぎもしないが。。。
>>709

1011 名前:デフォルトの名無しさん [2018/10/28(日) 19:25:59.68 ID:vBzuIBdia.net]
>>979
それもチェックしてたわ。
済まんかったね。
うーん。。。
なんて言うのかな。。。
こう言うの作ってて、ここが上手くいかないみたいな質問自体が来ないのかな。
最近だとpythonスレとかが来てる方か。

うん分かった。
もうロムるわ。

1012 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 19:44:14.25 ID:lBJoUXxI0.net]
>>972
高度な話がしたければすればいいだろう
みんなダンマリなんて嘘こいてないで

てめーがコード1つ示さない低劣野郎なくせに
スッパマンみたいな威張り方してんじゃねえよbogus

1013 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 19:45:11.99 ID:W0+pPBsw0.net]
お題なんてなんでもいいじゃん。
>>938 これだっていい。
最短、最速、なんでもいいからコードでアピールしてみたら。

1014 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 20:31:14.33 ID:3WxjgzdCM.net]
とっくに結論出てる事にすら気づいてない知能の奴が高度な話題とか何とか言ってるのかw

1015 名前:デフォルトの名無しさん [2018/10/28(日) 22:02:27.19 ID:D9Gt7gmT0.net]
次スレ

C言語なら俺に聞け 149
https://mevius.5ch.net/test/read.cgi/tech/1540731704/

1016 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:07:01.51 ID:o1iiiQzo0.net]
>>980
>>709本人か?
あれは質問スレでお題なんてそもそもスレ違いであること、お題としても興味をそそられないつまらない内容であること、1日レスが付かなかった程度でその後の痛々しい反応など、スルーされる要素てんこ盛りで当然の結果だろう。

1017 名前: mailto:sage [2018/10/28(日) 23:49:52.62 ID:0CAv0Ngu0.net]
>>986
>1日レスが付かなかった程度でその後の痛々しい反応
こういうのは、何度となくやって、手ひどく罵倒されでもしないと、なかなか身につきませんね
スルー力も大事だし、スルーされることに耐える能力も必要です…

1018 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:53:10.11 ID:2a8cvg/h0.net]
やはりそうだよね
どこが問題なのか、よく分からないでいた



1019 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 00:28:01.98 ID:OYdZGMPI0.net]
あとちょっとで終わるから、埋め草
設問が今一分からないんだよね
合計を求める←これは問題の範囲にはないよね
1から順に足していって140まで、
その答えを順に表示しろって事かな?まさかね
合計値を文字列に変換する←何進数か分からない
最後に4桁ってあるから多分10進数でいいんだろうけど
16進数なのかもしれない
(4〜7行目は意味が不明なので読み飛ばした)
保存場所の間違いって何?

客からこんな依頼きたら、頭が変になりそうw

1020 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 01:57:31.15 ID:X3/iEvqW0.net]
除算とその余りで桁を分離できる大発見をしたので、それを解説するためのお題を出しただけでしょ。
情報処理勉強してる学生かな。
プログラム的に役に立つ発見ができて良かったじゃない。
おれも中学生くらいのときにじゃんけんの勝ち負け判定は剰余を使うとシンプルに書ける大発見をして心踊ったもんだ。

1021 名前:デフォルトの名無しさん [2018/10/29(月) 21:32:29.11 ID:JGxixszg0.net]
https://www.google.co.jp/search?q=140*%28140%2B1%29%2F2
なにもせずとも表示できたわ

1022 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 13:10:04.84 ID:ahkLvi0o0.net]
素晴らしい
是非ソースを公開して

1023 名前:デフォルトの名無しさん [2018/10/30(火) 16:13:05.26 ID:m+t0SJNKa.net]
>>986
本人よ〜。
だから直ぐ下でロムるって書いた。
じゃあの。

1024 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 16:54:32.38 ID:LlhJqt4w0.net]
高度過ぎもしない(低度過ぎる上に日本語がおかしい)

1025 名前:デフォルトの名無しさん [2018/10/30(火) 17:20:26.15 ID:m+t0SJNKa.net]
>>994
自分でもそう思ってるのにコードが出てこなくて失望した。
スレ違いにしても誰かしら書くと思ったのに。
まあいいよ。
もうこのスレに期待しない。
バイバイ。

1026 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:11:10.85 ID:rsMLxnyN0.net]
994

1027 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:11:42.51 ID:rsMLxnyN0.net]
995

1028 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:11:56.42 ID:rsMLxnyN0.net]
996



1029 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:12:26.14 ID:rsMLxnyN0.net]
997

1030 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:12:34.61 ID:rsMLxnyN0.net]
998

1031 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:13:05.67 ID:rsMLxnyN0.net]
999

1032 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:13:16.01 ID:rsMLxnyN0.net]
1000

1033 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 41日 0時間 16分 26秒

1034 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<314KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef