C言語なら俺たちに聞け パート0001

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2012/07/07(土) 17:15:26.10
なんでも聞きなよ
2012/09/10(月) 19:58:44.94
浮動小数点数
2012/09/10(月) 22:38:43.87
>>130
二番目の%dを%gに。
2012/09/10(月) 22:40:45.39
%p
2012/09/11(火) 10:48:55.09
int main(void)
if (suuti == 10)
printf("入力値は10です。\n");
else
printf("入力値は10ではありません。\n");


int main(void)
{
if (suuti == 10) {
printf("入力値は10です。\n");
} else {
printf("入力値は10ではありません。\n");
}
}
{}をつけるのと付けないのは何が違うんですか?
136デフォルトの名無しさん
垢版 |
2012/09/11(火) 11:18:45.10
void main(void)
{

int d,p[2],stay;
char buf[20];

pipe(p);

if((d=fork())==0){close(p[1]);}

}

これどういうプログラムですか?
forkとpipeっていう関数見た事なくて.....
2012/09/11(火) 16:59:59.44
フォークのように2つのプロセスに分裂する。 ─⊂
親プロセスと子プロセス。

両端に読み取りと書き込みの口があるパイプを作る。 ─

フォークより前に作ったパイプは親プロセスと子プロセスで共有される。
2つのプロセスはパイプを通してデータをやり取りできる。プロセス間通信。

これくらい書いておけば自分でググれるだろ?
2012/09/11(火) 17:01:17.67
>>135
分からないような初心者なら付けておけ
139デフォルトの名無しさん
垢版 |
2012/09/15(土) 02:55:52.48
文の終わりにはセミコロンを付けるって規則なのに、なんでwhile文などの{ }の後には付かないの?
といいながらもdowhile文の最後には付く。なんて一貫性のない言語なんだろう。
2012/09/15(土) 03:50:54.34
文とブロックの区別がつかないお子様なら、{ }の後にもセミコロン付ければいいじゃん
2012/09/15(土) 16:36:20.42
セミコロンを文の先頭に付けてもいいし
セミコロンばかりずらっと並べてもいい
142139
垢版 |
2012/09/16(日) 00:17:05.62
ブロックだって文だろ。
2012/09/16(日) 02:43:47.06
スレチかも知れんが、C言語検定の2級の問題見たけんだけど、
これ本当にプロが作ってるのか?
例えばさ
(4)C言語では,変数名がABC とabc のように大文字と小文字の違いだけなら,同じ
 変数として識別される。
って問題があるけど、こんな問題出して意味あるのか?
普通にプログラミングしてたら、まずこんなふうに被る変数名なんて絶対に付けないだろ。
他にもこんな感じの問題がいっぱいあるんだけど、過剰反応してる俺がおかしいのか?
2012/09/16(日) 06:22:36.94
え?
2012/09/16(日) 07:45:17.68
お前が書くような小規模なゴミプログラムだとそうかもしれないが
2012/09/19(水) 12:42:00.44
>>143
プログラミングの作法は置いといて、
言語そのものにどれだけ精通してるかの試験なんだろ。
C言語検定なんだから。
2012/09/23(日) 19:42:52.26
Javaの試験で「正しいmain()はどれ」って問題があったの思い出した
引数名が正しいのは型がおかしくて、型が合ってるのは引数名が違うんだが
当然ながら型が合ってるほうが正解という問題だった
2012/09/23(日) 21:30:48.25
問題として正しいのは、作法とかじゃなくて仕様。
149デフォルトの名無しさん
垢版 |
2012/09/30(日) 16:20:40.53
ふーん
2012/10/10(水) 11:18:53.67
#include <stdio.h>

