C言語なら俺に聞け 160at TECH
C言語なら俺に聞け 160 - 暇つぶし2ch951:デフォルトの名無しさん (ワッチョイ 424b-jq58)
23/04/14 01:01:11.22 E99e4anP0.net
そのキモいレスをどこで発表するつもりだったのか

952:
23/04/15 19:42:43.70 JbgATxBi0.net
最近のLANカードで他力給電のものばかりのようですね、クロスケーブルでピアツーピアできるPCIe のカードって存在しないものですかね…
結局 hub を使っちまった、もったいないなあ

953:◆QZaw55cn4c (ワッチョイ bfba-DPrL)
23/04/16 20:11:08.29 4UlFU6Wr0.net
chatGPTって面白いね…もうgoogle はいらないや

954:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-S3w6)
23/04/16 21:13:37.76 Ot5nnykg0.net
C スレで言うことか?

955:デフォルトの名無しさん (ワッチョイ 2763-2Cuq)
23/04/16 21:23:02.75 H2kHWHvu0.net
人工知能とはなんたるや、これがわかってないやつ多いのは仕方ないけど
ム板でこれは由々しきことだな

956:デフォルトの名無しさん (ワッチョイ 7f63-sFbk)
23/04/16 21:48:52.61 zHRI9OsR0.net
煽ってるだけやろ

957:◆QZaw55cn4c (ワッチョイ bfba-sFbk)
23/04/16 22:57:10.75 4UlFU6Wr0.net
スレ終盤恒例のウダウダ話ですよ、たまにはいいじゃあ、ありませんか!

958:デフォルトの名無しさん (ワッチョイ 7f63-sFbk)
23/04/16 23:00:41.18 zHRI9OsR0.net
chatGPT関連のスレは6本も立ってるので、好きな場所でやってください

(盛り上がったら誘導してくれてもいいです)

959:デフォルトの名無しさん (ワッチョイ c7b3-5oiz)
23/04/17 02:44:28.44 PilU+QdE0.net
数値の各桁を足す関数を考えました
100点中何点?
(引数nが2023なら2+0+2+3で7を返す)

int chg(int n)
{
int a;
char s[32], tmp[2];

memset(s, 0, sizeof(s));
sprintf(s, "%d", n);

a = 0;
for(int i=0; i<strlen(s); i++){
memset(tmp, 0, sizeof(tmp));
tmp[0] = s[i];
a += atoi(tmp);
}
return a;
}

960:デフォルトの名無しさん (ワッチョイ 5f79-uE6i)
23/04/17 02:47:29.33 dBG5z/eM0.net
数値計算なのにmemsetを使ってる時点で0点

961:デフォルトの名無しさん
23/04/17 03:00:26.88 2drVnpNQ0.net
int chg(int n)
{
int a;
for(a=0;0<n;n/=10) a+=n%10;
return a;
}

962:デフォルトの名無しさん (ワッチョイ 5fad-sFbk)
23/04/17 03:01:25.01 g2jYQi3l0.net
>>949
それわざわざ文字列にしてからやる必要ないよね。
10で割った余りを足して10で割るのを繰り返せば良いだけだし。
仮に(宿題や問題の都合で)どうしても文字列に直してやらなければならないのだとしても文字列として使う char 配列の
初期化で全部0で埋めるのは処理の無駄だしそんな事をするのはC言語における文字列の扱いについてよく分かって
いないことの現れだと思う。

963:デフォルトの名無しさん (ワッチョイ a702-em59)
23/04/17 03:41:54.19 fyienZF80.net
30点
みんなもっと優しくしてあげなよ。ゴキブリだって生きてるんだぞ

964:デフォルトの名無しさん (ワッチョイ 4702-1OZE)
23/04/17 06:01:50.96 WvGymo4J0.net
あかん!
マイナスの場合はどうするねん

965:デフォルトの名無しさん (ワッチョイ a702-em59)
23/04/17 06:38:08.16 fyienZF80.net
>>951
nが負の場合は?

966:デフォルトの名無しさん (ワッチョイ 67c9-ieXZ)
23/04/17 08:14:09.28 TjOyN7pL0.net
if (n < 0) n = -n;

967:デフォルトの名無しさん (ササクッテロロ Spfb-tEYI)
23/04/17 09:53:06.18 MNSyV7UUp.net
文字列で与えなきゃデカい数字が扱えないやん

