[表示 : 全て 最新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

893 名前:デフォルトの名無しさん [2018/04/19(木) 12:39:01.79 ID:oHD1faOFa.net]
あまりに面倒ならハードウェアで回路追加して解決

894 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 22:41:42.50 ID:Uac+F3+Td.net]
あんまりそれすると、またハード屋に小言言われるぞ。

895 名前:デフォルトの名無しさん [2018/04/19(木) 23:07:31.74 ID:p3OUOmjs0.net]
int a[] = {0,1,2,3};
char b =0;
scanf("%d",&b);

printf("%d",a[b]);
知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど
色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?

896 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:17:20.36 ID:/9NYPZwG0.net]
>>864
自分で試してみた?

897 名前:デフォルトの名無しさん [2018/04/19(木) 23:21:55.11 ID:p3OUOmjs0.net]
>>865
100入れてみたら3が返ってきたw

898 名前: mailto:sage [2018/04/19(木) 23:22:54.38 ID:b+0fRBYw0.net]
>>864
>色んな数字入れても0になるとか
ならない
https://ideone.com/Itq7px

899 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:23:39.27 ID:XF7JHHHf0.net]
エンディアンによるような気もするがー

%d は int の大きさを持った器のポインタを要求してるのに
char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作

900 名前:デフォルトの名無しさん [2018/04/19(木) 23:29:53.26 ID:p3OUOmjs0.net]
これがエラーにならず動いてしまうという悪魔のCの動作か

901 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:30:32.30 ID:/9NYPZwG0.net]
char b[4] = {0};
scanf("%d",&b[0]);
printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);

これをVCとGCCで試してみた
結果は配列先頭要素に代入され、残りは0のままだった



902 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:31:48.87 ID:x2EYL8xQ0.net]
>>867
bの型がcharなのが

903 名前:フなんだからそこは間違えるなよ []
[ここ壊れてます]

904 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:18.23 ID:XF7JHHHf0.net]
>>870
入力で負の値を渡すと…

905 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:42.76 ID:lwH23MPfa.net]
intだからな

906 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:36:41.07 ID:/9NYPZwG0.net]
なるほど、入力値が小さいときは、
後ろの配列が変わってないかのように見えるだけって事か

907 名前: mailto:sage [2018/04/19(木) 23:38:11.10 ID:b+0fRBYw0.net]
>>868
char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?

908 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:38:53.72 ID:XF7JHHHf0.net]
>>874
そそ 0でフィルしてるから問題ないようにみえるけど、
0 以外でフィルしてやると副作用おこしてるのがわかるよ

909 名前: mailto:sage [2018/04/19(木) 23:39:18.81 ID:b+0fRBYw0.net]
>>871
あ!

910 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:40:18.78 ID:XF7JHHHf0.net]
>>875
printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?

911 名前: mailto:sage [2018/04/19(木) 23:46:08.02 ID:b+0fRBYw0.net]
>>878
やっと気が付いた…
>>877



912 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 00:50:00.05 ID:G/kLZxdya.net]
警告って出ないもん?

913 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 01:57:12.33 ID:wjKqEKEv0.net]
関数の引数はスタックサイズに丸められるよ

914 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 02:04:42.67 ID:G/kLZxdya.net]
ポインタだしなあ

915 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:13:59.91 ID:EDYH6GYd0.net]
>>880
GCC だと -Wall を指定すれば警告が出るね。

書式 %d に対して *char の引数 [-Wformat]
配列の添字が char 型 [-Wchar-subscripts]

916 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:51:33.68 ID:9tWrHk9l0.net]
>>881
この1行にアホが詰まってる
会話の内容も実際の動作も用語もわかってないっていう

917 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 07:58:37.73 ID:eEDtLY6e0.net]
アホな点をいくつ見つけられるかで
各自のアホ度を測定できるな

918 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:31:45.52 ID:OLFb+zqBd.net]
それがデバッグと言われる行為だろ?

919 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 10:21:13.71 ID:xd9k5+f1M.net]
脳がwormhole だらけなんでしょ

920 名前:デフォルトの名無しさん [2018/04/20(金) 14:21:22.42 ID:33OB1hDw0.net]
char *line;
scanf("%s", &line);//dogが入る
if(line=="dog")
{
printf("dogですよ");
}
これってなんでdogと合わないん?