int main(void)
{
int age;
printf("年齢:");
scanf("%d",&age);
if (age <= 3) {
printf("幼児:無料\n");
} else if (age <= 12) {
printf("子供:250円\n");
} else {
printf("大人:400円\n");
}
return 0;
}
else if 文がよくわかりません・・・
どうして if をつけるんですか?
2012/10/10(水) 11:34:31.34
本来else ifという構文はない。
if (condA) {
  procA;
} else {
  if (condB) {
    procB;
  } else {
  procMisc;
}
と書くところを便宜上、
if (condA) {
  procA;
} else if (condB) {
  procB;
} else {
  procMisc;
}
と書いているに過ぎない。
2012/10/10(水) 18:29:45.17
>>151
括弧の個数が違う
2012/10/10(水) 19:12:47.46
>>152
elseの後に続く文がひとつである場合、{ } は省略することが出来る。
2012/10/10(水) 19:19:45.49
>>151
開き括弧が4
閉じ括弧が3
2012/10/10(水) 21:09:30.94
>>151
前段のprocMisc;の後に閉じ括弧。
2012/10/10(水) 22:33:51.19
インデントしろよ
2012/10/16(火) 11:14:09.67
第23回高専プログラミングコンテストで宇部高専が優勝。勝因は「人力で数えた」と判明し話題に
http://engawa.2ch.net/test/read.cgi/poverty/1350194313/

これサイコロの判定ってどうやればいいの?
答え知ってる人いない?
2012/10/16(火) 21:19:02.08
> 第23回高専プログラミングコンテストで宇部高専が優勝。勝因は「人力で数えた」と判明し話題に

> 競技概要
http://www.procon.gr.jp/uploads/procon23/Apply23.pdf

> 上位陣がすべてクリックでサイコロの数が入力出来るカウンタを作った模様
> 人力が優勝するのは2年ぶり2回目

> 1位「人力で数えた」
> 2位「判定できなくて経験で入力した」
> 3位「1位と同じです」
> 4位「1位と同じです」
> 5位「会場でプログラムキツイわ」
> 6位「1位と(ry」

> 2010 運営「手動で優勝とは、なんと情けない!厳しくしよう!!」
> ↓
> 2012 学生「難しすぎwww 手動するしか無いだろww」 → 決勝がほぼ全員手動 → 運営「\(^o^)/」 
2012/10/16(火) 21:24:04.97
スレが落ちてたのでgoogleのキャッシュでざっと読んだけど
主催側は何を期待したんだろうな
この距離だと画像解析もきついだろう
https://twitter.com/KosenProcon/status/257336534808793088/photo/1/large ;
2012/10/16(火) 21:24:59.53
https://twitter.com/KosenProcon/status/257336534808793088/photo/1/large
2012/10/17(水) 03:07:05.56
鏡をおくとかイジメ以外のなにものでもない
運営側/出題者は自分ができるものを出してくれ
162デフォルトの名無しさん
垢版 |
2012/10/23(火) 19:29:40.88
え?
163デフォルトの名無しさん
垢版 |
2012/10/23(火) 22:07:51.96
背中がかゆいよ〜
2012/10/23(火) 22:37:07.60
ここ?
2012/10/23(火) 22:38:02.32
もちろんここだよ
166デフォルトの名無しさん
垢版 |
2012/10/27(土) 16:28:53.57
質問来ないけどどうなってるんだろう
2012/10/27(土) 23:18:10.77
洋ナシ
2012/10/27(土) 23:41:21.91
atexit()は、main()の最初にかくべきでしょうか
それとも、プログラムのどこでかいても有効ですか
169片山博文MZボット ◆0lBZNi.Q7evd
垢版 |
2012/10/28(日) 00:07:21.37
>>168 どこでもいい
2012/10/28(日) 00:27:52.32
atexitする前に後処理残してexitしちゃうおバカさんでなければ
2012/10/28(日) 04:07:37.28
atexitを取り消す(pop?)方法はありませんか?
172片山博文MZボット ◆0lBZNi.Q7evd
垢版 |
2012/10/28(日) 04:31:00.05
>>171 フラグ変数を使え
2012/12/23(日) 13:38:36.42
プログラム覚えれば、映画みたいにブラインドタッチできますか?
2012/12/23(日) 18:20:36.48
できない奴はなにやったってできない
2012/12/24(月) 01:36:35.55
>>173
ゲイツがブラインドタッチできないのは有名な話。
普通はタイピングに慣れてくると自然に楽な姿勢になってホームポジションが維持されるようになるけど、
直接にはプログラミングの技能との関連はなくて、まぁ、要するに個人差があるのでなんともいえない。
2012/12/24(月) 09:04:37.62
キーボードを使わないプログラミングもある
2012/12/24(月) 15:59:58.90
これのことですね。
http://d.hatena.ne.jp/gongoZ/20110514/1305372647
2012/12/29(土) 17:43:37.06
オヌヌメのコンパイラを教えてください
IDE以外でお願いします
ちなみにwinです
2012/12/29(土) 19:04:42.15
>>178
gcc (MinGW)
2012/12/29(土) 20:48:24.91
LSI-C試食版
2012/12/29(土) 22:45:22.68
>180だけはやめておけ。
2012/12/29(土) 23:01:30.00
対案なしでケチ付けるのが好きだな
2012/12/30(日) 09:48:55.16
C99 非対応はさすがにもう古すぎるだろう。
2013/01/04(金) 17:34:52.69
まあ今ならIDE付きが良けりゃVC Express、コマンドラインやUnix系ならgccでいいやな
2013/01/04(金) 17:54:34.03
clang‥‥
2013/01/04(金) 18:46:07.53
全くわからん
187デフォルトの名無しさん
垢版 |
2013/01/14(月) 19:56:05.08
え?
2013/01/14(月) 22:36:33.80
馬鹿には分からん
2013/01/19(土) 22:03:06.79
馬鹿には分clang
2013/01/19(土) 23:03:35.94
さっPerlぃ分からん
2013/01/20(日) 13:47:00.58
>>173
逆にブラジャータッチが遠くなる
2013/01/20(日) 13:50:56.44
などと下着泥棒が申しております
193デフォルトの名無しさん
垢版 |
2013/01/25(金) 15:36:03.10
半角英数字5文字の文字列を格納可能な、文字型配列の要素数は最低限何個必要か?
194デフォルトの名無しさん
垢版 |
2013/01/25(金) 15:38:27.76
3行×2列の整数型の2次元配列matrix_dataに関して、

matrix_data[2][0] は、matrix_data[0][0]を1番目の要素とすると、計算機のメモリ上では、何番目の要素となるか数字で答えよ。
2013/01/25(金) 15:42:02.66
クイズスレ
2013/01/25(金) 16:05:47.57
いつから宿題スレに?
2013/01/25(金) 16:10:37.52
>>193
>>194
ゴミ
2013/01/25(金) 18:17:33.81
超暇な俺が真面目に答えてやるよ

>>193
文字列型があればよいので文字型配列は不要
>>194
アーキテクチャと実装言語により異なる
2013/01/25(金) 18:36:21.94
>>198
ここはC言語スレ。
2013/01/25(金) 18:59:21.38
193はcharを8bit文字コードをUTF32と仮定して最低20個だな
2013/01/27(日) 09:10:00.24
>>193
「半角英数字」って書体の話か? どれだけ必要かなんて実装次第だろ。
2013/01/27(日) 09:14:17.05
>>201
ゴミ
2013/01/27(日) 09:59:04.73
例えば文字列「123ABC$!&00字」というのは、良く使うと思われるエンコードで16進表記にすると
 ・SHIFT-JIS  : 31 32 33 41 42 43 24 21 26 30 30 8E 9A
 ・CP932    : 31 32 33 41 42 43 24 21 26 30 30 8E 9A
 ・ISO-2022-JP : 31 32 33 41 42 43 24 21 26 30 30 1B 24 42 3B 7A 1B 28 42
 ・EUC-JP   : 31 32 33 41 42 43 24 21 26 30 30 BB FA
 ・UTF-8    : 31 32 33 41 42 43 24 21 26 30 30 E5 AD 97
 ・UTF-7    : 31 32 33 41 42 43 2B 41 43 51 41 49 51 41 6D 2D 30 30 2B 57 31 63
なので、半角英数は1byteで良いのかな。
(「試した範囲ではこうでした」の域を出ないけど…)

UTF-7だと半角記号は厄介ですね。単独だと
 0 = 30
 $ = 2B 41 43 51
 ! = 2B 41 43 45
 & = 2B 41 43 59
 0 = 30
だし、並ぶと
 0$!&0 = 30 2B 41 43 51 41 49 51 41 6D 2D 30
しかも
 0$$$$$0 = 30 2B 41 43 51 41 4A 41 41 6B 41 43 51 41 4A 41 2D 30
2013/01/27(日) 10:04:33.40
>>203
ゴミ
2013/01/27(日) 10:15:01.75
>>203
「半角」というのは文字の形を表現している言葉に過ぎないので、
書体によっては何でも半角になり得る。
http://opentype.jp/hankakufont.htm

かつて1バイト文字を半角で表示していた習慣から混同されているが、
半角文字に対応する文字コードのサイズは決定できない。
2013/01/27(日) 10:22:10.52
2バイト半角を君は知っているか
2013/01/27(日) 10:27:37.33
>>205
ここのスレタイからして、>>193は書体に関わる質問ではないと思うんだが
2013/01/27(日) 10:30:15.76
全角文字が生まれるまでは半角文字など存在しなかったのであるよ
半角文字というのは全角に対応してそう呼ばれているだけ煮すぎない
2013/01/27(日) 10:31:47.91
>かつて1バイト文字を半角で表示していた習慣から

この認識は間違いなので新ためるように
2013/01/27(日) 10:33:14.04
>かつて1バイト文字を半角で表示していた習慣から

まるで今は1バイト文字を半角で表示していないかのような言い草だ罠。
2013/01/27(日) 10:34:07.73
半角 全角の歴史は組版にまで遡るのであるのである
2013/01/27(日) 14:02:43.09
おれが村田だ
2013/01/27(日) 15:07:39.38
南ハルオでございます
2013/01/28(月) 08:53:39.87
そうか。
2013/01/28(月) 10:36:55.73
>>213
みなみけwww
2013/01/28(月) 10:39:36.02
>>208
煮すぎるとどうなるの
2013/01/29(火) 04:14:52.66
釘でバナナが打てます
2013/01/29(火) 10:39:43.30
打てるけど打った結果はどうなるの?
2013/01/29(火) 11:01:10.36
バナナが釘に刺さります
2013/01/29(火) 11:42:01.16
そんなバナn
2013/03/17(日) 21:19:04.67
まだぺーぺーなんだけど、ちょっと教えてほしい!

printf("0x%02x〜
の"02x"って何?
いまいちわかんないんだ
0xは16進数の表記とはわかるんだけど…
2013/03/17(日) 22:27:09.59
>>221
%02x でひとまとめの指定。
printf に渡している次の整数ひとつを十六進数二桁 (二桁に満たない場合は上位桁をゼロ詰め) で表示せよということ。
その場合の 0x は 0x と表示するだけ。
2013/03/18(月) 22:19:13.22
>>222
おお!そーゆーことか!
らくらく突破C言語テキスト読んでるんだけどさっぱりだったんだわ(´・ω・`)

ありがと!
2013/03/19(火) 02:53:50.00
規格の書式指定子に関する部分を抜き出してみた。
http://www.rupan.net/uploader/info/1363629157
2013/03/19(火) 06:41:00.58
#include <stdio.h>
#include <time.h>
int main(int ac, char **av)
{
  time_t time;
  struct tm t, *l;
  t.tm_year = 2013 - 1900;
  t.tm_mon = 3 - 1;
  t.tm_mday = 18;
  t.tm_hour = 8;
  t.tm_min = 0;
  t.tm_sec = 0;
  time = mktime(&t);
  printf("%ld\n", time);
  l = localtime(&time);
  printf("%d-%02d-%02d %02d:%02d:%02d\n",
    l->tm_year + 1900, l->tm_mon + 1, l->tm_mday,
    l->tm_hour, l->tm_min, l->tm_sec);
  return 0;
}
これで 1363557600 2013-03-18 07:00:00 という結果になるのですが、
なぜ一時間ずれるのでしょう?
2013/03/19(火) 07:56:50.49
t.tm_isdst = 0;
を入れればいいんじゃね?
俺の環境では再現しないからわかんないけど。
2013/03/19(火) 08:39:53.04
UTC で作成した時刻を現地時刻に変換したからじゃね?
調べてないけど。
228デフォルトの名無しさん
垢版 |
2013/03/19(火) 13:34:37.73
>>225
全部大文字で書け!

#INCLUDE <STDIO.H>
#INCLUDE <TIME.H>
INT MAIN(INT AC, CHAR **AV)
{
TIME_T TIME;
STRUCT TM T, *L;
T.TM_YEAR = 2013 - 1900;
T.TM_MON = 3 - 1;
T.TM_MDAY = 18;
T.TM_HOUR = 8;
T.TM_MIN = 0;
T.TM_SEC = 0;
TIME = MKTIME(&T);
PRINTF("%LD\N", TIME);
L = LOCALTIME(&TIME);
PRINTF("%D-%02D-%02D %02D:%02D:%02D\N",
L->TM_YEAR + 1900, L->TM_MON + 1, L->TM_MDAY,
L->TM_HOUR, L->TM_MIN, L->TM_SEC);
RETURN 0;
}
229デフォルトの名無しさん
垢版 |
2013/03/19(火) 13:35:42.53
ん〜、ホント、汚らしいプログラムだなw

馬鹿かと思ったw
2013/04/02(火) 11:42:35.71
>>228
全角で書け!
2013/04/03(水) 00:57:33.02
だが断る
232デフォルトの名無しさん
垢版 |
2013/04/03(水) 19:42:10.51
すいません。プログラム初心者です
質問、よろしいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況