968:デフォルトの名無しさん (ワッチョイ c75f-nEk4)
23/04/17 10:26:43.64 jOIYUxZw0.net
int chg(int n)
{
int a=0,b;
while(n) {
b=n/10;
a+=n-b*10;
n=b;
}

969:デフォルトの名無しさん (ワッチョイ 67c9-ieXZ)
23/04/17 10:57:06.60 TjOyN7pL0.net
>>957
int で受けて 文字列化してるからちょっと
最初から文字列で受けてるなら一考の余地はあるかもね

970:デフォルトの名無しさん (ワッチョイ 2763-2Cuq)
23/04/17 10:57:27.95 I3IibvEZ0.net
957涙目だなw

971:デフォルトの名無しさん (テテンテンテン MM8f-/v6j)
23/04/17 12:21:07.80 sfjAbensM.net
プログラミングには最低限の数学的な素養が必要な事が証明された…
科学技術計算を扱わないとしても、計算論とか数学とは切っても切れない関係にある

972:デフォルトの名無しさん (ワッチョイ 5f97-3fkD)
23/04/17 12:50:21.20 9nZn/y+b0.net
銀行の勘定系でも四則演算の知識は必要だし

973:デフォルトの名無しさん (ワッチョイ 67c9-ieXZ)
23/04/17 12:56:30.89 TjOyN7pL0.net
文字列を受ける場合
int chg(const char* s)
{
 int ret = 0;
 char tmp[2] = { 0 };
 while (*s && !isdigit(*s)) s++; /*数字じゃないところは飛ばす */
 if (*s) {
  while (*s && isdigit(*s)) { /* 数字が連続している間だけ */
   tmp[0] = *s; ret += atoi(tmp);
   s++;
  }
 }
 return ret;
}

環境依存で
 isdigit(*s) を ('0'<=*s && *s <='9') に
 tmp[0] = *s; ret += atoi(tmp); を ret += s[0] - '0'; に
置き換えることもできるかもしれない

974:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-S3w6)
23/04/17 13:07:40.29 FYaudfJt0.net
>>963
> 環境依存で

数字に対応する文字コードが連続で昇順に並んでいることは
言語仕様で保証されている。

975:デフォルトの名無しさん (ワッチョイ 67c9-ieXZ)
23/04/17 13:15:24.09 TjOyN7pL0.net
>>964
さんきゅう 数字は保障されてたか

976:デフォルトの名無しさん (ワッチョイ 67c9-ieXZ)
23/04/17 13:21:38.21 TjOyN7pL0.net
次の while (*s && isdigit(*s)) と意図の一部は重なるし if (*s) はいらんかったね

977:デフォルトの名無しさん (スプッッ Sdff-wBI8)
23/04/17 15:25:15.58 DnqfCfHpd.net
今のモダンな言語からしたら一見して下らないやり取りだけど
これがC言語なんよね・・・

978:デフォルトの名無しさん (ワッチョイ c75f-nEk4)
23/04/17 15:50:16.10 jOIYUxZw0.net
ハードとアプリのあいだに多くの計算を必要とするソフトの層があるからね
OSやらで全部カバーするのは無理だからCは死なない

979:デフォルトの名無しさん (アウアウウー Sacb-/q5i)
23/04/17 15:51:50.57 kmcXsww3a.net
>>964
漢数字も並んでたら嬉しかったと思いませんか

980:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-S3w6)
23/04/17 16:54:39.89 FYaudfJt0.net
>>969
現実には JIS は読みの順序で Unicode は部首の画数の順序が原則。
漢数字を例外にしたらそれはそれで不格好だし嬉しくない人もいるだろう。

まあ Unicode は後から追加した分だのなんだのでそんなに綺麗に並んでいるわけでもないので
どうせぐちゃぐちゃなら数字くらいは並べても良かったんちゃうかなというのは気持ちはわかる。

981:デフォルトの名無しさん (テテンテンテン MM8f-/v6j)
23/04/17 17:19:21.10 tJ5lxHq2M.net
一二三四…Why Japanese people!


982:



983:デフォルトの名無しさん (スッププ Sd7f-1OZE)
23/04/17 19:13:46.43 92m0URlPd.net
>>967
くくく、、愚かな、、

984:デフォルトの名無しさん (スッププ Sd7f-1OZE)
23/04/17 19:21:15.62 92m0URlPd.net
>>954
アンサインドイントで受けたれや!

985:デフォルトの名無しさん (アウアウウー Sacb-/q5i)
23/04/17 20:38:59.46 RKcegE7fa.net
壱<弐<参<死<伍<碌<質<八<苦<拾<


986:百<銭<萬 ですね判ります



987:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-S3w6)
23/04/18 08:26:27.42 aNj1uNjV0.net
>>971
英語の綴りの不規則さも大概やないけ! と突っ込んで完成するネタだと個人的には思ってる。

988:デフォルトの名無しさん (スフッ Sd7f-fSvC)
23/04/18 14:58:32.85 aePy3OZ8d.net
未初期化の自動変数には「不定値」が割り当てられる、と調べるたり自分が学んでいる本でも書いていますが、自分のコンパイラは常に「0」になっているようです 
なぜでしょうか? 
ちなみにgcc-10です gcc-11だと「不定値」になります

989:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-iKPJ)
23/04/18 15:29:21.41 rjFDtS/R0.net
不定の値とは「未規定の値又はトラップ表現」と規定されてる。
常に 0 であってもこの規定に反しないよ。

990:デフォルトの名無しさん (スフッ Sd7f-7nfa)
23/04/18 16:27:26.25 U9oAz8h1d.net
>>977 ありがとうございます
ちなみに「トラップ表現」とはなんでしょうか?