921 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:26:31.37 ID:UQRLXIIQ0.net]
>>888
scanf で受けとる変数をchar型の配列にしましょう



922 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:30:58.92 ID:OLFb+zqBd.net]
>>888
line=="dog" という式は strcmp関数にしましょう

923 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:31:04.87 ID:JZAZQDTS0.net]
文字列の比較は == ではなく、strcmp 等の比較関数をつかいましょう

924 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:15:01.27 ID:uy6ZTS8Ap.net]
アドレスの一致を比較してるからじゃね?

925 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:17:13.71 ID:RdXrGqPUd.net]
C言語はプロ向きの言語
「とりあえず動かしてみる」
とかいう用途には向かない
入門書とかできちんと勉強しよう

926 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:20:02.90 ID:JZAZQDTS0.net]
>char *line;
>scanf("%s", &line);
この2行に色々な罠や誤りが仕込まれてるな。
Cで躓くであろう、ポインタと配列、文字と文字列周辺


(セキュリティや入力のオーバーランは考慮せず簡便なので書くと)
char line[256];
scanf("%s", line);

927 名前:デフォルトの名無しさん [2018/04/20(金) 17:03:59.70 ID:OzeM0EoQa.net]
>>888
どこから突っ込んでいいかわからない。
今は出先でスマホから見てるので書くのが面倒だが、多分明日までには他の人が沢山ツッコミを入れている事だろう。

928 名前:片山博文MZ mailto:sage [2018/04/20(金) 17:21:20.04 ID:PF4NyNv9d.net]
>>894
char line[64];
size_t len;
fgets(line, sizeof(line), stdin);
len = strlen(line);
if (len && line[len - 1] == '\n') line[len - 1] = 0;
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}

929 名前:片山博文MZ mailto:sage [2018/04/20(金) 17:28:09.55 ID:PF4NyNv9d.net]
char line[64];
fgets(line, sizeof(line), stdin);
strtok(line, "\n");
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}

930 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:00:02.24 ID:eEDtLY6e0.net]
char line[256];
scanf("%255s", line);

scanfを使えないアホが
scanfをdisるのを見る度に
嘲笑するのも勿体ない気分になる

931 名前:デフォルトの名無しさん [2018/04/20(金) 18:02:13.70 ID:rQE2Qud50.net]
これでもし入力条件が不明の長さで受け取らなきゃ行けなかったらどうすればいい?



932 名前: mailto:sage [2018/04/20(金) 18:08:34.85 ID:RP9oZBhW0.net]
>>898
それ 256 という定数を変えるとき、いちいちレテラルの中を手書きで直すんですか?
いけてないですね…

933 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:10:03.88 ID:wjKqEKEv0.net]
*ぐらい使えよ

934 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:10:57.05 ID:PF4NyNv9d.net]
std::getline
一文字ずつ読み込む

935 名前:デフォルトの名無しさん [2018/04/20(金) 18:40:42.36 ID:dyY1ZlsFa.net]
gccならgetline()

936 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:44:42.17 ID:PF4NyNv9d.net]
入力バッファにちょっとゴミが混じるだけでscanfは使えなくなる。
そんな役立たずは、業務では使うべきではない。使うなら、fgetsとsscanfの方がいい。
我が国のコンピューター教育は残念ながら、業務では役に立たない言語を教えている。

937 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 19:13:13.94 ID:2JMfU3z40.net]
むしろ余程プアな環境でない限り、業務でC言語は使うべきではない

938 名前: mailto:sage [2018/04/20(金) 19:54:49.61 ID:RP9oZBhW0.net]
>>905
かわりに何を使えばいいですか?

939 名前:デフォルトの名無しさん [2018/04/20(金) 19:55:43.39 .net]
>>906
Python

940 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:49:36.44 ID:9tWrHk9l0.net]
業務でこそC言語

941 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:55:22.00 ID:18ECoYTh0.net]
COBOLかVB



942 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:04:02.42 ID:qDS4Ifrca.net]
>>905
心配しなくても使われる所は限られてるよ。
OSそのものとかデバイスドライバとかな。
それも減りつつあるんじゃないかな。
まあしかし過去の資産がありすぎて捨てられないって感じか。
うまいこと互換性を保ちつつ次の段階へ行ければいいんだろうけどね。

