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


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

C言語なら俺に聞け 145



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

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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






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

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

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