C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
http://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 140 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
2017/05/11(木) 22:20:03.99ID:cn414UR9033デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/14(日) 10:51:06.70ID:44d8vf440 >>32
a+=1 と ++a の評価は同じ
a+=1 と a++ の評価は違う
評価後の値はどちらも同じ
#include <stdio.h>
int main(void)
{
int a;
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a += 1); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); //a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", ++a); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); // a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a++); // a=0 評価結果はインクリメント前の値
printf("%d\n\n", a); // a=1
return 0;
}
a+=1 と ++a の評価は同じ
a+=1 と a++ の評価は違う
評価後の値はどちらも同じ
#include <stdio.h>
int main(void)
{
int a;
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a += 1); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); //a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", ++a); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); // a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a++); // a=0 評価結果はインクリメント前の値
printf("%d\n\n", a); // a=1
return 0;
}
34デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 10:50:08.41ID:ITGYMTaF0 int a=1;
a = a+++a;
これ、たいていの環境で 3 になるみたいだけど
内部ではどっちに構文解析されてるの?
a = a+++a;
これ、たいていの環境で 3 になるみたいだけど
内部ではどっちに構文解析されてるの?
35デフォルトの名無しさん (ワッチョイ c328-Z6j5)
2017/05/15(月) 11:49:32.39ID:8jcxUI920 >>34
a=b++ + c;
a=b++ + c;
36デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/15(月) 11:56:31.63ID:Z3hdp57V0 >>34
後置インクリメント演算子(a++)は+演算子や前置インクリメント演算子(++a)より優先順位高い
後置インクリメント演算子(a++)は+演算子や前置インクリメント演算子(++a)より優先順位高い
37デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 12:12:51.85ID:Vosr5hkL0 >>34
VC++の場合
a = (a + a)++;
GCCの場合
a = ++(a + a);
int a = 10;
printf("%d\n", a); // a=10
printf("%d\n", a=a+++a); // a=20 (VC++の場合)、a=21 (GCCの場合)
printf("%d\n\n", a); // a=21
VC++の場合
a = (a + a)++;
GCCの場合
a = ++(a + a);
int a = 10;
printf("%d\n", a); // a=10
printf("%d\n", a=a+++a); // a=20 (VC++の場合)、a=21 (GCCの場合)
printf("%d\n\n", a); // a=21
38デフォルトの名無しさん (ワッチョイ 7f0e-z3es)
2017/05/15(月) 12:55:00.64ID:FMK+ZQcW0 右辺値のインクリメントが出鱈目過ぎる
39デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 13:04:41.31ID:m4iBjxKl040デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/15(月) 13:26:43.15ID:Z3hdp57V0 >>39
えっ? 関係ないの?
えっ? 関係ないの?
41デフォルトの名無しさん (ワッチョイ 7fcd-/tbB)
2017/05/15(月) 14:05:11.81ID:KBSLJwGw0 >>37
// GCCの場合
a=10;
printf("1: %d\n", a = a++ + a); // a=21
a=10;
printf("2: %d\n", a = ++a + a); // a=22
a=10;
printf("3: %d\n", a = a + a++); // a=21
a=10;
printf("4: %d\n", a = a + ++a); // a=22
1と2は予想通りだけど3と4は予想が外れた。
GCCは素直に前方から評価すると思っていたが、
インクリメント演算がある項を先に評価するようだ。
// GCCの場合
a=10;
printf("1: %d\n", a = a++ + a); // a=21
a=10;
printf("2: %d\n", a = ++a + a); // a=22
a=10;
printf("3: %d\n", a = a + a++); // a=21
a=10;
printf("4: %d\n", a = a + ++a); // a=22
1と2は予想通りだけど3と4は予想が外れた。
GCCは素直に前方から評価すると思っていたが、
インクリメント演算がある項を先に評価するようだ。
42デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 14:08:51.26ID:ITGYMTaF043デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 14:28:56.88ID:m4iBjxKl044デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 14:50:03.73ID:k1YI7zCW0 知ったかぶりしないで
副作用完了点を検索してからレスしようね
副作用完了点を検索してからレスしようね
45デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 15:08:26.82ID:m4iBjxKl0 さすがに、a=a+++a が未定義なことぐらいわかってるだろ
そのうえで、どう動作してるのだろうかって話じゃねーの?
そのうえで、どう動作してるのだろうかって話じゃねーの?
46デフォルトの名無しさん (ワッチョイ 13df-TInS)
2017/05/15(月) 15:17:45.01ID:ugjsGD9A0 どう字句解析されるのかって話だろ
47デフォルトの名無しさん (アウアウカー Sa67-W6g0)
2017/05/15(月) 15:41:11.64ID:+h60b5kha 初めから()で囲んで優先つけた方がいいね
48デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 15:48:46.87ID:Vosr5hkL0 VC++での逆アセンブルコード (Visual Studio 2017 debugモード)
// a=a++
a = 10;
004037DE mov dword ptr [a],0Ah
a = a++;
004037E5 mov eax,dword ptr [a]
004037E8 mov dword ptr [a],eax
004037EB mov ecx,dword ptr [a]
004037EE add ecx,1
004037F1 mov dword ptr [a],ecx
// a=++a
a = 10;
004037F4 mov dword ptr [a],0Ah
a = ++a;
004037FB mov eax,dword ptr [a]
004037FE add eax,1
00403801 mov dword ptr [a],eax
00403804 mov ecx,dword ptr [a]
00403807 mov dword ptr [a],ecx
// a = a+++a
a = 10;
0040380A mov dword ptr [a],0Ah
a = a+++a;
00403811 mov eax,dword ptr [a] // aの値と
00403814 add eax,dword ptr [a] // aの値を加算して (a+a)
00403817 mov dword ptr [a],eax // 一時保存(評価)して
0040381A mov ecx,dword ptr [a] // 評価結果に対して
0040381D add ecx,1 // 1を加算して (a+a)++
00403820 mov dword ptr [a],ecx // 最終結果をaに代入
// a=a++
a = 10;
004037DE mov dword ptr [a],0Ah
a = a++;
004037E5 mov eax,dword ptr [a]
004037E8 mov dword ptr [a],eax
004037EB mov ecx,dword ptr [a]
004037EE add ecx,1
004037F1 mov dword ptr [a],ecx
// a=++a
a = 10;
004037F4 mov dword ptr [a],0Ah
a = ++a;
004037FB mov eax,dword ptr [a]
004037FE add eax,1
00403801 mov dword ptr [a],eax
00403804 mov ecx,dword ptr [a]
00403807 mov dword ptr [a],ecx
// a = a+++a
a = 10;
0040380A mov dword ptr [a],0Ah
a = a+++a;
00403811 mov eax,dword ptr [a] // aの値と
00403814 add eax,dword ptr [a] // aの値を加算して (a+a)
00403817 mov dword ptr [a],eax // 一時保存(評価)して
0040381A mov ecx,dword ptr [a] // 評価結果に対して
0040381D add ecx,1 // 1を加算して (a+a)++
00403820 mov dword ptr [a],ecx // 最終結果をaに代入
49デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 16:01:51.35ID:Vosr5hkL0 GCCは逆コンパイラが使える環境を持っていないので誰か頼みます
50デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/15(月) 16:17:06.14ID:vCh6HJnv0 -S付けるとアセンブラソース出力してくれるよ
51デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 16:17:38.49ID:k1YI7zCW052デフォルトの名無しさん (ワッチョイ 2375-QWrk)
2017/05/15(月) 16:26:58.46ID:K4VlRHcT053デフォルトの名無しさん (ワッチョイ 2375-QWrk)
2017/05/15(月) 16:38:44.35ID:K4VlRHcT0 >>51
a+++a;は未定義動作でしょ?
a+++a;は未定義動作でしょ?
54デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 16:55:22.96ID:m4iBjxKl055デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 17:14:07.00ID:Vosr5hkL0 >>52を利用して逆アセンブルコードを調べてみた
スタックを使って細工するところとかコードの展開内容としては結構トリッキーだけど
GCCの場合のa=a+++a のイメージとしては
{
tmp = a, a=(++a) + tmp;
}
といった感じかな
>>54の言う通り内部的には別変数を利用しているとも言える
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1]
// 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
スタックを使って細工するところとかコードの展開内容としては結構トリッキーだけど
GCCの場合のa=a+++a のイメージとしては
{
tmp = a, a=(++a) + tmp;
}
といった感じかな
>>54の言う通り内部的には別変数を利用しているとも言える
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1]
// 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
56デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 17:17:38.16ID:Vosr5hkL0 レイアウト崩れたので修正
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1] // 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1] // 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
57デフォルトの名無しさん (ワッチョイ 7f0e-z3es)
2017/05/15(月) 17:33:28.21ID:FMK+ZQcW0 無能な働き者
58デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 18:48:03.94ID:k1YI7zCW059デフォルトの名無しさん (ブーイモ MM47-ei9w)
2017/05/15(月) 20:47:42.32ID:l6TF2MzAM60デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 21:40:37.62ID:ITGYMTaF061デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 22:35:38.71ID:m4iBjxKl0 ざっくりだけど
C99以前だとaの変更とその変更と関係ないaの評価を行っているからアウト
C11だとa++でのaへの1加算と、2つ目のaの評価に順序性がないからアウト
C99以前だとaの変更とその変更と関係ないaの評価を行っているからアウト
C11だとa++でのaへの1加算と、2つ目のaの評価に順序性がないからアウト
62デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/15(月) 22:43:52.12ID:KR9fXitY0 おいQZお前はC向いてないからやめろ
このスレを荒らすなクソマニア
このスレを荒らすなクソマニア
63デフォルトの名無しさん (ワッチョイ e33c-mRCJ)
2017/05/16(火) 02:46:28.46ID:8VX1hNny0 a = f(x) + g(x);
とした場合、f(x)とg(x)の関数呼び出しで
どちらが先になるのかは未定義ってこと?
とした場合、f(x)とg(x)の関数呼び出しで
どちらが先になるのかは未定義ってこと?
64デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/16(火) 03:27:48.17ID:lv7gi33v0 >>63
関数呼び出しの順序の問題ではなくて、インクリメント演算子を自分自身に適用した場合の副作用の問題
f(x)の副作用としてg(x)の状態を変化させ、g(x)の副作用としてf(x)の状態を変化させるような場合、(f(x) + g(x))の評価は未定義ということ
関数呼び出しの順序の問題ではなくて、インクリメント演算子を自分自身に適用した場合の副作用の問題
f(x)の副作用としてg(x)の状態を変化させ、g(x)の副作用としてf(x)の状態を変化させるような場合、(f(x) + g(x))の評価は未定義ということ
65デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/16(火) 03:34:54.85ID:lv7gi33v0 「インクリメント演算子を自分自身に適用した場合」は説明不足だった
「同じ式の中でインクリメント演算子を自分自身に繰り返し適用した場合」の方が適切だった
「同じ式の中でインクリメント演算子を自分自身に繰り返し適用した場合」の方が適切だった
66デフォルトの名無しさん (ワッチョイ e33c-mRCJ)
2017/05/16(火) 04:11:10.64ID:8VX1hNny0 回答ありがとう
67デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/16(火) 12:24:07.64ID:hxKx6VJm0 C言語でVBA
68デフォルトの名無しさん (ワッチョイ b3a3-lo9r)
2017/05/16(火) 14:51:29.95ID:uP7i9rQE069デフォルトの名無しさん (ドコグロ MMa7-Ec/g)
2017/05/16(火) 18:02:14.83ID:9umlqZ68M a=a+++++aはエラーなの?
70デフォルトの名無しさん (ワッチョイ 8383-hEfH)
2017/05/16(火) 18:26:04.60ID:j2WgBIQo0 大学の講義でc言語やってるのですが、行き詰まってしまったので質問させていただきます
分割コンパイルしているのですが、全部書いてあります
コメント文で分割コンパイルの区切りを表しています
http://codepad.org/VplJG9tZ
これによって表示されるものを左に90度回転させたいのですが条件としてmain関数しかいじってはいけないというものがあります
2次元配列でいけるのかと思ったのですが、どうしたらいいかわからず手詰まりです
よろしくお願いします
分割コンパイルしているのですが、全部書いてあります
コメント文で分割コンパイルの区切りを表しています
http://codepad.org/VplJG9tZ
これによって表示されるものを左に90度回転させたいのですが条件としてmain関数しかいじってはいけないというものがあります
2次元配列でいけるのかと思ったのですが、どうしたらいいかわからず手詰まりです
よろしくお願いします
71デフォルトの名無しさん (ワッチョイ 8335-pPum)
2017/05/16(火) 18:28:00.76ID:7Qb0OzW/0 宿題スレにいけ
72デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/16(火) 19:46:46.04ID:GFMW00ds0 a = a----a;
ってコンパイルできないのね
a = a-- - -a;
にすればコンパイルはできるが
ってコンパイルできないのね
a = a-- - -a;
にすればコンパイルはできるが
73デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/16(火) 20:26:25.96ID:fevd2QwgM74デフォルトの名無しさん (ワッチョイ e33c-6Dbp)
2017/05/16(火) 20:48:15.67ID:8VX1hNny0 >>64 >>68
レスもらっておいて何ですが、やっぱりなんか引っ掛かってたので自分でも調べてみました
http://www.soum.co.jp/misc/tom/programmer/4.html#id9
https://mattn.kaoriya.net/software/lang/c/20130426110223.htm
あたりを読んで理解した気になりました
C言語テラコワス
レスもらっておいて何ですが、やっぱりなんか引っ掛かってたので自分でも調べてみました
http://www.soum.co.jp/misc/tom/programmer/4.html#id9
https://mattn.kaoriya.net/software/lang/c/20130426110223.htm
あたりを読んで理解した気になりました
C言語テラコワス
75デフォルトの名無しさん (ワッチョイ 8383-hEfH)
2017/05/16(火) 21:05:08.54ID:j2WgBIQo0 >>71
すみません宿題スレとはどこでしょうか
すみません宿題スレとはどこでしょうか
76デフォルトの名無しさん (ドコグロ MMa7-Ec/g)
2017/05/16(火) 21:41:19.00ID:9umlqZ68M >>74
問題はグローバル変数を使うからじゃないの?
問題はグローバル変数を使うからじゃないの?
77デフォルトの名無しさん (ペラペラ SD9f-5YWk)
2017/05/16(火) 22:17:40.57ID:Ag35s8j3D78デフォルトの名無しさん (スププ Sd9f-ZVjJ)
2017/05/16(火) 22:33:27.46ID:Slyc8zwMd http://d.hatena.ne.jp/THE_MIND/touch/20090205/1233845661
これ真似たけどExcel開かない
これ真似たけどExcel開かない
79デフォルトの名無しさん (スププ Sd9f-ZVjJ)
2017/05/16(火) 22:33:48.78ID:Slyc8zwMd あ、間違えましたすみません
80デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:02:13.38ID:OtKe4ieo0 わからなかったの間違えだろ
正直に言えよ無職無能QZ
正直に言えよ無職無能QZ
81デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:06:19.27ID:OtKe4ieo0 QZ怒りの他スレ進出ww
82デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:07:01.08ID:OtKe4ieo0 宿題スレはどこでしょうかw
おいQZこのスレまで宿題スレ化しようと企んでるのかよ
おいQZこのスレまで宿題スレ化しようと企んでるのかよ
83デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:09:40.58ID:OtKe4ieo0 最近の宿題スレで質問者演じてるやつと口調が見事に一致
84デフォルトの名無しさん (ワッチョイ c300-yCMP)
2017/05/16(火) 23:17:13.00ID:f+nf4d790 インクリメントが無い言語はクソ
85デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:18:04.22ID:OtKe4ieo0 QZ怒りの負け惜しみ発言開始
86デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:25:44.32ID:OtKe4ieo0 QZ怒りのC絶賛
87デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/16(火) 23:56:41.57ID:hxKx6VJm0 QZってなに
88デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 00:12:22.70ID:trROhyaD0 QZ怒りの自己紹介
89デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/17(水) 00:16:07.98ID:t3IXdrQL0 C言語って、機械に分かりやすい言語なんじゃないかな
90デフォルトの名無しさん (ブーイモ MMff-Z6j5)
2017/05/17(水) 00:34:30.07ID:Y+yL8XVsM 何をいまさら
91デフォルトの名無しさん (ワッチョイ cfc5-Ec/g)
2017/05/17(水) 06:54:51.29ID:wJf0VzTx0 >>87
エディタじゃね?
エディタじゃね?
92デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 11:14:31.02ID:trROhyaD0 QZ怒りのエディタ自慢
93デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:12:39.52ID:IVbqBIIG6 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int i, j, a; //int 整数
FILE *fout; //FILE ファイルの管理用
errno_t error;
if ((error = fopen_s(&fout, "output.txt", "w")) != 0){
printf(" エラー:ファイルの出力ができませんa \n");
exit(1);
}
a = 0;
for (i = 0; i<5; i++){
for (j = 0; j<10; j++){
a = a + 1;
fprintf_s(fout, "%d ", a);
}
fprintf_s(fout, "\n");
}
fclose(fout);
}
これにIf文使って
0 0 0 0 0 0 0 0 0 0
0 0 0 14 15 16 17 0 0 0
0 0 0 24 25 26 27 0 0 0
0 0 0 34 35 36 37 0 0 0
0 0 0 0 0 0 0 0 0 0
にするにはどうすればいいの?おしえてエロい人
#include <stdlib.h>
#include <math.h>
void main()
{
int i, j, a; //int 整数
FILE *fout; //FILE ファイルの管理用
errno_t error;
if ((error = fopen_s(&fout, "output.txt", "w")) != 0){
printf(" エラー:ファイルの出力ができませんa \n");
exit(1);
}
a = 0;
for (i = 0; i<5; i++){
for (j = 0; j<10; j++){
a = a + 1;
fprintf_s(fout, "%d ", a);
}
fprintf_s(fout, "\n");
}
fclose(fout);
}
これにIf文使って
0 0 0 0 0 0 0 0 0 0
0 0 0 14 15 16 17 0 0 0
0 0 0 24 25 26 27 0 0 0
0 0 0 34 35 36 37 0 0 0
0 0 0 0 0 0 0 0 0 0
にするにはどうすればいいの?おしえてエロい人
94デフォルトの名無しさん (ワッチョイ 838c-EaFd)
2017/05/17(水) 16:18:48.87ID:bdvqA1ry0 >>93
なかなか良い問題だな。大学生?
なかなか良い問題だな。大学生?
95デフォルトの名無しさん (ワッチョイ 23b9-8ulf)
2017/05/17(水) 16:23:04.39ID:se1pH3p/0 a = a + 1;
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
96デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:24:58.51ID:IVbqBIIG697デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/17(水) 16:32:34.86ID:t3IXdrQL0 if (4 <= (a % 10) && (a % 10) <= 7) printf("%d ", a);
else printf("%d ", 0);
else printf("%d ", 0);
98デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:35:45.80ID:smeqz8ba099デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:45:05.44ID:IVbqBIIG6100デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:47:44.21ID:smeqz8ba0101デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/17(水) 18:12:03.01ID:sXGKWmUcM102デフォルトの名無しさん (ワントンキン MM1f-QWrk)
2017/05/17(水) 18:52:23.54ID:81y1dPE2M 初心者にありがちな無意味なコメントだね
103デフォルトの名無しさん (JP 0H67-Z6j5)
2017/05/17(水) 19:04:10.40ID:+kjRc1QwH 各行コメントつけろという教育の成果
104デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 22:14:49.58ID:trROhyaD0 QZ怒りのクソコメント
105デフォルトの名無しさん (ワッチョイ 5bc3-2WpE)
2017/05/18(木) 06:55:44.12ID:Zs9E6Q4t0 俺なら条件部分は↓のように書くかな。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
106デフォルトの名無しさん (ドコグロ MM2f-gT+F)
2017/05/18(木) 09:33:34.39ID:9pl130wuM if(i==0&&j==9) printf(" 0¥n);
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
107デフォルトの名無しさん (ドコグロ MM62-J3Da)
2017/05/18(木) 12:47:56.59ID:Zif2rhHOM108デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/18(木) 12:52:54.23ID:Bcm8Uos60 数直線的な並べかたやね
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
109デフォルトの名無しさん (ワッチョイ d3af-gH2G)
2017/05/18(木) 20:50:09.48ID:V+1hCye70 >>104
森にお帰り
森にお帰り
110デフォルトの名無しさん (ワッチョイ ca60-THgW)
2017/05/18(木) 21:51:10.32ID:pFlTikPN0 int 変数 = 0;
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
111デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 08:23:29.86ID:/7Hxktnz0 if (10 <= a && a < 40 && 4 <= a % 10 && a % 10 <= 7) {
ほらすっきり。
ほらすっきり。
112デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 10:32:30.55ID:xPzfUm9BM if (a/10&3&&a%10&4) { ...
113デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 13:22:27.31ID:/7Hxktnz0114デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 15:12:35.10ID:xPzfUm9BM 悔しかったらもっと短くしてみ。
115デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:26:11.54ID:nQP05M7h0116デフォルトの名無しさん (ワッチョイ 6f79-rE0G)
2017/05/19(金) 15:34:27.30ID:7FyDjLQd0 WannaCryの裏で「駐禁報告書」メール21万件超が大量拡散、添付ファイルは
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
117デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 15:36:33.74ID:9d9oZwpEM >>112
それ14の判定結果からして偽じゃね?
それ14の判定結果からして偽じゃね?
118デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:46:59.07ID:nQP05M7h0 きっちり優先順位をケアすれば合ってるんでないの?
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
119デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:12:46.81ID:huxogVYI0 >>114
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
120デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:37:44.71ID:xPzfUm9BM え?
i と j が20兆でも動く必要があるの?
で、短くできた?
i と j が20兆でも動く必要があるの?
で、短くできた?
121デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:41:42.81ID:xPzfUm9BM122デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:48:56.31ID:huxogVYI0 絶望的にセンスが悪い
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
123デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 16:53:29.16ID:nQP05M7h0 i,j で分離すべきなのか a で分離すべきなのか元質問からは読み取れんし・・・
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
124デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 17:08:03.89ID:/7Hxktnz0125デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 17:10:52.81ID:9d9oZwpEM >>118
あ、そうか。確かに。
あ、そうか。確かに。
126デフォルトの名無しさん (ワッチョイ bfcd-cm4/)
2017/05/19(金) 18:23:28.28ID:fvUmn17Y0 >>122
何言ってんだコイツ
何言ってんだコイツ
127デフォルトの名無しさん (ドコグロ MM02-gT+F)
2017/05/19(金) 19:00:41.98ID:rnjvvj6OM まあまあ。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
128デフォルトの名無しさん (ブーイモ MM76-JCxV)
2017/05/19(金) 21:31:34.84ID:91iCt1N+M yagniかkissかってところ?
129デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/19(金) 21:48:07.18ID:dqcfAkCR0 C言語ってEclipseの補完が動かないのがデフォなの?
130デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/19(金) 22:17:08.26ID:ibFM4KQv0131デフォルトの名無しさん (ワッチョイ 636e-F2TF)
2017/05/19(金) 23:37:00.55ID:jsPxGdeJ0 Cは、ライブラリがすくない。おぼえることがすくない
132デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/20(土) 06:07:10.11ID:ZnY/c9+20 関数にinlineをつけて外部定義を無くせば
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- さっっっっっっっっっっっっっっっっっむ!?!!?!?!?!!??!??!???!
- 日本の歴代総理大臣で1番ダメだった奴
- 高市政権「中国依存の経済から脱却する」?「それはダメーッ!」
- 【急募】今!!夜更かししている全お前らに告ぐ!!!何時に寝るのか宣言するのだ!!!
- 4時だから窓から4回ちんこ出した
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