943 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:08:14.53 ID:9tWrHk9l0.net]
MCUはほとんどがC言語
たまにC++
たまにアセンブラ

944 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 22:17:00.80 ID:DDZisBasM.net]
>>899
その受け取ったデータをどう使うかによる

945 名前:デフォルトの名無しさん [2018/04/21(土) 00:13:25.41 ID:Oxipuy330.net]
>>901
scanf() の * は・・・

946 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:47:37.05 ID:Ynju1Yzg.net]
hallo warld

947 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:55:01.78 ID:nJ9/ilUK0.net]
>>914
ばかに見えるから止めた方がいいと思うよ

948 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:07:34.81 ID:pETeS31u0.net]
こちらでどうぞ
https://mevius.5ch.net/test/read.cgi/tech/1427572389/

949 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:24:19.45 ID:pETeS31u0.net]
>>904
898の例でゴミが問題になるのか?

950 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:05:42.05 ID:WYiI1Hbl0.net]
入力された文字列(例えば10文字程度)を、
数字だけ*に変えるプログラムを作りたいと思ってるんですが、
どうもうまく行きません
どなたか簡単なコード書いてくれませんか

951 名前:デフォルトの名無しさん [2018/04/21(土) 15:31:16.54 .net]
>>918
数字は半角の「*」でいいの?
それとも全角の「*」?
それによって処理の複雑さが変わる



952 名前:デフォルトの名無しさん [2018/04/21(土) 15:32:52.02 .net]
ああ、あと入力された文字列にはマルチバイト文字が含まれるのか、1バイト文字なのかも明確にしとかないとな

953 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:17.96 ID:VeVDn114a.net]
>>918
お前さんが書いたコードをあげれば誰か添削くらいはしてくれるかもよ

954 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:18.46 ID:WYiI1Hbl0.net]
>>919
すいません、半角でお願いします

955 名前:デフォルトの名無しさん [2018/04/21(土) 15:45:37.64 .net]
入力部分には>>897を使わせてもらった

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

void mask_num(char *s)
{
char *c;
for (c = &s[0]; *c != '¥0'; c++)
{
if (*c > '0' && *c < '9') *c = '*';
}
}

int main()
{
char line[64];
fgets(line, sizeof(line), stdin);
strtok(line, "¥n");
mask_num(line);
printf("%s¥n", line);
return 0;
}

956 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:47:16.12 ID:FmyBtpFH0.net]
プログラムのコードの話してるのに全角は無いわ。
データの話ならむしろ文字コードとかまで考えなきゃならんがな。

957 名前:デフォルトの名無しさん [2018/04/21(土) 15:49:15.15 .net]
>>923
>if (*c > '0' && *c < '9') *c = '*';

if (*c >= '0' && *c <= '9') *c = '*';

だった

958 名前:デフォルトの名無しさん [2018/04/21(土) 15:51:21.42 .net]
>>918
を見て「*」を「*」に勝手に読みかえるようじゃ
受け入れ試験時で不具合が見つかって大幅手戻りが発生するぞ

959 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:07:01.70 ID:a/Xqi2VF0.net]
void mask_num(char *s)
{
 while (*s) {
  if (isdigit(*s)) *s = '*';
  s++;
 }
}

960 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:17:22.90 ID:Oxipuy330.net]
入力して変換して出力するだけでいいならこうかな。

#include <stdio.h>
#include <ctype.h>

int main()
{
 int c;

 while ((c = getchar()) != EOF)
  if (isdigit(c))
   putchar('*');
  else
   putchar(c);

 return 0;
}

961 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 17:23:05.22 ID:2bKzbSLP0.net]
>>926
しかしながら「数字を*に変えるプログラム組んどきましたよ」と言って
本当にASCIIの '*' でなくマルチバイトの "*" に変える処理だったら
発注側から「普通全角はないだろ、お前さん常識ないのか?」と
発言者にとって都合の良い「普通」「常識」の波状攻撃を受けるハメに。

その意味で >>919>>920 の態度は正しい。
世の中には自分のミスを認めたくない人もいるけどな。



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
どこからつっこんでいいのやら






[ 続きを読む ] / [ 携帯版 ]

前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