991:デフォルトの名無しさん (スフッ Sd7f-foDO)
23/04/18 16:57:48.54 U9oAz8h1d.net
976です chatgptで調べました
C言語の仕様では、自動変数を初期化しない場合、その値は不定とされています。これは、コンパイラがメモリ上で変数を割り当てる際に、その領域が以前に使用されていたデータを含んでいる可能性があるためです。

しかしながら、一部のコンパイラでは、自動変数を0で初期化することがあります。これは、セキュリティ上の理由から、またはコードの可読性を向上させるために行われることがあります。

ただし、コンパイラが自動変数を0で初期化することが保証されているわけではありません。したがって、プログラマは自動変数を使用する前に必ず初期化するように注意する必要があります。

992:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-iKPJ)
23/04/18 17:04:00.61 rjFDtS/R0.net
>>978
トラップ表現は「オブジェクト型の値を表現しないオブジェクト表現」ということになってる。
その型としてあり得ないビットパターンってこと。
オブジェクトとして格納されたトラップ表現を文字型ではない左辺値式として読みだした場合の結果は未定義となる。
副作用としてそのような表現が生成される場合も未定義。

C の仕様でいう未定義というのは「何が起きても (たとえば暴走しても) 良い」という意味なので実質的に禁止だと思ってもいいよ。

とはいえ整数型でトラップ表現があるアーキテクチャを私は見たことが無いけどな。

993:デフォルトの名無しさん (スプッッ Sdff-ZLJR)
23/04/18 18:20:39.02 Qric2C4Yd.net
トラップ表現を調べてみたけどほぼほぼ処理系定義絡みなのね

signed int16の0x8000は-32768かもしれないし、トラップ表現かもしれない
1の補数系でsigned int16の0xffffは0かもしれないし、トラップ表現かもしれない
int32* の4バイト境界に合ってないポインタ(int* p=0x0001)は、強制的に4バイト境界に直されるかもしれないし、トラップ表現かもしれない

994:デフォルトの名無しさん (スフッ Sd7f-foDO)
23/04/18 19:26:15.76 U9oAz8h1d.net
>>980 ありがとうございます 勉強になりました

995:デフォルトの名無しさん (テテンテンテン MM8f-/v6j)
23/04/19 02:26:26.48 Nl7uhZkpM.net
自分のコンパイラってのを明らかにしてくれ
どうしても言えないってならしょうがないが…

996:デフォルトの名無しさん (ワッチョイ 6746-KCd8)
23/04/19 02:43:50.96 MHEst9B30.net
>>983
> ちなみにgcc-10です
と書かれている。

997:デフォルトの名無しさん
23/04/19 06:44:34.46 Dcht9s5K0.net
>>983
バーカ(笑)

998:デフォルトの名無しさん
23/04/19 06:59:06.58 twYHK80b0.net
983息してるか?www

999:デフォルトの名無しさん
23/04/19 07:47:07.07 BpfZGgoRd.net
かてなおったかな

1000:デフォルトの名無しさん
23/04/19 10:03:53.18 rE0e6VM+0.net
自作コンパイラの話する?

1001:デフォルトの名無しさん
23/04/19 10:43:43.68 m2bdQTksd.net
いいぜ?お前からな?

1002:デフォルトの名無しさん
23/04/19 11:58:53.24 rE0e6VM+0.net
ぼくはLex&YACCでPL/0を作って満


1003:足しました。おわり



1004:デフォルトの名無しさん
23/04/19 13:12:38.94 IP5wt1Fbd.net
夜中に路地から飛び出て来たら俺もびびる
でも >>991 では語れんわ!

1005:デフォルトの名無しさん
23/04/19 20:04:36.21 3t8AIZsr0.net
C言語のソースコードを検査して処理系依存や未定義動作等の環境によって
結果が変わりうる可能性のある部分を見つけてくれるツールってどんなのがありますか?
コードエディタはvscodeなのでこれと連携できるとなおよいです

1006:デフォルトの名無しさん
23/04/20 08:07:01.48 B156zYN00.net
lintでググれ

1007:デフォルトの名無しさん
23/04/20 08:23:22.20 3as2C0030.net
BingAIに聞け

1008:デフォルトの名無しさん
23/04/20 09:13:39.09 EuuMXrfTa.net
とにかくggr

1009:デフォルトの名無しさん
23/04/20 16:00:12.38 ZTK8T1RQd.net
チャットジーピーテー

1010:デフォルトの名無しさん (ラクッペペ MM8f-bKDU)
23/04/20 23:37:04.36 BN6x5ZIFM.net
さすがに検査対象としてソースコードそのものをchatGPTに丸投げするのはマズイ
個人情報や機密情報をそのまま入力するのは止めるように開発元のopenAIが忠告してたはず

1011:デフォルトの名無しさん
23/04/21 06:41:53.06 NmcLOv2EM.net
>>993
よさそう。サンキュー

1012:デフォルトの名無しさん
23/04/21 13:41:26.17 cgpIrgwq0.net
次スレどこ?

1013:デフォルトの名無しさん
23/04/21 14:06:43.23 rqj2HSDF0.net
次スレ
スレリンク(tech板)

1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 114日 3時間 26分 13秒

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch