C言語なら俺に聞け 148
■ このスレッドは過去ログ倉庫に格納されています
>>602 × なんとなく ○ ほぼ確実に 「Cで」「Cで」「Cで」、初心者はCしか出来ないからそれしか考えられない。(選択肢がない) 初心者あるあるだけども。 実際これ、Cで処理されてCバイナリを引き継がされても大迷惑だし。 >>588 マジな話、上司が居るのなら上司に聞けって。これ、Cでやったら大迷惑な話だし。 聞くのが迷惑だと思っているのなら、この件については聞かない(報告しない)ほうが迷惑だ。 上司が居なくてど初心者なら、この際にスクリプト言語を覚えろ。 >>606 その論法でいうならvoidなし&返却値なしだな 純K&Rスタイル main() { /* do something */ exit(0); } 例の半角野郎がまた湧いたか、しつけーな 何が上司だ、ここはム板だぼけ >>606 引数 void って初めて見たぞ。文法的にありなのかこれ? 未だ許されないvoidおじ 特定行の書き換えですが ・bの値を反転させたい(0なら1、1なら0) ・b=の行は複数出現する可能性がある() ・複数出現した場合は一番最後に出現した行の値を反転の対象にしたい ・書き換え後はb=の行は1行だけにしたい ・書き換え後はできれば a=... b=... c=... な感じでソートしててほしい これはC言語で出来ますか? どうやったらいいでしょうか? >>612 「出来る/出来ない」なら、そりゃC言語で「出来ない」って事ははほぼ全ての事例で無いよ。 どうやったらいいか、なら、その場合は俺ならExcel使うね。規模的に無理ならシェルスクリプトを使う。 何でもCでやればいいわけではない。 そのお題を実際にCでやる事なんて無いから、練習用なら意味無いし、 本番としてそれをCでやる気なら、間違ってるから止めとけ。 >>588 の続きなのか >>612 ソートするなら全て読み出すのが一番楽だよ コードの書き方みたいなこんなもんを上司に聞けとか よくわからんが、協力会社で入ってるリーダーかなんかか。。。 すげえな、そういった会社の文化をオレは知らないが そもそもそんなとこが未教育なゴミつれてきたら大問題だからな 必死になるのも分かるわ で、だれでもすぐ分かってるコマンド書いてドヤ顔して低学歴もいるしな この程度ならCで書いても 普通にCで書く練習になる Excelで手作業とかは論外です シェル芸でもいいです 誰かできませんか? >>617 どこまで書いたのか、現状のコードを貼ってみなよ >>617 お前以外のみんな出来るっての。 お前がコードクレクレ君だからみんな適当にあしらってる。 お前が努力してる(=コードを試しに書いてみたが動かない)のなら、もう少しましな回答も出るだろうさ。 こんな感じでどうかな ・空行はそのまま出力されてしまう ・代入文は1行に1文のみで X=n の形式 が前提だけど awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' a | sort -u >>621 tacで逆順出力、sedで初回マッチのみ置換、sortでソート出力 tac なんてコマンドがあるんだな、サンキュー sed 使った場合、0と1の交換と、初回マッチ分以外は出力しないようにするの、難しくない? Ruby で作った text = File.read 'data.txt' ary = [ ]; index = [ ] text.each_line.with_index do | line, idx | # 各行・添字 line.chomp! # 末尾の改行を削除する ary.push line # 各行を配列に入れる # 先頭文字列が、b= なら、添字を配列に入れる index.push idx if line.start_with? 'b=' end return if index.empty? # 空配列なら処理なし first = true # 最初の1回だけ処理する index.reverse!.each do | num | # 後ろから削除するために、反転する if first # 最初の1回だけ first = false case ary[ num ][ 2 ] # 3文字目 when "0" then ary[ num ][ 2 ] = "1" when "1" then ary[ num ][ 2 ] = "0" else # 処理なし end else # 2回目以降は削除する ary.delete_at num end end puts ary Rubyもいいけど、こういう小規模な操作にはシェルスクリプトとかが適してる気がする。 >>612 の内容だけど、誰も聞かないのであえて聞くけど b=以外は何も加工せずに複数あればそのまま出力で良いのか? その場合、ソートは=の右側の数値順にするのか、文字コード順にするのかか データによっては、a=、c=、d=の行が多数出力される中でb=の行だけ1行になる ってことで良いのかな? 私たち日本人の、日本国憲法を改正しましょう。 総ム省の、『憲法改正國民投票法』、でググって みてください。拡散も含め、お願い致します。 @ [出力A] a=とc=を抽出(使うコマンド:grep) A [出力B] b=0の1〜末尾-1行を抽出 (使うコマンド:grep|head) B [出力C] b=1の1〜末尾-1行を抽出 (使うコマンド:grep|head) C [出力D] b=0の末尾行を抽出し置換 (使うコマンド:grep|tail|sed) D [出力E] b=1の末尾行を抽出し置換 (使うコマンド:grep|tail|sed) E [出力F] [出力B]、[出力E]、[出力C]、[出力D]コンカチネーションしユニークにする (使うコマンド:cat|uniq) F 出力結果 [出力A]と[出力F]をコンカチネーションしソート(使うコマンド:cat|sort) とりあえずコレでいけるハズ あとはがんばりなさい だけでやるとはオレは一言もいってない 使うコマンドを限定した覚えはない ソートはa,b,c...順です b=以外は重複を許可します(ソート後の出現順は考慮しなくてよい) (処理例 入力データ c=0 a=1 b=1 c=1 a=0 b=0 出力データ a=1 a=0 b=1 c=0 c=1 チューリングマシンならなんでもできて当たり前なんや Cのプリプロセッサも計算完備だしな。誰かがcppでフィボナッチ数列出力してたな そういや こんなんではどうかな sed -e ":l; N; s/\nb=[01]\n/\n/1; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}" bが1行しかないとうまく行かないな ちょっと手直し sed -e ":l; N; /b=.*b=/{;s/\nb=[01]\n/\n/1;}; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}" 並び替えはsortでやってください 大したことはしてませんw 前半のスクリプトで最終行以外のb=の行を削除し、 後半のスクリプトで置き換えをしてます つかさ、丸投げに答えてやる必要も無いだろ。 ただの一行もコード書いてないだろこいつ。 622じゃだめなんか? cat <file> | awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' | sort てか、Cのスレで質問者もCでどうやるか聞いてるのに誰もCで答えてないw ま、Cで書く気が失せる問題ではあるが。 頭の体操にはなったろ スレを活性化するためには呼び水って必要なんだと実感 C言語でやるとしたら b=で始まる行以外は適当な一時ファイルに出力し b=で始まる行だけはメモリー上に格納しておく b=行が出現する度に、あたらしい行データでメモリー上を更新する EOFまで処理したら、一時ファイルとメモリー上のデータをマージする その際にb=の値を所定の値に置換する 順番は後にソートする前提なので適当で構わない ソートは外部コマンドでやらせて良いだろうね >>645 591がCで答えてるだろ ちょっと小馬鹿にしたような内容だが 小出し小出しで来る質問者には適切だったと だんだん思えてきてる お前らがほどよく食いつきそうな質問考えるのも大変なんだぞ 流石に591はネタとしか思えない というか、酷すぎだろう C99時代のhello worldプログラムを考えてみた。 #include <stdio.h> #include <stdlib.h> static inline void print_hello(void) { puts("Hello, C!"); } int main(void) { print_hello(); exit(EXIT_SUCCESS); } exit()関数を使ったり、main()関数の中に直に処理を書かないとか色々。 なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? >>653 あれ?それ、コンパイルすると警告出ないか?main()が何も返してないって。 いや、exit()を理解してくれるコンパイラなら何も出ないかも知れないけどね。 >>655 c99 -O2 -Wall -Werror -Wextra hello.c -o hello これで無警告だった。 c99はGNU/Linuxだとgcc -std=c99を実行してる。 icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello でも成功。 GNUのコンパイラでもIntelのコンパイラでもちゃんと処理できるのでいいんじゃないかなぁ。 main に限り 戻り型int としながらも return で値を明示的に返さない場合 暗に return 0; とするってなかった? (653 で exit() 無しでもセーフ) c99から(とc++も)main()は特別扱いで省略時はreturn 0;と扱われる とググったらでてきた なんでmain()だけ?どうせなら関数全てそうしちゃえばいいのに、と思わなくもない >>659 「書かないこと」が一命令と等価ってどうよ? 不定の戻り値なんて殆ど使いもんにならんから 戻り値がスカラー型ならコストも低いし 0 返してる扱いでいい気がする >>656 -std=c99いらねって デフォだぞ今のgccは 確かSolaris+sunのコンパイラではreturn 0 もexit(0)も書かんかったら$?は不定だったような記憶がある >>669 で、誰が gcc で -std=c99 を指定してるって? 恥の上塗りすぎる w マ板で見つけたんですけど、何がやばいんですか? 355 仕様書無しさん sage 2018/10/17(水) 10:31:44.15 https://qiita.com/hamichamp/items/7b7a7ee091a6856ac900 こんな奴でもフリーランスになれるんやな >>676 すみません勘違いしてました このブログの投稿者がフリーランスでこの記事の人のことではないんですね >>674 確かに、俺が何を言ったのか、おまえ解ってないな だから聞いたのか 672で自らの理解力を露呈して自爆しやがってw >>653 だれかこれに触れてほしい(自己主張) C99というかモダンCプログラミングの初歩として (手前味噌だが)かなりいい感じだと思うんだけどどうかな。 とりあえず今までのhello worldプログラムは ・return文、しかも0固定をmain()関数に書いてしまっている ・main()関数に直に処理を書いてしまっている。 などの理由であまり実際に即していないと思うのよね。 >>679 人は互いに理解し合えるという幻想に対する反例として読んでます 別にmain()に処理書いてもいいと思うがな。パッと見てわかるぐらいの小ささなら。 まあしかしこれは各個人の信仰の問題であって言語そのものの制限ではない。 そこまでなんとかしたいならそういう言語を作るしかない。 布教活動すれば信者は増えるだろうが相変わらず教義に反する異端者はこの世に存在し続ける。 >>679 hello world に求められることは、できるだけ少ない手数でイメージ通りの結果が得られることだと思うんだ。宗教の前に。 >>653 に込められた思想が分かるようになるのはずっと後。 まあ、ある程度分かるようになってからのお題としてここで議論するのは面白いかもね。 mainの中にputsの代わりに別関数呼ぶと言うのはビジネスロジックをmainから極力排除するという意図があると推測するけど、最初の一歩としては複雑すぎる。 いきなり最初から関数、inline、static、exitの仕様を理解する必要があるので。 スタイルの問題じゃねえ sizeof(32)とか書いてるアホが指導員やってることが問題なのであって voidといいsizeofといい、今年は豊作だなw voidくん見てる〜? sizeof(32)くんて友達出来てよかったねw ブルーボトル日本開店おめでとう。 西海岸で飲む、いつもの味。僕にとって新鮮みがないことが、成功の証だと思う。 >>678 で、ごたくはいいから>>672 の回答書いてみろよ まあ書けずに逃げ回るんだろけどな w >>653 >>679 ゴミだね お前ら初心者はもう少しわきまえた方がいい。 初心者が思いつきで出来る領域はCにはもう残されていない。そういうのがやりたいのならGoやRustに行け。 C99からもう20年近く経つ。 その間、誰もそういうことをやらなかった(或いは、やっても流行らなかった)のは、その必要がないからだ。 今のお前のように、無視されて終わったからだ。 それが何故ゴミなのか理解出来ないうちは、もっとコードを書くことだ。 >>691 俺は半角君ではないし、あおり抜きでゴミだって事だよ。 マジでそういうことを世界中の誰も20年間しなかった理由を考えてみろ。 この期に及んでお前らみたいな糞初心者がCに溢れている意味が分からんが、 お前らはどうやらどの言語でも良くて、単に流れているスレに溜まっているだけだろ。 だから無理にでも流れないと不安になるから無駄釣りしているわけでさ。 そういうのも迷惑だから止めろ。 マジックNGワード「お前ら」 ※2(5)chの全板共通 釣りレス or 気が触れた方のレス or 玄人ぶった素人のレスなど。 ウザいレスを回避する際に使用します。 参考: 【レス抽出】 対象スレ:C言語なら俺に聞け 148 キーワード:お前ら 抽出レス数:18 >>693 お前らが駄目なところはそういう所なんだけどな。 最近パヨクが急速に腐ったのも同じ理由だ。 最近は693みたいに、「俺の希望する意見じゃなきゃイヤ」な奴が多すぎる。 ネットってのはリアル以上にいろんな人がいて、様々な意見を聞ける。 その中で、どんな偏った意見も、探せば出てくる。 フィルタ(ブロック)しまくれば都合がいい意見しか見えない状況が簡単に作れる。 これは昔で言う、イエスマンで周囲を固めた状態だ。一番やってはいけないと言われていたことだ。 そしてそれをやりまくったのがパヨクで、今は世間とずれまくってるだろ。 今の状況で俺をブロックするのなら、お前らはパヨク以下に落ちる。 勿論、俺が言っていることが間違いだらけで、読む価値無しと判断するなら、フィルタするのは自由だ。 しかし実際の所、>>679 を肯定的に評価している奴なんて誰もいないだろ。俺が一番はっきり言っただけであってさ。 この状況で俺をフィルタするってのは、お前はパヨク予備軍だって事だよ。 世界中を探して>>679 を褒めてくれる奴を見つけだし、そこに移住すれば、君らは幸せになれるだろう。 俺も君らが居なくなって清々するし、有り難いから、そうしてくれれば助かるのだが。 そもそも、この程度でNGが必要な奴はここ(2ch)に来るべきではないし。 まあ、>>693 には俺が見えてないはずだから、この話はここで終わりだが。 お題は「モダンなCでHello World」です ファイッ! 弁明しておくと、俺の >>653 は釣りじゃなくて、まったくの興味というか こういうプログラムのほうがいいんじゃないかという提案だった。 結果的に荒れ気味になってしまったのはすまん。 (個人的には旧hello worldよりも洗練されていると思うんだけどなぁ……) >>697 お前も何故か必死なんだな。 同一人物でないのなら、単に>>679 や>>653 を褒めてやればいいだけだろ。 そこで「気に入らない意見」(に反論)ではなく、 気に入らない意見を言った「俺」にフォーカスしてくる辺りがパヨク予備軍なんだよ。 実際の所、ネット上には間違ったことを言う奴も多い。それが俺だというのならさておき、 誰も>>679 を褒めてないし、20年間世界中でそんな馬鹿なことをした奴が居ないのも事実なんだから、 そのことをふまえて普通に考えれば、>>679 がゴミなのは事実だし、自明だろ。 ゆとりはスクラムを組んで連呼し、黒を白だと主張する事がよくあるが、それは明白な間違いだよ。 てゆうか、一体お前らは何がしたいん? ゴミをゴミだと言われない匿名掲示板なんて、逆に存在価値がないだろ。 腐されたくないだけなら、FaceBookでやるべきだ。 後ろ指さされることはあっても、堂々とゴミだと言われることはあまり無いはず。 それがお前らの望みなんだろ? (今回の>>675 もそう。ここでボロカスに言われることはあっても、直接言われることがないからあのままなのであって) >>699 洗練されているとは思うが学び始めたばかりの初心者に最初に見せるサンプルプログラムとしてはやはり複雑なのではないかと思う。 >>702 褒める気があるのならもっとはっきりと褒めろよ。 >>703 そういうところがお前らの駄目なところだ、と言っているわけだが。 まあ所詮それがゆとりの限界だよな、とは思う。 否定されたことがないから否定されることに過敏なのか?最近この手の輩はよく見かけるが。 しかし、俺をゴミ呼ばわりするお前ですら>>702 程度しか言えないのなら、 逆に俺の意見「>>679 や>>653 はゴミ」を補強しているではないか。 俺をゴミ呼ばわりするのなら、もっとベタ褒めしないと筋が通らないだろ。 そのことにすら気づけないのか? >>699 一応マジレスしておく。 ただし技術的な答えは書かない。 これは最近、この手で煽って答えを書かせる輩が増えていると感じるから。 そういう奴らにはエサを与えず、餓死させるのが習いだ。 君のせいではないから、この点は安心していい。 > こういうプログラムのほうがいいんじゃないかという提案だった。 これはいい。 というか、こういうのを自由にやれるところがいいところであって、 逆に、遠慮して何も言えないようなら匿名掲示板の存在価値はない。 だから、思ったことはどんどん言えばいいし、 それについて文句を言いたければ言えばいいし、結果的に荒れても問題ない。 ここは、そういう場所だから。 逆に、FaceBookや実名空間で出来ることをここでやるべきではない。 実名空間で口頭でやった方が手間もかからず早いからだ。 問題は、ゴミをゴミだとはっきり言いきった俺に対して、 言い方が良くない系の言いがかりを付けてくる馬鹿が多いことだ。 匿名掲示板で全員が意見をオブラートに包んで言うようになったら存在価値なんて無くなる。 そもそも、それを求める奴がここに来るのも間違っている。 そんな奴は、少なくともコテハン制の所に行くべきなのさ。 相変わらず低学歴知恵遅れたちは 超どうでもいいことで 超どうでもいいレスをひたすら書きこんでるわ >>700 言えてる。 CASL2の勉強で1から140までの合計を求めて、その数を文字列に変換するプログラム書いたんだけど、どうよ? ほら。Cって組込にも使われるじゃん。 printfが無い環境のために良い練習じゃん。 (実際、組込Cでprintf無いけど、キャラクタディスプレイ付ければ文字コードを送ると表示される環境と言うのがある) なぜ140かと言うと各桁が同じ数字じゃ無いので保存場所の間違いに気付きやすいから。 4桁は合計で出た数の桁数。 キャラクタディスプレイの代わりにputs縛りって事でさ。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる