C言語なら俺に聞け(入門編)Part 76

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C言語の*入門者*向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 75
http://hibari.2ch.net/test/read.cgi/tech/1292682816/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 145代目
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
2Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 16:25:04
天才Perlハッカー&天才釣師ですよろしく
3デフォルトの名無しさん:2011/01/06(木) 17:56:37
C言語の文法定義で ANSI Cでは 代入式の定義が
assignment_expression
: conditional_expression
| unary_expression assignment_operator assignment_expression
;
となっていますが、2番目の unary_expression まで飛んでしまうのは
*abc = 123; などはじめて左辺値として評価されるのが、unary_expression
だからでしょうか? C++ では
assignment_expression
: conditional_expression
| logical-OR-expression assignment_operator assignment_expression
     | 送出式
;
となっていると思いますが、何か違いに意味があるのでしょうか?

 

4Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 18:10:04
あ、それっすか
わかりますよ^^
5デフォルトの名無しさん:2011/01/06(木) 19:21:20
>>1
6デフォルトの名無しさん:2011/01/06(木) 21:10:21
入力クロックをFPGAボード上の6MHzクロックとして、これを6*10^6カウンタで1秒クロック変換する。
この1秒クロックでアキュムレータを駆動する。

このプログラムを教えてください。
7デフォルトの名無しさん:2011/01/06(木) 23:02:48
 
8デフォルトの名無しさん:2011/01/06(木) 23:36:27
自動変数int a[5][4]を宣言するより
頭にstaticつけて静的変数として扱ったほうが安全?とかきくけどそどうしてですか
スタック領域が小さいから?
9デフォルトの名無しさん:2011/01/06(木) 23:39:20
聞いたんだろ?言った奴がいるんだろ?そいつに聞けよ。
10デフォルトの名無しさん:2011/01/06(木) 23:44:26
きいたことがある。誰がいったかは記憶にない。
11デフォルトの名無しさん:2011/01/06(木) 23:48:50
>>8
安全かといわれると、はて、どうだろうか?
バッファオーバーランを引き起こす悪いコードを書いてしまっても、アーキテクチャによっては、被害がちょっとだけましになるかもしれません。
12デフォルトの名無しさん:2011/01/06(木) 23:52:00
なぜですか?
13デフォルトの名無しさん:2011/01/07(金) 00:00:48
autoの配列自体は普通に使われてるしな。
危険だからstaticにするとか、言った本人に理由を聞かないと分からない。
14デフォルトの名無しさん:2011/01/07(金) 00:05:38
あなたに聞いてません。
15デフォルトの名無しさん:2011/01/07(金) 00:14:34
staticつけると勝手に初期化してくれる
autoの場合うっかり不定値を参照することもなくはない
16デフォルトの名無しさん:2011/01/07(金) 00:42:21
使うのが一回限りなら確かにそうかもしれないが
二回目以降は前回の結果が残っているのだからあんまり変わらないんじゃないか?
17デフォルトの名無しさん:2011/01/07(金) 05:31:48
安全?じゃなくて、
   Cがよくわかりません
と言ってるようなもんでしょ
18デフォルトの名無しさん:2011/01/07(金) 05:38:15
// >>8

// いちども関数uuu()を実行してないのに、なぜかuuu()が実行される不思議コード。
// ubuntu10.10(32bit) gcc4.4.5 で確認。 他のコンパイラだと上手くいかないかもしれない。未確認。

#include <stdio.h>
#include <stdlib.h>



// 不思議コード部分
void uuu(void) {puts("hello git!");}
unsigned int _______i;



// ---------- 元のプログラム ----------
void aaa(void) {
unsigned long a[4];
puts("hello world!");


_______i=42; while(_______i-->0){a[_______i]=uuu;} // 不思議を挿入ぅ〜〜♪
}

void main() {aaa();}



// aaa() の 配列a に、uuu()の ”アドレスを代入しただけ” なのに… なぜかuuu()が実行されてしまう。ろまんちっくぅ〜〜☆(^_^/
19デフォルトの名無しさん:2011/01/07(金) 05:49:27
だせぇコード
20デフォルトの名無しさん:2011/01/07(金) 05:59:15
>>18
ばかばかばーーーか
21デフォルトの名無しさん:2011/01/07(金) 14:56:31
C言語勉強したいです、
初心者が無料で使えるので、エディタとかの開発環境でいいのありませんでしょうか?
22デフォルトの名無しさん:2011/01/07(金) 14:59:03
expressじゃだめ?
23デフォルトの名無しさん:2011/01/07(金) 15:05:23
>>22
visual c++ expressのことでしょうか?
ダウンロードしてみたけど使い方わからなくて挫折してた,,orz
使い方覚えてこれでやってみます、ありがとお。
24デフォルトの名無しさん:2011/01/07(金) 15:06:20
>>23
じゃぁcodepadでいいんじゃない?
25デフォルトの名無しさん:2011/01/07(金) 15:31:01
c言語でカーナビ作ってください
26デフォルトの名無しさん:2011/01/07(金) 15:38:57
Cpad+bccが初心者にはお手軽じゃねーかな
bccがちょっとアレだけど
27デフォルトの名無しさん:2011/01/07(金) 17:08:19
Linux入れればいいのに
28デフォルトの名無しさん:2011/01/07(金) 18:30:30
visual c++ express で下のコード打ってみたら、

error C4430: 型指定子がありません - int と仮定しました。
メモ: C++ は int を既定値としてサポートしていません

のようなエラーが出たんですが、なんか間違えてるかな?
教えていただいた、codepadていうブラウザで打つやつやってみたらちゃんと実行しました、
visual c++ express の使い方悪いのかな?

#include<stdio.h>

main()
{
int a ;

a=0;

printf("aの値は%dです",a);
}
29デフォルトの名無しさん:2011/01/07(金) 18:38:25
int main(void)
30デフォルトの名無しさん:2011/01/07(金) 18:49:58
int main()
でもいいの?
31デフォルトの名無しさん:2011/01/07(金) 18:52:04
ありがとうございます。
int main(void)にしたら、エラーでなくなりました、
でも、一瞬コマンドプロンプト見たいのが現れたけど、
すぐ消えて実行結果が出てこない・・
32デフォルトの名無しさん:2011/01/07(金) 18:54:34
system("pause");
33デフォルトの名無しさん:2011/01/07(金) 19:09:59
>>18
スタックに詰まれたmain関数への戻りアドレス(次のプログラムカウンタ)
が uuu() 関数のアドレスに置き換わっている。バッファオーバーランの例
こういうことがstatic変数ではおきないだけ(他の静的変数の領域が
上書きされる)
34デフォルトの名無しさん:2011/01/07(金) 20:51:16
Ctrl+F5で実行したら結果が表示されたけど、
計算結果をメッセージボックスに表示させるだけでも、
WinAPIとか使わないとできないんだよね、
挫折しそうだけど、ここであきらめたら一生プログラムできない、
APIも勉強しないとだめかなぁ
35デフォルトの名無しさん:2011/01/07(金) 22:23:14
ここはC言語スレ
場違いな事もわからない奴は消えてくれないかな
36デフォルトの名無しさん:2011/01/08(土) 00:05:47
VC++ のビルドシステムは、コンパイルの結果を一時的に、アセンブラテキスト
に出力しているのでしょうか?(gcc と同様に)
アセンブラ出力している場合は、どのアセンブラを起動しているのでしょうか?
ml コマンド version 9でアセンブルしようとすると、大きな静的局所変数(500kbyte程度)
が存在するとアセンブルが終了しないようですが?なにか制限があるのでしょうか?
(cl コマンドでビルドすると正常に終了します。)
37デフォルトの名無しさん:2011/01/08(土) 00:56:23
VCはいきなり、objファイルを吐きますです。
38デフォルトの名無しさん:2011/01/08(土) 01:10:40
昔の cl はパイプで呼んだり、中間ファイルからの別プロセス起動してた
今はどうか知らない

SSE 非対応な VC6 でインラインアセンブラ可能にする Processor Pack
の中身ってlink.exe cl.exe 以外になんか変えてたような(MASM?) どうだっけなぁ…

VC++ といっても他のバージョンでは事情が違うかもしんない
39デフォルトの名無しさん:2011/01/08(土) 02:07:07
>>37 ありがとうございます。
 ということは、 cl の /FAs オプションでアセンブラテキストを吐くのは
 単なるサービス機能ということなのでしょうか?
 ml コマンドの制限でも何かご存知でしたらご教示願えませんか?
40デフォルトの名無しさん:2011/01/08(土) 02:21:44
>>39
そのとおり。
随分前に根本的な問題でMASMではアセンブル出来ないテキスト吐いてたぞ。
一時期直った気もするが再発したんじゃねーの?
41デフォルトの名無しさん:2011/01/08(土) 08:57:09
42デフォルトの名無しさん:2011/01/08(土) 10:14:02
質問です。
整数の範囲をチェックするには、
0 < a && a < 100
とか書けば良いと思いますが、これをビット演算等でやる方法はあるでしょうか?
43デフォルトの名無しさん:2011/01/08(土) 10:43:01
>>42
ビット演算のみなら特定の値の場合しか無理だよ。

例えば0〜7の場合、
(a & ~0x07) == 0
が成り立てばよい。

if使って良いなら任意の値で可能。
44デフォルトの名無しさん:2011/01/08(土) 10:47:21
コンパイラの最適化にまかせておけば良いようにやってくれる
45デフォルトの名無しさん:2011/01/08(土) 10:49:56
初心者にありがちな何でもビット演算使ってしまいたくなる病だな
大抵コンパイラがどうとでもやってくれる
46デフォルトの名無しさん:2011/01/08(土) 11:01:11
数字を三つ入力してそれを計算させたいのですが、
エラーがでてうまく計算してくれません、やり方間違ってるでしょうか?

#include<stdio.h>
#include <math.h>

int main()
{

double a,b,c,d;

printf("最初の値を入力してください\n");
scanf("%f" , &a);

printf("2番目の値を入力してください\n");
scanf("%f" , &b);

    printf("三番目の値を入力してください\n");
scanf("%f" , &c);

d=a+b+c;

printf("dの値は%fです",d);
}
47デフォルトの名無しさん:2011/01/08(土) 11:21:14
>>46
コンパイルエラーは出ないと思うけど…
scanfの%fを%lfに変えてみ
48デフォルトの名無しさん:2011/01/08(土) 11:23:01
>最初
>2番目
>三番目

イライラする!アホか!
49デフォルトの名無しさん:2011/01/08(土) 11:40:24
>>47
おお、できました!
%lfのlつけるのは魔法なのかな、
昨日見た千と千尋の神隠しみたいです。
>>48
イライラしてもいいことないお
50デフォルトの名無しさん:2011/01/08(土) 11:47:49
scanf では
%f は float で
%lf は double というそれだけのこと

printf では両方 %f だけど
51デフォルトの名無しさん:2011/01/08(土) 11:49:02
最初
2番目
三番目
よっつ目
5242:2011/01/08(土) 12:23:49
>>43
ありがとうございます。
ビット演算等はあまり詳しくはないため質問させて貰いました。
なんとなく特定の条件でないと無理そうかなとは思いましたが、無理なのですね。
53デフォルトの名無しさん:2011/01/08(土) 15:27:22
いえいえ
54デフォルトの名無しさん:2011/01/08(土) 15:34:02
そういえばビット演算なんて使ったことがないんだけどやっぱり覚えないとダメかな。例えばどんな時に使うんでしょうか?
55デフォルトの名無しさん:2011/01/08(土) 15:38:31
フラグの組み合わせ (論理和 | で連結してくの)
56デフォルトの名無しさん:2011/01/08(土) 15:46:00
>>54
ビット演算は、数値演算の代わりに使うときと、ビットの集まりとして使うときの2つの使い方がある。
数値演算の代わりに使うときは、1ビット左にシフトすると2倍になる、右にシフトすると半分になる、2の累乗をその-1で&すると剰余になる、等
10 << 1 = 20 (10 * 2)
10 >> 1 = 5 (10 / 2)
10 & 7 = 2 (10 % 8)
ビットの集まりとして使うときは、その数値としての面は無視する。0101が5だからといって、その5という数値には何の意味もない。
特定のビットを1にしたり0にしたり、1か0か調べたりする。
bool変数を32個持つよりint変数1個の方がコンパクトだというだけの理由でそのように使う。
57デフォルトの名無しさん:2011/01/08(土) 15:46:44
画像処理とか
58デフォルトの名無しさん:2011/01/08(土) 16:00:09
>>55-57
詳しい解説どうもありがとう。
まぁ言われてもイマイチ有効性が分からないのはまだまだ理解出来てない証拠なんだろうけどとりあえず勉強した方が良いですね。。
59デフォルトの名無しさん:2011/01/08(土) 16:30:55
有効性か。
ビット演算の何が嬉しいかというと、別に大したことじゃなくて、ほんのささいなことだ。
乗除算よりビット演算の方が速い。(同じことをするなら速い方がいいだろ?)
bool変数32個よりint1個の方が使うメモリが少ない。(同じことをするならメモリ少ない方がいいだろ?)
これらに価値を感じないなら使わなくても別に何も困らないが、他の人は価値を感じて使いたがるかもしれないから、
人のコードを読めるように勉強はしておいた方がいい。 人の作ったライブラリを使うこともあるだろうし。
60デフォルトの名無しさん:2011/01/08(土) 18:51:24
>>54
メモリ/リソースを節約するため
 大量のデータを処理する場合、int単位など贅沢なメモリの使い方ができず、必要なビット数に収めるのにビット演算を使う。
  →画像、動画、データ圧縮
 通信やハードウェアの設計はリソースを節約したものになっているので、処理にはビット演算が必要。
  →通信データの処理、ハードウェアレジスタのアクセス(ドライバ)
論理演算をするため
 ビット演算(論理演算)は当然ながら論理値の取り扱いに親和性が高いので、自然とビット演算を使う。
算術演算の代用
 すでに前の人が説明しているとおり。
61デフォルトの名無しさん:2011/01/08(土) 20:30:41
>>59-60
なるほどリソースの節約と算術演算する速度が速いんですね。
使用例もあげて詳しく説明してくれて本当にありがとうございました。
62デフォルトの名無しさん:2011/01/08(土) 20:57:12
C言語のとあるネットのソースで2行目の”{”と9行目の”}”
は何か意味があるのでしょうか?
初めて見たのですが

printf("文=[%s]\n", buf);
{
int i;
printf("文=[0x");
for ( i=0 ; i<len ; i++ ){
printf("%X", buf[i]);
}
printf("] (16進数)\n");
}
63デフォルトの名無しさん:2011/01/08(土) 21:00:34
ブロックでスコープを区切りたかっただけかな
6462:2011/01/08(土) 21:06:20
>>63
なるほど、ありがとうございます。


ところでこれって一般的なのでしょうか?
65デフォルトの名無しさん:2011/01/08(土) 21:08:16
俺はやらないが、やりたい人はいる。否定もしない
66デフォルトの名無しさん:2011/01/08(土) 21:18:14
>>64
おおそうだ、switc内のcase: break; 間に使う変数が
他のcase:とぶつかったので、ブロックスコープしたことがあった。
いや、ちょっと長いswitchだったからね。
67デフォルトの名無しさん:2011/01/08(土) 21:20:50
>>62
>>63 のいうように局所変数 i を for のイテレータとして使うことが慣用
 になっていて、かといって関数内で他に i を使うこともなかったので
 ここで便宜的に導入したのでは?
 あと、用途にもよるけどprintf("%X", buf[i]); → printf("%02X", buf[i]);
 として'\n','\t'も2桁で表示できるようにした方がいいと思う。

68デフォルトの名無しさん:2011/01/08(土) 21:22:10
>>66
今まで見たこと無かったせいか、ちょっと違和感がありましたが
便利そうですね。
69デフォルトの名無しさん:2011/01/08(土) 21:29:04
>>67
なるほど、勉強になりました。

でもこれってforループのブロックで宣言されれば分かり難いですね
下の場合はエラーになります。

 for(int j=0;j<100;j++)
 {
   int i;
   i=0;
 }
 printf("%d",i);
70デフォルトの名無しさん:2011/01/08(土) 21:31:17
switch の case 内だけで変数追加したい時なんかも

 switch (hode) {
  case xxx: { int i; ... } break;
 }

こういう感じ。

わざわざ外の先頭ブロックに戻って変数の追加の必要がないので
つらつらと思いつきつつ書き流す時は楽
71デフォルトの名無しさん:2011/01/08(土) 21:48:18
>>69
 for(int j=0;j<100;j++) としているので C++ でコンパイルしている?
 C, C++ でも同じですが、 i の有効範囲は for ブロックの最後の } で終りなので
 } の後では、 i は未定義状態またはより外部のスコープで定義された i です。 
72デフォルトの名無しさん:2011/01/08(土) 21:49:25
ダサイ
73デフォルトの名無しさん:2011/01/08(土) 21:51:44
>>71
説明不足ですみません。
C++ でコンパイルしています。
エラーはコンパイルエラーのことです。
i は未定義状態のエラーが出ました。
74デフォルトの名無しさん:2011/01/08(土) 23:15:20
↓サドルマン
75デフォルトの名無しさん:2011/01/09(日) 01:42:14
目が覚めるとサドルになっていた
76デフォルトの名無しさん:2011/01/09(日) 03:47:41
   ∧∧
  ヽ(・ω・)/ ズコー
 \(\ ノ
、ハ,、  ̄
77デフォルトの名無しさん:2011/01/09(日) 10:05:45
C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?
78デフォルトの名無しさん:2011/01/09(日) 10:45:24
>>77
>>60 で列挙しているような用途の設定・更新に使います。
79デフォルトの名無しさん:2011/01/09(日) 11:26:05
>>78
5年ROMれ
80デフォルトの名無しさん:2011/01/09(日) 11:34:11
>>74
>>79
サドルマン、5年ROMれ どういう意味、教えて
81デフォルトの名無しさん:2011/01/09(日) 11:51:08
>>62
bufは上で文字列として出力しているのでおそらくchar配列
となると printf("%02X", (unsigned char)buf[i]); とキャストしないとな
よくあるバグだ(処理系設定や使用状況によっては問題は無いが)

{ } は int i; の範囲を限定させたかったんだろうが、
printf("文=[0x"); は { } の外に出したので良いな
何か中途半端だ
82デフォルトの名無しさん:2011/01/09(日) 12:41:27
X書式指定ってunsigned charじゃないとダメなん?
83デフォルトの名無しさん:2011/01/09(日) 12:47:51
そんなことはない。
char buf[];
なら、符号拡張されるからでしょ
84デフォルトの名無しさん:2011/01/09(日) 13:08:35
for文の初期化で変数宣言できたら便利なんだけどね
C99だと出来るんだっけ?
85デフォルトの名無しさん:2011/01/09(日) 13:19:12
BASIC的な発想は好きじゃないな
86デフォルトの名無しさん:2011/01/09(日) 13:30:17
BASIC的ってforで変数宣言できるのが?
87デフォルトの名無しさん:2011/01/09(日) 13:35:03
static void 関数()

このstaticってどういう意味?
88デフォルトの名無しさん:2011/01/09(日) 13:35:42
その翻訳単位内でしか使いませんよ的な
89デフォルトの名無しさん:2011/01/09(日) 13:39:59
>>87
javaとかでいうprivate
90デフォルトの名無しさん:2011/01/09(日) 13:48:13
>>87
複数の c ファイルからなるプログラムで意味を持ちます。
static 宣言された関数は、その関数が書かれた .c ファイルに書かれている関数からしか呼び出すことができません。
91デフォルトの名無しさん:2011/01/09(日) 14:07:38
>>83
そう
符号付きだと判定され、... に渡す時に int に拡張され、
8桁とかで表示されちゃうの
charが符号なしな環境か
符号付きの値が入れられないならいいんだけどねえ
92デフォルトの名無しさん:2011/01/09(日) 15:36:33
テキストを読み込んで
そのテキストの中にある区切られた文字列から
ランダムにテキストの中身を表示させるようにできないですか
日本語がおかしくてすみません

----テキストの中身----
a,b,c,d,e,f,g,hello,y,j,k,l
----------------------

-プログラムの実行結果-
1回目
結果:a

2回目
結果:hello

3回目
結果:f

見たいな感じにできればいいです・・・
93デフォルトの名無しさん:2011/01/09(日) 15:51:51
できます。
94デフォルトの名無しさん:2011/01/09(日) 15:51:51
(strcmp(array[a],array[b]))

a,bはint型です
array[]で何してるんでしょうか?
95デフォルトの名無しさん:2011/01/09(日) 15:55:22
できます
96デフォルトの名無しさん:2011/01/09(日) 15:56:48
>>94
a番目の文字列とb番目の文字列を比べてる
97デフォルトの名無しさん:2011/01/09(日) 16:26:53
>>92
暇だからやっつけでやってみた
http://codepad.org/Am7DHA1v
98デフォルトの名無しさん:2011/01/09(日) 16:38:52
>>97
それRAND_MAXがintの最大値と同じ環境だったらおかしくなるんじゃないの?
99デフォルトの名無しさん:2011/01/09(日) 16:56:33
>>97
そうだねこれに変更しとくよ
((double)RAND_MAX + 1)
100デフォルトの名無しさん:2011/01/09(日) 17:02:39
rand()の下位ビットの周期が極端に短い処理系なんていまどき無いだろうから
rand()%n で十分だとは思うけど・・・
101デフォルトの名無しさん:2011/01/09(日) 17:03:27
RAND_MAX + 1.0の方が楽
102デフォルトの名無しさん:2011/01/09(日) 17:44:23
今VC++を使ってmysqlのデータベースに接続するプログラムをコンパイルしようとしてるのですが、mysql.hが存在しないとかでコンパイルできません
一応ぐぐってみたんですが、そのとおりにしてもエラー100個で強制終了とかでまともに動いてくれません。
プログラムは参考書のプログラムをCDからひらいてそのままコピペしたんで、間違いがあるわけがないので、どう考えてもコンパイル
の仕方が悪いとしか思えないです。
でも解決法が見つからなくて困ってます。どうすればいいでしょうか
103デフォルトの名無しさん:2011/01/09(日) 17:50:14
参考書のコピペでも動かないなんてよくある話だがな
104デフォルトの名無しさん:2011/01/09(日) 17:52:50
>>103
え、コンパイラーの問題じゃないかもなんですか。それだったら普通に困る・・・・
せめてmysqlのライブラリの登録の仕方さえわかればいいんですが、ここじゃスレチですか?
105デフォルトの名無しさん:2011/01/09(日) 17:57:31
どんなエラーないようなかも分からないし
100個もここに書きこまれたら困るけど
106デフォルトの名無しさん:2011/01/09(日) 18:05:39
>>105
たしかに情報が少なすぎましたね・・・
じゃああした代表的なエラーをここにさらしてみます。
お騒がせしてすいませんでした
107デフォルトの名無しさん:2011/01/09(日) 18:36:08
108デフォルトの名無しさん:2011/01/09(日) 18:58:52
>>104
まずはエラーメッセージで検索しましたか?
ほとんどはそれで解決すると思いますが
109デフォルトの名無しさん:2011/01/09(日) 20:10:35
さてはお前、サドルマンだな?
110デフォルトの名無しさん:2011/01/09(日) 20:14:02
はい
と言ったら信じますか?
111デフォルトの名無しさん:2011/01/09(日) 20:15:34
ロシヒカリでも食ってろよ屑
112デフォルトの名無しさん:2011/01/09(日) 20:17:19
C言語とO言語どっちがむずいっすか?
113デフォルトの名無しさん:2011/01/09(日) 20:22:21
S言語かな
114デフォルトの名無しさん:2011/01/09(日) 20:24:17
ほっほっ
115デフォルトの名無しさん:2011/01/09(日) 20:25:15
ふっほっ
116デフォルトの名無しさん:2011/01/09(日) 20:51:47
>>109
>>111
サドルマン、ロシヒカリ  何のたとえなの 教えて
 自分が屑でないと思っているならみんなにわかるように教えて
117デフォルトの名無しさん:2011/01/09(日) 21:09:35
mysql.hが存在しないっつーんなら存在しないんだろ
mysqlのライブラリを持ってきてないんだろ
118デフォルトの名無しさん:2011/01/09(日) 21:17:06
パスが通ってないんだろ
119デフォルトの名無しさん:2011/01/09(日) 21:53:02
>>116の精神はもう長くはもたないな
120デフォルトの名無しさん:2011/01/09(日) 21:58:45
お前らよりゆっくり実況の方が分かりやすいなwwwwwww
121デフォルトの名無しさん:2011/01/09(日) 22:01:55
>>120
ニホンゴでオーケー
122デフォルトの名無しさん:2011/01/09(日) 22:02:33
http://www9.plala.or.jp/sgwr-t/lib/strcmp.html
↑ネットでC言語の解説しているページ

strcmp(ABC, ABC) の結果:0
strcmp(ABC, ABD) の結果:-1
strcmp(ABC, B) の結果:-1    ← 文字数によらず、文字の大小関係で結果が決まる
strcmp(ABC, AAAA) の結果:1   ←

↑この実行結果だけでもわかりますがstrcmp(ABC, B)はなんでBのほうが大きいんですか?
123デフォルトの名無しさん:2011/01/09(日) 22:07:58
ABCの先頭のAとBを比べてるから
124デフォルトの名無しさん:2011/01/09(日) 22:13:06
strcmp(ABC, AAAA) の結果:1 これは>?
125デフォルトの名無しさん:2011/01/09(日) 22:18:34
少しは自分で考えろよ

一文字づつ比べていって、同じなら次の文字
違ってたら大小比較した結果が返るだけだろ
126デフォルトの名無しさん:2011/01/09(日) 22:20:13
先頭から1文字づつ取りだして異なった瞬間の大小を戻してるだけ

c1) c2)
A  A 一致
B  A c1 > c2 → 1 で戻り
C  A
\0  A
   \0
127デフォルトの名無しさん:2011/01/09(日) 22:24:47
辞書引いたことの無い人?
128デフォルトの名無しさん:2011/01/09(日) 22:36:57
Windows XP 以降のエクスプローラーのファイル名ソートと等価な比較が難しい…
単純な辞書順じゃないんだよね
129デフォルトの名無しさん:2011/01/09(日) 22:37:20
gcc で、

1ull << 65
の結果が 0 ではなく、
1ull << (65 % 64)
と解釈されて、結果が 2になります。

64bit以上のシフトは環境依存なのでしょうか?
130デフォルトの名無しさん:2011/01/09(日) 22:52:31
その型のビット幅以上のシフト量や負のシフト量は未定義です
131129:2011/01/09(日) 23:02:10
>>130
ありがとうございます。
132デフォルトの名無しさん:2011/01/09(日) 23:56:05
ファイルの中から
指定した行を出力するプログラムがほしいのですが
サンプル書いてくれないですかね
133デフォルトの名無しさん:2011/01/10(月) 00:00:25
void test(int *p)
{
p = (int *)malloc(sizeof(int));
}

int main()
{
int *p;
test(p);
free(p);
}

として実行すると、メモリを二重解放していると怒られました。
友人にアドバイスをもらって、

void test(int **p)
{
*p = (int *)malloc(sizeof(int));
}

int main()
{
int *p;
test(&p);
free(p);
}

としたらエラーが出なかったのですが、理由がよくわからないです…。
ご教示の程よろしくお願いいたします。
134デフォルトの名無しさん:2011/01/10(月) 00:08:04
それは2重開放じゃないな。mainのpはメモリ確保してねえんだよ。メモリリークするの。
135デフォルトの名無しさん:2011/01/10(月) 00:10:00
これは配列だが。初心者はこのようにメモリ確保すべき。new、mallocはよほどのことで無い限り使うこと無い。

int main()
{
vector<int> p(100);
}
136デフォルトの名無しさん:2011/01/10(月) 00:21:54
>>135
スレタイを5百万回確認しろ。
137デフォルトの名無しさん:2011/01/10(月) 00:25:42
初心者はまずSTLをやったほうがいい。C言語のメモリ確保や文字列は不便。
138デフォルトの名無しさん:2011/01/10(月) 00:29:12
void test(int *p)
{
p = (int *)malloc(sizeof(int));
}

これは、新規に生成したint*型に対してメモリ確保してるんだ。呼び出し元とは関係なし。

もしC++の参照使えれば。こうすれば期待する動作になる。

void test(int* &p)
{
p = (int *)malloc(sizeof(int));
}
139デフォルトの名無しさん:2011/01/10(月) 00:31:54
配列だけは例外で、C言語は値渡ししか出来ない思った。ポインタも値渡しになってしまう。
なんとか回避するためにポインタのポインタという技が開発される。
140デフォルトの名無しさん:2011/01/10(月) 00:56:09
CのスレにC++のコード書いて得意気になってる奴何なの
141デフォルトの名無しさん:2011/01/10(月) 00:57:37
きっとC++が好きなのさ
スレ違いも甚だしいけど
142デフォルトの名無しさん:2011/01/10(月) 01:23:08
http://codepad.org/NcaZFqdu
エラーなってしまう たすけて
143デフォルトの名無しさん:2011/01/10(月) 01:29:11
エラーを読んでくれ…
144デフォルトの名無しさん:2011/01/10(月) 01:43:56
質問です。
http://wwww.vis.ne.jp/mt/archives/000680.html
上記ページの使い方以降にあるソースのmain関数で、二次元配列をstaticで宣言してるんですけど、
これはどういった理由からなんでしょうか。
実際にstatic抜きで、ただのdoubleとして二次元配列を宣言してプログラムを走らせてみるとcoreを吐いてしまうんですね。
staticありだと確かに正常に動きます。
staticについて検索して調べたんですが、何処を調べてもmain関数を例に取ってるサイトが見つからなく、
関数を呼び出すごとに値が記憶されている、みたいな例しかないんですね。

#include<stdio.h>

void fn();

main()
{
int i;
for(i=0;i<10;i++)fn();
}

void fn()
{
auto int a=0;
static int b=0;

a++; b++;

printf("a=%d, b=%d\n",a,b);
}

↑こんな感じでstaticありとなしとで比べてるだけで、確かにこれだとなんとなくはわかるんですが、
上記サイトの二次元配列でstaticをどういう風に使用しているのかよくわかりません。よろしければご教授お願いしたいです
また、もしstaticなしで動くのであれば、それを試してみたいんですが何か方法はありますか?
145デフォルトの名無しさん:2011/01/10(月) 01:49:01
static付けると、スタック領域とは別にメモリ確保できるからでは。
つけないとメモリ不足に陥るケースあり。
初心者はヒープからこうとれよ。
vector< vector<double> > x;
146デフォルトの名無しさん:2011/01/10(月) 01:53:47
>>144
staticなしで動かしたいなら、コンパイラにスタックサイズを指定するオプションがあると思うから、
それでスタックのサイズをでかくしてみたら?
147144:2011/01/10(月) 02:04:35
なるほど。メモリ不足が原因だったんですね。ありがとうございました。

>>145 ,146
ヒープやスタックサイズについても検索して調べてみますね。

あと気になったことがありまして、
>>144では二次元配列を用いてますけど、ポインタで宣言してあげて、mallocなどを用いて動的にメモリを確保すれば、
ひょっとしてスタックサイズらを気にする必要はなくなります?
148デフォルトの名無しさん:2011/01/10(月) 02:07:26
気にする必要はなくなります
149デフォルトの名無しさん:2011/01/10(月) 02:11:44
わかりました。ありがとうございました。
150デフォルトの名無しさん:2011/01/10(月) 02:48:33
http://codepad.org/NEYKMnLJ
エラーでちゃう たすけて
151デフォルトの名無しさん:2011/01/10(月) 03:01:09
http://codepad.org/B9B1KbkU (サブ2
http://codepad.org/Lm8xcH0B (メイン
http://codepad.org/NEYKMnLJ  (サブ1

ちなみにソースファイルは3つある
152デフォルトの名無しさん:2011/01/10(月) 03:03:10
153デフォルトの名無しさん:2011/01/10(月) 04:46:44
テキストの中身
abcd
efgh
ijkl

結果
出力させたい行を入力
2
efgh
こんなプログラムがほしいのですが
書いてくれませんか
154デフォルトの名無しさん:2011/01/10(月) 04:59:30
宿題は宿題スレにどうぞ
ソフトが欲しいってだけならソフトウェア板で聞けカス
155デフォルトの名無しさん:2011/01/10(月) 07:07:54
>>133

void test(int *p)
{
*p = (int)malloc(sizeof(int));
}

void main()
{
int p;
test(&p);
free(p);
}
156デフォルトの名無しさん:2011/01/10(月) 07:22:52
voidmainw
157デフォルトの名無しさん:2011/01/10(月) 07:29:44
>>133
こうしたら分かるだろうか
ttp://codepad.org/ff5O8ZmV
test関数内で扱うのはmain関数内にあるint *pの値をコピーしたものなので
testでmallocの結果を代入してもmain側のpには反映されないの
158デフォルトの名無しさん:2011/01/10(月) 10:31:27
>>133
>>157 と同じことですが、
C言語での関数呼び出しは特別なオプションをつけていなければ
スタックに実引数と戻りアドレス(次の実行コードのアドレス)を
積んで実行フローが呼び出し先の関数になります。
 スタックに積む実引数は、プログラムテキストが示す式(変数等)
を評価した値のコピーです。呼び出し先の関数で、その引数に
代入すると、スタックに積まれたコピーの方が更新されます。
>>133 の上の例では、不定なmain()のp のポインタの値のコピーにtest()で
代入していて、元のmain() のp は更新されませんので、free()
のp はmalloc() したp とは無関係となります。
159デフォルトの名無しさん:2011/01/10(月) 10:51:05
その説明で>>133が理解できるとは思えないw
160デフォルトの名無しさん:2011/01/10(月) 10:53:54
初心者が理解出来ない返しをして悦に入るアホの典型
161デフォルトの名無しさん:2011/01/10(月) 11:10:09
>>158は一見わけわからんプログラム組みたがるタイプ
162デフォルトの名無しさん:2011/01/10(月) 11:15:34
>>161
まだ>>158はプログラミング歴が短いんじゃないかな
俺も昔は>>158みたいだった
163デフォルトの名無しさん:2011/01/10(月) 11:37:36
サドルマンか
164デフォルトの名無しさん:2011/01/10(月) 11:38:55
void t1(int a) { a = 5; }
void t2(int *a) { *a = 5; }
void main() { int a=0; t1(a); printf("%d ",a); t2(&a); printf("%d",a); }
→実行結果は 0 5

関数の引数変数への代入操作は、呼び出し元の変数の値を変えない
ポインタの指してる先の内容を変えることはできるが、
ポインタそのものを変えても呼び出し元に伝わらない
165デフォルトの名無しさん:2011/01/10(月) 11:44:04
ゆっくり実況見るといいよ
166デフォルトの名無しさん:2011/01/10(月) 11:57:23
   __   いいえ。わたしです
  ヽ(・‐・(ノ
   )   )
     | | 
167デフォルトの名無しさん:2011/01/10(月) 11:59:22
はっきり言ってニコニコ技術部の方が上
168デフォルトの名無しさん:2011/01/10(月) 12:08:42
確かに
169デフォルトの名無しさん:2011/01/10(月) 12:32:57
ロシヒカリってなんですか?
170デフォルトの名無しさん:2011/01/10(月) 12:41:44
人名
171デフォルトの名無しさん:2011/01/10(月) 13:17:51
172デフォルトの名無しさん:2011/01/10(月) 13:24:36
サドルマンになりたいな
173デフォルトの名無しさん:2011/01/10(月) 14:01:44
ほっほっ
174デフォルトの名無しさん:2011/01/10(月) 14:06:32
>>133
別に問題なくね?ポインタ変数渡してるから参照渡しにあたるだろ。
その友人はなんで怒ったんだ?
175デフォルトの名無しさん:2011/01/10(月) 14:07:40
>>174
スレを読め
176デフォルトの名無しさん:2011/01/10(月) 14:10:37
http://codepad.org/B9B1KbkU (サブ2
http://codepad.org/Lm8xcH0B (メイン
http://codepad.org/NEYKMnLJ  (サブ1

これcygwinでコンパイルするとき
gcc メイン サブ1 サブ2 ←このようにすると

/cygdrive/c/Users/mituru/AppData/Local/Temp/cc69kqsO.o:c.c:(.text+0x5e): undefin
ed reference to `_i_print'
/cygdrive/c/Users/mituru/AppData/Local/Temp/cc69kqsO.o:c.c:(.text+0xaa): undefin
ed reference to `_i_print'
collect2: ld returned 1 exit status
こうなっちゃうんですが解消法はないですか
177デフォルトの名無しさん:2011/01/10(月) 14:13:40
C++でmallocなんか使うかよww
178デフォルトの名無しさん:2011/01/10(月) 14:34:29
ふっほっ
179デフォルトの名無しさん:2011/01/10(月) 14:44:05
RAND_MAX厨はいないのか?ww
180デフォルトの名無しさん:2011/01/10(月) 15:20:55
>>176
i_print() の定義がない。 i_printf() はあるけど
181デフォルトの名無しさん:2011/01/10(月) 15:59:35
>>180
糞乙
182デフォルトの名無しさん:2011/01/10(月) 16:28:29
C言語でWebプログラムって出来ますか
183デフォルトの名無しさん:2011/01/10(月) 16:38:44
>>182
できるかできないかで言うとできない
C言語は組み込み用の言語だからWindowdやUNIxなどの組み込み高度機器限定のソリューションだ
184デフォルトの名無しさん:2011/01/10(月) 16:42:49
CGI・Cはできる。
185デフォルトの名無しさん:2011/01/10(月) 16:43:55
C言語単体では無理だが。ネットワーク機能などを追加して、スクリプト動作させたらいい。
186デフォルトの名無しさん:2011/01/10(月) 16:54:41
いまどきCでwebアプリ作るやつはいないと思うけど、やればできる。
標準入出力と環境変数の読み込みができる言語ならなんでもOK
むかし公開された2chのソースはCだった。
187デフォルトの名無しさん:2011/01/10(月) 17:09:43
>>186
>>いまどきCでwebアプリ作るやつはいない

いまVCで作ってる真っ最中なんだけどw
188187:2011/01/10(月) 17:11:06
なんだウェブアプリってCGIか
間違えた
189デフォルトの名無しさん:2011/01/10(月) 17:11:26
webアプリというより、ボトルネックの部分をネイティブに置き換えるとかそういう利用では?
全部、Cで作ったら生産性が悪い。
190デフォルトの名無しさん:2011/01/10(月) 17:17:08
な?すぐ>>187みたいなのが釣れるだろ?
191デフォルトの名無しさん:2011/01/10(月) 17:27:05
動画サイトでオセロを打つプロウラムを作ってる人の動画があったんだけど、
まずはインターフェイスから作りましょうかとかいってたんだけど
インターフェイスって何ですか?盤や白黒のコマの事でしょうか?
192デフォルトの名無しさん:2011/01/10(月) 17:29:39
インターフェイスは入出力では。キーボード、マウスとか。あとテキスト出力とか。
193デフォルトの名無しさん:2011/01/10(月) 17:30:12
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
194デフォルトの名無しさん:2011/01/10(月) 17:37:33
>>192
入出力って何ですか?電源とか?
>>193
そうそう、そんな感じのプログラム作る動画が
ニコニコにあがってたんですよ、インターフェイスって何かなぁと思って。
195デフォルトの名無しさん:2011/01/10(月) 17:38:31
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

終わり
196デフォルトの名無しさん:2011/01/10(月) 17:47:27
インタフェース(英語:interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す。主に情報技術関連で用いられる用語で、「ハードウェアインタフェース」、「ソフトウェアインタフェース」、「ユーザインタフェース」の三つに大別される。
インタフェース (情報技術) - Wikipedia
197デフォルトの名無しさん:2011/01/10(月) 17:53:23
int fnc(int, int);とかの型指定するのもインターフェイスだろ。中身は無視した他とのやりとり部分。
198デフォルトの名無しさん:2011/01/10(月) 17:57:21
それはそうだけど、普通にオセロの外枠から作ろうってことだろ
インターフェースが何かとかじゃなくて文脈読み取れよ。どうせプログラムのプの字も分かってないんだから
199デフォルトの名無しさん:2011/01/10(月) 18:01:15
>>197
もう何でもかんでもインターフェイスじゃないですかww

いくらプログラミング作っても出力が理解できないと意味できないから
プログラミング組む前に、盤面、コマの形、場所、大きさを決めるって
意味だったんですね。
200デフォルトの名無しさん:2011/01/10(月) 18:07:20
そういうことだな。人間と思考エンジンのインターフェイス。
201デフォルトの名無しさん:2011/01/10(月) 18:07:46
型指定が何でインターフェイスなの
202デフォルトの名無しさん:2011/01/10(月) 18:09:11
エヴァンゲリオンのインターフェイスはどういう意味なんだろ
203デフォルトの名無しさん:2011/01/10(月) 18:12:25
関数にアクセスするためのインターフェース公開した事になるだろ。
集大成としてこんなのもそう。

Windows API (Windows Application Programming Interface)
Windows上で動作するアプリケーションにとって、Windows APIはWindowsの各機能にアクセスするための接点である。
Windows APIに属する各APIは主にDLLからの関数またはCOMインタフェースとして機能を公開している。
関数の呼出規約はstdcallを採用するなど統一されたインタフェースで多数のプログラミング言語からの使用を容易なものとしている。
204デフォルトの名無しさん:2011/01/10(月) 18:13:39
ああなんだ、結合テストのことを言ってるのかと思った
205デフォルトの名無しさん:2011/01/10(月) 18:14:04

インターフェイス・ヘッドセット
エヴァとの神経接続の為、パイロットが頭に着けるもの。
206 ◆QZaw55cn4c :2011/01/10(月) 18:26:40
>>150
まず4行目の最後にセミコロン (;) が抜けているのを正してみてはどうでしょうか?
207デフォルトの名無しさん:2011/01/10(月) 18:41:52
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
208デフォルトの名無しさん:2011/01/10(月) 18:48:26
ロシヒカリとビットシフトはあな痔でしょうか
209デフォルトの名無しさん:2011/01/10(月) 18:55:02
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
210デフォルトの名無しさん:2011/01/10(月) 19:14:45
結局1時間でテトリス作る奴ってすごかったの?
211デフォルトの名無しさん:2011/01/10(月) 19:21:42
質問です。
y.txtというアルファベットしか含まれていない単純なテキストファイルを用意します。
それをC言語にて読み込んでランレングス圧縮します。
そしてそれを圧縮したz.txtを新たに作り出します。
という問題なのですがうまく動きませんでした。
よかったらご指摘をよろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
void func(FILE *fp1, FILE *fp2)
{
int c1, c2, l = 0;
for(c1 = c2 = fgetc(fp2); c1 != EOF; c2 = fgetc(fp2)){
if(c1 != c2){
fprintf(fp1, "%c%d", c1, l);
l = 1;
c1 = c2;
}
else ++ l;
}
}
int main(void)
{
FILE *fp1 = fopen("y.txt", "w"), *fp2 = fopen("z.txt", "r");
if(!fp1 || !fp2) exit(EXIT_FAILURE);
func(fp1, fp2);
fclose(fp1);
fclose(fp2);
return 0;
}
212デフォルトの名無しさん:2011/01/10(月) 19:27:10
>>211
y.txtから読み込んでz.txtに出力するってことだけど、
処理をみると、zから読み込んでyに書き込んでる。
213デフォルトの名無しさん:2011/01/10(月) 19:50:40
書き込んでるね。
214デフォルトの名無しさん:2011/01/10(月) 19:52:04
書き込んでるな。
215デフォルトの名無しさん:2011/01/10(月) 19:57:16
>>210
プログラムできる奴なら、下準備してれば誰でもできるよ。
216デフォルトの名無しさん:2011/01/10(月) 20:09:49
>>215
おれには1時間じゃ無理だわ。
前にテトリス作ったときは1、2週間くらいかかったよ。
217デフォルトの名無しさん:2011/01/10(月) 20:25:27
C言語で、日本語に対応した文字列処理ライブラリの定番って何かありますか?
例えば、C言語じゃないんですけど、
http://www.ruby-lang.org/ja/man/html/String.html
くらいの機能が一通り揃ってるのが欲しいです。
218デフォルトの名無しさん:2011/01/10(月) 20:47:46
定番というようなものはありません
219デフォルトの名無しさん:2011/01/10(月) 20:58:53
>>216
だから下準備=既につくってある+何回も同じ手順を踏む。
誰でもできるだろ
220デフォルトの名無しさん:2011/01/10(月) 21:08:04
一度もテトリス作ったこともない人間が即興でコーディングしてるとか思っちゃったのかw
221デフォルトの名無しさん:2011/01/10(月) 21:41:36
そんなのテンポが悪すぎて見てられんだろうな
222デフォルトの名無しさん:2011/01/10(月) 22:02:25
以下のプログラムをコンパイルしようとすると、undefined reference to 'sqrt'と出てしまうのですが、それはなぜでしょうか。
よろしくお願いします。


#include<stdio.h>
#include<math.h>
struct point{double x,y;};

double distance(struct point a, struct point b)
{double dis;
dis = sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
return(dis);
}

int main()
{double d;
struct point p1={4.5,7.9},p2;

printf("Input p2 zahyou (x,y)!");
scanf("%lf%lf",&p2.x,&p2.y);

d=distance(p1,p2);
printf("distance=%lf\n",d);
return(0);
}
223デフォルトの名無しさん:2011/01/10(月) 22:04:27
http://codepad.org/NFz55Hwa
テキストの中の文字と入力した文字があっているかの判定をするプログラムを
つくっているのですが
判定が合いません・・・
どうすればいいのでしょうか・・・
224デフォルトの名無しさん:2011/01/10(月) 22:18:05
>>223
fgets()で読み込むと最後に改行コードがつくけど、scanf()だとつかないから、
それで39−40行の判定が失敗してる。
bufの後ろについてる改行コードを0でつぶすとかすればいい。
225デフォルトの名無しさん:2011/01/10(月) 22:44:12
>>222
gcc -o test test.c -lm
226デフォルトの名無しさん:2011/01/10(月) 22:45:51
>222

とりあえずgcc on cygwinではコンパイルできて、実行もできた。
環境はどうなっていますか?mathライブラリを明示的にリンクする
必要があったりしませんか?(-lm でリンクする。)
227デフォルトの名無しさん:2011/01/10(月) 22:49:33
>>210
元々作っておいたソースコードを打ち込んでいくだけだぞ
228デフォルトの名無しさん:2011/01/10(月) 22:55:22
ニコニコの連中はちょっとプログラミングを見せれば「神!技術部認定!才能の無駄遣い!」とか騒ぐからね
229デフォルトの名無しさん:2011/01/10(月) 22:59:03
>>224さん
無事にできました
ありがとうございます
230デフォルトの名無しさん:2011/01/10(月) 23:06:34
fgets使っても末尾に改行がつかないケースもあるが
改行コードは1バイトの場合と2バイトの場合とがあるが
231デフォルトの名無しさん:2011/01/10(月) 23:09:16
>>225,226

授業でプログラミングをとってるだけのにわかなので、環境という話はよく分かりませんが、とりあえずコンパイルの最後に-lmと付けたらうまくいきました。
ありがとうございました!!
232デフォルトの名無しさん:2011/01/10(月) 23:09:54
>>230
>fgets使っても末尾に改行がつかないケースもあるが
fgets()は末尾に改行が付くとニコ動でも言われている

>改行コードは1バイトの場合と2バイトの場合とがあるが
ニコ動の解説動画によると、改行コードは1バイト(¥n)だよ

もうちょっと勉強してから書き込めや
233デフォルトの名無しさん:2011/01/10(月) 23:20:22
>>230
入力ファイルの最終行が改行で終わっていなければ、改行コードは付かないよね
234デフォルトの名無しさん:2011/01/10(月) 23:29:28
int型の整数を文字列にキャストする方法ってありますか?
235デフォルトの名無しさん:2011/01/10(月) 23:34:13
>>233
fgetsで指定したサイズ以上の入力を受けた場合、分割された文字列に改行はつかない
236デフォルトの名無しさん:2011/01/10(月) 23:36:26
>>234
sprintf
237234:2011/01/10(月) 23:37:02
>>236
それはキャストではないと思いますが・・・
238 ◆QZaw55cn4c :2011/01/10(月) 23:41:14
>>232
>>fgets使っても末尾に改行がつかないケースもあるが
>fgets()は末尾に改行が付くとニコ動でも言われている
いや、つかない場合もある。fgets() の第二引数分だけ読み込んでも改行があらわれなかったとき。

>もうちょっと勉強してから書き込めや
あんたも足りんのとちゃうか?
239デフォルトの名無しさん:2011/01/10(月) 23:44:53
>>237
unsigned int i = 0x00434241;
char *s = (char*)&i;
printf("%s\n",s);
こういう事?でもなかったら意味が分かんないのでヒントお願い

240デフォルトの名無しさん:2011/01/10(月) 23:47:42
str()
241234:2011/01/10(月) 23:55:18
>>237は質問者じゃないのですが・・・

例えば
int型の「a = 12345」という数字をchar型のmoji[10]に「12345」のまま格納できれば
いいのですが、sprintf を使えばよいのでしょうか?


242デフォルトの名無しさん:2011/01/10(月) 23:58:14
>>241
使わなくてもできるけど、まぁ使うと簡単。
243デフォルトの名無しさん:2011/01/10(月) 23:59:13
◆QZaw55cn4c
↑これがロシヒカリ?
244デフォルトの名無しさん:2011/01/11(火) 00:00:53
ただの荒らしだよ
245◇QZaw55cn4c:2011/01/11(火) 00:13:45
おしっこぺろぺろ〜wwwwwwwwwwwwwwwwwwwwwww
246デフォルトの名無しさん:2011/01/11(火) 00:14:29
main()を実行しているファイルにある関数のプロトタイプ宣言がなくても
一緒にコンパイルしているファイルにその関数が定義されていた場合
(たとえば、gcc main.c sub.cのsub.cにその関数が定義されている場合、main()
では未宣言,未定義)
コンパイルはとおりましたが変じゃないですか?

言っていることわかるかな?
247デフォルトの名無しさん:2011/01/11(火) 00:19:55
>>246
別に普通だけど
とりあえずコンパイルとリンクが別ってのを分かってもらわないと詳しく説明できない
248デフォルトの名無しさん:2011/01/11(火) 00:25:46
>>247 実行もできたんですよ
249デフォルトの名無しさん:2011/01/11(火) 00:29:25
>>248
いや、だからそれが普通だって
gccに必要なファイル全部指定してるんだから
・それぞれコンパイル(ここで関数の定義が見えてなくてもコンパイル可能)
・できたそれぞれのオブジェクトファイルをリンク(ここでsub.cの関数定義とくっつく)
で実行ファイルができる。
「gcc -c main.c」はエラーなし、「gcc main.c」はエラーはくから、試してみなよ
250デフォルトの名無しさん:2011/01/11(火) 00:30:48
関数の勉強をしているんですが、スコープとは具体的にどういうことをいうのでしょうか?

サイトでは寿命や有効範囲の事を言っていました。いまいちぱっとしません。
251デフォルトの名無しさん:2011/01/11(火) 00:32:35
>>250
{
        int i;
        i = 0; /* OK */
}
i = 1; /* NG */
252デフォルトの名無しさん:2011/01/11(火) 00:42:08
>>251 つまりどういうことですか?><。
253デフォルトの名無しさん:2011/01/11(火) 00:45:16
>>252
つまりね、何が分からないのか分からない。
254デフォルトの名無しさん:2011/01/11(火) 00:48:51
スコープは有効範囲であって寿命は別な話
多くの書籍が2ついっぺんに話そうとするから初心者にはつらくなる

あとで関係はしてくるが有効範囲の話がわかるまでいったん寿命の話は無視しろ
255デフォルトの名無しさん:2011/01/11(火) 00:48:57
>>241
a=12345の固定ならそのまま
sprintf(moji,"%d",a);
でいいよ。
でも、固定で無い場合は
int型数値を10進文字列で表すのに
最長で -2147483648 に 終端0を加えた12バイトになるから
moji[12]にしたほうがいい。
256デフォルトの名無しさん:2011/01/11(火) 00:51:00
222はコンパイルするファイルを間違えてないか確認するのと
中間ファイルを削除して再試行すれば解決しないか試せ。
257デフォルトの名無しさん:2011/01/11(火) 00:53:44
配列より難しいですよね関数・・・

これからポインタも出てくるし、これからもお世話になると思います。
258デフォルトの名無しさん:2011/01/11(火) 00:53:49
259デフォルトの名無しさん:2011/01/11(火) 00:55:07
関数が難しい場合、大抵関数そのもの以外の部分でつまづいている。
260デフォルトの名無しさん:2011/01/11(火) 00:56:49
といいますと?
261デフォルトの名無しさん:2011/01/11(火) 00:59:59
ポインタとかスコープとか戻り値とか変数の寿命とか
262デフォルトの名無しさん:2011/01/11(火) 01:01:13
関数のスコープの話とか初めて勉強した時でも当たり前のように感じてすんなり呑み込めたけどな。ポインタは知らん
263デフォルトの名無しさん:2011/01/11(火) 01:02:45
return "test";が動いちゃうもんだから、勘違いして死んでるポインタ返して詰まるのはよくある話
264デフォルトの名無しさん:2011/01/11(火) 01:06:11
そう…そのまま飲み込んで。僕のエクスカリバー…
265デフォルトの名無しさん:2011/01/11(火) 01:07:45
「関数そのもの」ってのがわからん
266デフォルトの名無しさん:2011/01/11(火) 01:08:40
それは中学からやり直せ
267デフォルトの名無しさん:2011/01/11(火) 01:22:26
ポインタ変数が引数・戻り値の場合に混乱しやすいと思う
268デフォルトの名無しさん:2011/01/11(火) 01:23:42
関数の後にポインタじゃないんですか?私は関数を先にやってます




関数の章にsizeof演算子とmenmcpy関数が出てきたんですけど、これってわりと頻繁に使いますか?
269デフォルトの名無しさん:2011/01/11(火) 01:25:32
はい
270デフォルトの名無しさん:2011/01/11(火) 01:27:26
これでどうだ

#include <stdio.h>

void func(void)
{
int i = 1;
// funcの内部変数iの範囲ここから

printf("%d\n", i);

// funcの内部変数iの範囲ここまで
}

int main(void)
{
int i = 0;
// mainの内部変数iの範囲ここから

func();

printf("%d\n", i);

return 0;

// mainの内部変数iの範囲ここまで
}
271デフォルトの名無しさん:2011/01/11(火) 01:41:10
よくもまぁ、具体的に疑問点が挙げられていないレスに自己満レスできるね
272デフォルトの名無しさん:2011/01/11(火) 01:44:36
公開オナニーですから
273デフォルトの名無しさん:2011/01/11(火) 01:50:44
いやいや助かりました!
どうもありがとう>>270さん(^-^)/
274デフォルトの名無しさん:2011/01/11(火) 01:55:28
>>270さんほど分かりやすい解説はなかったです(^-^)/
275デフォルトの名無しさん:2011/01/11(火) 01:56:29
どういたしまして(^-^)/
276デフォルトの名無しさん:2011/01/11(火) 01:58:07
うるせー(^-^)/
277デフォルトの名無しさん:2011/01/11(火) 01:59:59
以下のプログラムはコンパイルできるのですが、本当ならば実行結果がbubble→#u##leとなってほしいのに、bubble→bubbleになってしまいます。
何が問題なのでしょうか。

#include<stdio.h>

void str_change(char *st,char c,char d)
{while(*st){if(*st=='c')*st='d';
st++;};
}

int main()
{char st[]="bubble";
char c1='b',c2='#';

printf("%s ->",st);
str_change(st,c1,c2);
printf("%s\n",st);
return(0);
}
278デフォルトの名無しさん:2011/01/11(火) 02:00:08
>>270は神ですね(^-^)/
279デフォルトの名無しさん:2011/01/11(火) 02:01:09
>>277
スレ違い
280デフォルトの名無しさん:2011/01/11(火) 02:04:53
>>277
c,dは変数だから''で囲む必要なし
281277:2011/01/11(火) 02:10:11
>>280
助かりました!!本当にありがとうございます。
282デフォルトの名無しさん:2011/01/11(火) 02:15:08
助かりました>>212
>>211
これを伸張、つまり復号化は可能ですか?
283デフォルトの名無しさん:2011/01/11(火) 06:16:04
復活
284デフォルトの名無しさん:2011/01/11(火) 08:10:07
二つの二次元配列の要素を全て交換する方法って二重ループを回す以外に何か方法はありますか?
二重ループだとすっきりしないので、ポインタなどを使って実現したいのですが・・・
285デフォルトの名無しさん:2011/01/11(火) 09:36:08
>>284
一次元配列相当のポインタにキャストしちゃえば?
286デフォルトの名無しさん:2011/01/11(火) 10:08:31
>>284
#include<stdio.h>
typedef int ELEM_T;
void swap_array(ELEM_T *a, ELEM_T *b, int elems){
ELEM_T t;
while(elems-- >0){
t = *a;
*a++ = *b;
*b++ = t;
}
}
int main(){
// A, B のサイズ, 要素の型は同じ
ELEM_T A[][3] = {1,2,3,4,5,6};
ELEM_T B[][3] = {11,12,13,14,15,16};
//int i;
//int *p = &A[0][0];
//int *q = &B[0][0];
swap_array((ELEM_T*)A,(ELEM_T*)B, sizeof A/ sizeof A[0][0]);
//for(i = 0; i < sizeof A/ sizeof A[0][0]; ++i){
// printf("%d ", p[i]);
//}
//printf("\n");
//for(i = 0; i < sizeof B/ sizeof B[0][0]; ++i){
// printf("%d ", q[i]);
//}

return 0;
}
287デフォルトの名無しさん:2011/01/11(火) 13:53:16
ださっ
288デフォルトの名無しさん:2011/01/11(火) 17:08:21
手本(というほどでもないか)見せてやってよ
289デフォルトの名無しさん:2011/01/11(火) 18:12:14
http://codepad.org/qiGHzQsB

389,471,476行目にエラーが起きるんですけどなぜでしょうか?

よろしくお願いします。
290デフォルトの名無しさん:2011/01/11(火) 18:16:28
勉強し始めて3日程度なのですがFizzBuzzというのを見つけたのでやってみました。
まだ1冊目の本も途中なのですがどうにも気になってしまって20分程度考えて書いたのですが
これに対する突っ込みはどのようなものがあるでしょうか。

#include <stdio.h>
int main(){int i,f;for(i=1;i<101;i++){f=0;if(i%3==0){printf("Fizz");f=1;}if(i%5==0){printf("Buzz\n");f=2;}if(f<2){if(f<1){printf("%d",i);}printf("\n");}}return 0;}
291デフォルトの名無しさん:2011/01/11(火) 18:19:59
>>290
なんだそのコードは。他人に読んでもらう気ねーだろ。そういう突っ込み待ちか?
292デフォルトの名無しさん:2011/01/11(火) 18:23:03
すみません短縮しまくったのをそのまんま貼ってしまいました
元はこんなんです。

#include <stdio.h>
int main()
{
int i,f;

for (i=1;i<101;i++)
{
f=0;
if (i%3==0){printf ("Fizz");f=1;}
if (i%5==0){printf ("Buzz\n");f=2;}
if (f<2){if (f<1){printf ("%d",i);}printf ("\n");}
}
return 0;
}
293デフォルトの名無しさん:2011/01/11(火) 18:36:12
>>289
389,471 Clone(); の 引数は Node* である必要があるが static Node な a を渡している
 (Clone(&a) の typo か?)
476 非ブロックで型宣言&初期化はできない
 (else { ... } で囲うべし)

-----続予測されるエラー
471 の Node *copy1 = は if から抜けるとなくなる
そのため 476 の引数 copy1 は未宣言変数に
294デフォルトの名無しさん:2011/01/11(火) 18:39:39
>>293
早い回答ありがとうございます!
copy1を未宣言変数にするとはどういうことですか?

素人なものですみません・・・
295デフォルトの名無しさん:2011/01/11(火) 18:40:33
>>294
する じゃなくて 宣言されてない変数を参照してるよ ってこと
296デフォルトの名無しさん:2011/01/11(火) 18:42:23
>>295
なるほど・・・
解決法はなにかありますか?
297デフォルトの名無しさん:2011/01/11(火) 18:46:04
>>292
ゴルフがしたいなら専用スレがあるのでそちらへどうぞ。
298デフォルトの名無しさん:2011/01/11(火) 19:10:16
>>296
コンパイルエラーをなくすだけなら 390 に Node* copy1 = NULL; とでも

意図したように動くかどうかは(意図がわからないので)別の話
299デフォルトの名無しさん:2011/01/11(火) 19:12:47
あ ごめん 389 に copy1 居るじゃん。

× 471 Node *copy1 = Clone(a);
○ 471 copy1 = Clone(&a);
300デフォルトの名無しさん:2011/01/11(火) 19:13:12
>>298
それをやると2回定義されているとエラーが出ちゃいます・・・
301デフォルトの名無しさん:2011/01/11(火) 19:16:09
>>299
できました!
ありがとうございます!!

またなにかあったら質問させていただきます><
302デフォルトの名無しさん:2011/01/11(火) 21:01:00
>>297
ゴルフが何なのかわからなかったですが・・・なるほど、そういうことですか
しかし自分が聞きたいのはそうではなくてここの動作は普通はこう書くよ、見たいな指摘が欲しいのです。
まあ動けば何でもいい、というのがプログラミングであるというのであればそれもそうなんですが。
303デフォルトの名無しさん:2011/01/11(火) 21:22:43
for(i = 1; i <= 100; i++) {
f = 0;
if(i % 3 == 0) { printf("fizz"); f = 1;}
if(i % 5 == 0) { printf("buzz"); f = 1; }
if(f == 0) printf("%d", i); //if(!f)でも可
printf("\n");
}
304デフォルトの名無しさん:2011/01/11(火) 21:49:47
ありがとうございます
たしかにそうですね、なんでf=2にしてたんだろう・・・そしてif(!f)で真か偽かの判別ができたと・・・
本の通りにやっているのと自分で考えながら書くのでは違うものですね。

そしてやはりi<=100のほうが一般的だったりわかりやすかったりするのでしょうか
305デフォルトの名無しさん:2011/01/11(火) 22:02:24
2ch用語はナベアツ3、5バージョンより難しい
306デフォルトの名無しさん:2011/01/11(火) 22:18:01
>>304
状況による

100までというなら
for(i=start;i<=end;i++)
の方が分かりやすいが

100回ならば
for(i=start;i<start+reps;i++)
の方がいいでしょ
307デフォルトの名無しさん:2011/01/11(火) 22:21:31
>>306
なるほどです
とりあえずまずは慣れですね。
ありがとうございました。
308デフォルトの名無しさん:2011/01/11(火) 22:31:03
>>307
いえいえ、どういたしまして
309デフォルトの名無しさん:2011/01/11(火) 22:36:46
>>308 どうもどうも(^-^)/
310デフォルトの名無しさん:2011/01/11(火) 23:37:42
ある文字列が十進数として扱えるか調べるには
文字列をisdigitで回す他にやりかたありやすか?
311デフォルトの名無しさん:2011/01/11(火) 23:45:37
役不足ですね
312デフォルトの名無しさん:2011/01/11(火) 23:47:04
米不足
313デフォルトの名無しさん:2011/01/12(水) 00:04:26
ロシヒカリの出番だな
314デフォルトの名無しさん:2011/01/12(水) 00:39:10
うはwwwwwwwwwwwwwwww誰が上手いこと言えとwwwwwwwwwwww
315デフォルトの名無しさん:2011/01/12(水) 00:48:16
(^-^)/
316デフォルトの名無しさん:2011/01/12(水) 01:07:14
// テトリス
// linux依存部分(たぶんwindowsだと、書き方違う部分)

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

// キーボードからの一文字入力(待ち無し)
#include <termios.h>
int gc(){
struct termios t0,t1;tcgetattr(fileno(stdin), &t0);t1=t0;
t1.c_lflag &= ~ICANON;t1.c_cc[VMIN]=0;tcsetattr(fileno(stdin),TCSANOW,&t1);
int r = getchar();tcsetattr(fileno(stdin), TCSANOW, &t0);return r;
}

// 1/60秒間、処理を停止する(ウエイト処理)
#include <time.h>
s6(){static struct timespec req={0,16*1000*1000},rem;nanosleep(&req,&rem);}

// 画面の文字をすべてクリアーする関数
cl(){printf("%c[2J",0x1B );}

// カーソル位置をセットする関数
sc(int x, int y){printf("%c[%d;%dH",0x1b, y+1, x+1 );}
317316:2011/01/12(水) 01:09:38
// テトリス本体部分(libcのみ)
unsigned short V[32],B[32],M,*p,*q,m,a,t[]={0x72,0x132,0x462,0x223,0x226,0x2222,0x33},N=0xE007,F=0xFFFF;
int i,j,k,x,y,r,c,_t[]={2,5,8,11,-3,0,3,6,-8,-5,-2,1,-9,-6,-3,16};
iB(){p=B;i=24;while(i-->0){*p++=N;}*p=F;}dB(){p=B+4;j=20;while(j-->0){if(*p==F){*p=N;}p++;}}
sB(){p=q=B+4+20-1;i=j=20;while(j-->0){if(*p!=N){*q--=*p|N;i--;}p--;}j=i;while(j-->0){*q--=N;}}
rrM(){int* t=_t;a=M;M=0;m=1;i=16;while(i-->0){M|=(*t>0)?(a&(m))<<*t++:(a&(m))>>-*t++;m<<=1;}}
lrM(){rrM();rrM();rrM();}nM(){x=4;y=-2;M=t[rand()%7];}_p(char* s){fputs(s,stdout);}p0(){_p(" ");}p1(){_p("回");}pn(){_p("\n");}
eV(){m=0;p=B;q=V;i=32;while(i-->0){if((*q&*p)!=*p){return 1;}p++;q++;}return 0;}
nV(){p=B;q=V;i=32;while(i-->0){*q++=*p++;}m=M;q=V+4+(y-1);i=4;while(i-->0){*q^=(m&0xF)<<(3+x);m>>=4;q++;}r=0;if(eV()){r=1;}return r;}
pV(){sc(0,0);pn();p=V;j=25;while(j-->0){m=1;i=16;while(i-->0){if(*p&m){p1();}else{p0();}m<<=1;}pn();p++;}}
cT(){k=gc();if(k=='n'){y++;}else if(k==' '){while(!nV()){y++;}}else{if(c++>60){y++; c=0;}}if(k=='j'){x--;if(nV()){x++;}}
if(k=='k'){x++;if(nV()){x--;}}if(k=='f'){rrM();if(nV()){lrM();}}if(k=='d'){lrM();if(nV()){rrM();}}}
main(){cl();iB();nM();while(1){cT();if(nV()){y--;nV();memcpy(B,V,2*32);dB();sB();nM();}pV();s6();}}

// 操作方法:
// j,k 左右の移動   d,f 左右の回転   n 下移動   スペース ハードドロップ   Ctrl+c 終了
318デフォルトの名無しさん:2011/01/12(水) 01:11:09
消えろ
319デフォルトの名無しさん:2011/01/12(水) 01:15:38
これがテトリス荒らしである。
320デフォルトの名無しさん:2011/01/12(水) 01:19:18
ニコに感化された糞ガキか。ロシヒカリでも食ってろ。
321デフォルトの名無しさん:2011/01/12(水) 01:24:58
ほっほっ
322デフォルトの名無しさん:2011/01/12(水) 01:26:46
ふっほっ
323デフォルトの名無しさん:2011/01/12(水) 01:35:15
どぴゅっどぴゅっ
324デフォルトの名無しさん:2011/01/12(水) 07:47:59
んほぉぉぉぉ!!!!!!!
325デフォルトの名無しさん:2011/01/12(水) 07:55:18
サドルマン
326デフォルトの名無しさん:2011/01/12(水) 08:00:25
perlにあるcrypt関数ってcでは何に当たりますか?
327デフォルトの名無しさん:2011/01/12(水) 08:14:34
標準にはないのでライブラリを当たってください
Linuxやら使ってるのであれば多分何も入れなくてもcryptが使えます
328デフォルトの名無しさん:2011/01/12(水) 08:33:11
>>327
使えねーな、次
329デフォルトの名無しさん:2011/01/12(水) 08:34:48
>>327
もうちょっとまともな回答よこせよカス
330デフォルトの名無しさん:2011/01/12(水) 08:47:49
>>327
331デフォルトの名無しさん:2011/01/12(水) 09:11:07
>>327
くず
332デフォルトの名無しさん:2011/01/12(水) 09:22:11
eval_pv("print(crypt('foo','bar'));",TRUE);
333デフォルトの名無しさん:2011/01/12(水) 18:51:53
http://codepad.org/h7cZFlgp

↑この二重ポインタのsizeof()演算子が思っているような値と違うんですが
これなんでこういう実行結果になるか教えてください
334デフォルトの名無しさん:2011/01/12(水) 18:53:19
お断りします
335デフォルトの名無しさん:2011/01/12(水) 18:58:45
>>333
9 "tdy"
10 "PEOl",

で "tdyPEOl", 相当

11 "ddfd"
12 "dfcvh"

で "ddfddfcvh" 相当

要素数的には 20要素だよん
336デフォルトの名無しさん:2011/01/12(水) 19:00:24
>>333
data の型は char*[20] なので 80 バイト
*data の型は char* なので 4 バイト
特に不思議なようには見えませんが
337デフォルトの名無しさん:2011/01/12(水) 19:15:21
>>333
sizeof(data) が 88 を想定してたんなら 9 と 11 の末尾に ','(カンマ) が抜けてる
338デフォルトの名無しさん:2011/01/12(水) 20:38:21
ゲーム作ってるんだが、2Dアクションゲーム作りたいんだけど
アクションはどうやってプログラミングするの?
339デフォルトの名無しさん:2011/01/12(水) 20:41:32
キャラクターの座標を動かすの
340デフォルトの名無しさん:2011/01/12(水) 20:47:53
>>339
単純すぎないですかw?

腕とか足とか動かしたい
341デフォルトの名無しさん:2011/01/12(水) 20:50:06
>>340
腕とか足のの座標を動かすの
342デフォルトの名無しさん:2011/01/12(水) 20:50:14
A) 股-脛-足の結節点を動かすの
B) 動きの表現の数だけ絵を用意して差し替えるの
343デフォルトの名無しさん:2011/01/12(水) 20:52:12
まぁどうせ納得はいかないんだろうが
これでもかなりちゃんと答えてると知ってほしいな
344デフォルトの名無しさん:2011/01/12(水) 20:53:19
ゲ製行けよ
345デフォルトの名無しさん:2011/01/12(水) 20:56:56
>>340
パラパラ漫画しってるか?2Dならあれといっしょだ
346デフォルトの名無しさん:2011/01/12(水) 21:02:33
なんか最近ゲーム制作ブームなのかその手の本をよく見るな。
いたいけな少年少女を悪の道にすすめるなと
347デフォルトの名無しさん:2011/01/12(水) 21:14:50
少し知能があったらあんなところ目指さない
348デフォルトの名無しさん:2011/01/12(水) 21:16:33
>>341
スーパードンキーコングシリーズみたいな高グラフィックの2Dスクロール
が作りたい、やっぱり言語よりアニメーションソフトのほうがいいですかね?
349デフォルトの名無しさん:2011/01/12(水) 21:26:39
スーファミのドンキーコングってアニメーション綺麗すぎだろ。
どうやって作ったんだろ。
350デフォルトの名無しさん:2011/01/12(水) 21:47:58
あれはプリレンダリング
351デフォルトの名無しさん:2011/01/12(水) 22:16:00
型は変数のサイズを示す意外に役割があるのでしょうか?
たとえば、自分の環境ではintとfloatは同じ4バイトの領域を確保しますが、
int a;
float b;
scanf("%f %d",&a,&b);
のようにintとfloatの各4バイトの領域に逆のフォーマットで値を代入してみましたが、
内容をそれぞれのフォーマットで出力してみるとデタラメな内容が帰って来ました。
printf("%f %d\n",a,b);
型はその環境が定義したサイズ意外に何か役割があるのでしょうか?
352デフォルトの名無しさん:2011/01/12(水) 22:26:20
>351

データの内部フォーマットを示している。
浮動小数については「IEEE 754」をググってみてください。
353デフォルトの名無しさん:2011/01/12(水) 22:28:13
せっかく型つけて使いやすくしてんのに、なんで無駄なことしたがるんだろうなw
354デフォルトの名無しさん:2011/01/12(水) 23:04:16
フォーマットは入力関数のフォーマットにしたがっているものかと思っていました。
入力関数のフォーマットはあくまで、入力されると期待できる形式を表しているんですね。
charとintだとうまくいってたのはint内部フォーマットが単純だからですね。
ありがとうございました。
355デフォルトの名無しさん:2011/01/12(水) 23:14:07
>>352
IEEE754に準拠した32ビットの数値をint型変数に入れるとIEEE754ではなくなるのですか
356デフォルトの名無しさん:2011/01/12(水) 23:19:52
printf("%f %d\n",a,b);

後半の b の値を詰む時に float → double の格上げがおきてるから表示値がくずれてる
357デフォルトの名無しさん:2011/01/12(水) 23:22:55
そんなの分かった上でやってるんだけど
358デフォルトの名無しさん:2011/01/12(水) 23:29:05
>>355
暗黙の型変換
359デフォルトの名無しさん:2011/01/12(水) 23:40:13
>>355
>>352はいろいろと中途半端だから間に受けない方がいいよ
マジレスすると、IEEE形式のビット列をint型変数に格納することももちろん可能
360デフォルトの名無しさん:2011/01/12(水) 23:42:45
>>356
そして printf の %f は float ではなく double が詰まれることを期待し、解釈してる
http://codepad.org/7pcUXzN8
361デフォルトの名無しさん:2011/01/12(水) 23:44:22
>>358
違います

>>359
ですよね、ありがとう
362デフォルトの名無しさん:2011/01/12(水) 23:53:07
>>360のドヤ顔が想像できてしまうwwwwwwwwwwww
363デフォルトの名無しさん:2011/01/12(水) 23:58:19
#include <stdio.h>
#include <string.h>
void dispval(const char* name, void* var, size_t len){
int i;
printf("%s [", name);
for (i=0; i<len; i++) {
printf("%02x", ((unsigned char*)var)[i]);
}
printf("]\n");
}
int main(){
int a, d;
float b, c;
int i;

printf("sizeof a=%d\n", sizeof a);
printf("sizeof b=%d\n", sizeof b);
sscanf("1.0 5", "%f %d", &a, &b);
dispval("a", &a, sizeof(a));
dispval("b", &b, sizeof(b));
sscanf("1.0 5", "%f %d", &c, &d);
dispval("c", &c, sizeof(c));
dispval("d", &d, sizeof(d));
printf("%f %d\n", a, b);
printf("%f %d\n", *(float*)&a, *(int*)&b);
return 0;
}
364デフォルトの名無しさん:2011/01/13(木) 00:05:41
>>363
丁寧なテストコードありがとうございます。
最後のprintf文すごいですね。
一度それぞれの型を修正するんですね。
便利な方法を知ることができました。
365デフォルトの名無しさん:2011/01/13(木) 00:09:07
#include<time.h>
したんだけど、
localtime()ってすごく変な仕様だな。
なんで返り値がtm構造体じゃないの? なんでポインタなの?
結果の struct tm ってどこに保存されてるの?
何度もlocaltime()を呼んでたらメモリオーバーフローしないの?
毎回free()してやれば無問題?

って疑問を持ったんだけど、解説してる日本語サイトが全くみつからん。
すっげー気になるところなんだが。
366デフォルトの名無しさん:2011/01/13(木) 00:19:06
367デフォルトの名無しさん:2011/01/13(木) 00:24:26
#include<time.h>
したんだけど、
localtime()ってすごく変な仕様だな。
なんで返り値がtm構造体じゃないの? なんでポインタなの?
結果の struct tm ってどこに保存されてるの?
何度もlocaltime()を呼んでたらメモリオーバーフローしないの?
毎回free()してやれば無問題?

って疑問を持ったんだけど、解説してる日本語サイトが全くみつからん。
すっげー気になるところなんだが。
368デフォルトの名無しさん:2011/01/13(木) 00:28:01
>>367
free してみれば分かるかもなw
369デフォルトの名無しさん:2011/01/13(木) 00:28:48
>>368
freeしてもどうにもならなかったが・・・
370デフォルトの名無しさん:2011/01/13(木) 00:32:59
371デフォルトの名無しさん:2011/01/13(木) 00:35:54
・・・、
いや、何も言うまい。
372デフォルトの名無しさん:2011/01/13(木) 00:36:32
初心者です。
ライフゲーム作ってて、初期の配列を別の配列に移して処理を行い
元の配列に移す操作がわかりません・・
もしよかったらソースコードを教えていただけるとうれしいです
373デフォルトの名無しさん:2011/01/13(木) 00:41:26
>>367
何度localtimeしても同じアドレスが返ってくるよ
freeしちゃダメ
374デフォルトの名無しさん:2011/01/13(木) 00:42:07
>>372
まったく同じ大きさの配列なら memcpy
375デフォルトの名無しさん:2011/01/13(木) 00:43:25
>>372
メモリ系関数に慣れてないなら普通にforとかでなでこればいいじゃん
376デフォルトの名無しさん:2011/01/13(木) 00:43:47
>>327
#define SIZE 100
typedef struct life_tag{
 char p[SIZE][SIZE];
}life;

life a,b;

main(){
 init(a);
 while(1){
  b=a;
  b.p[0][0]=shori;
  b.p[SIZE-1][SIZE-1]=shori_shori;
a=b;
 }
}
377デフォルトの名無しさん:2011/01/13(木) 00:45:19
>>376
構造体タグ名と型定義名は別の名前空間なので、life_tagとする必要はないです。
378372:2011/01/13(木) 00:47:29
みなさんありがとうございます
習いたてで、多分for文だけで書ければいいのですが、頭がごちゃごちゃしてしまって・・
for文のみで書くとどんな感じのソースになりますかね?
本当にすいません
379デフォルトの名無しさん:2011/01/13(木) 00:47:30
なんで配列の代入はできないの?
380デフォルトの名無しさん:2011/01/13(木) 00:47:31
>>377
変な持論いらない
381デフォルトの名無しさん:2011/01/13(木) 00:48:20
382デフォルトの名無しさん:2011/01/13(木) 00:50:53
持論(笑)
383デフォルトの名無しさん:2011/01/13(木) 00:50:58
>>379
配列の大きさを覚えてないから無理っす。
384デフォルトの名無しさん:2011/01/13(木) 00:56:55
385デフォルトの名無しさん:2011/01/13(木) 00:59:05
>367

localtimeは静的領域を内部に持っていて、それのポインタを返す。
よってリエントラントではない。

リエントラント版のlocaltime_rがある。

man on WWW
ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/localtime.3.html

386デフォルトの名無しさん:2011/01/13(木) 01:00:45
>379
配列は代入可能な左辺値では無いため。
387デフォルトの名無しさん:2011/01/13(木) 01:04:29
>>385
パーフェクトな回答をありがとっす。
localtime_r()か。
リエントラントとかはどうでもいいけど、手元で用意した構造体にさくっと入るとこが最高。
返値は捨てちゃっていいよね。
388デフォルトの名無しさん:2011/01/13(木) 01:08:45
>>386
消えろ
389デフォルトの名無しさん:2011/01/13(木) 01:36:29
qsort で float データのソートの使い方がいまいちわからん・・・
試行錯誤でなんとかちゃんと動くようになったが・・
390デフォルトの名無しさん:2011/01/13(木) 01:40:37
どの辺が分からないというのだね
391デフォルトの名無しさん:2011/01/13(木) 01:59:05
幾つも条件と処理があって、最終的には二手に分かれるコードがある。
func(){
 do{
  if(isA){
   break;
  }
  途中処理;
  if(isB){
   break;
  }
  成功処理;
  return 1;
 }while(0);
 失敗処理;
 return 0;
}
こんな制御構造にするの初めてなんだけど、意外と見通しも良いし便利。
局所変数を全部引きずれる割りにダブるコードもないし、
fopenとfclose、malocとfreeなんかも対応させ易い。
ifのネストが無くなり、変なフラグも要らない。
何で今まで使ってなかったんだろ。

疲れて変な事してるかな?
392デフォルトの名無しさん:2011/01/13(木) 02:08:41
perlにあるcrypt関数ってcでは何に当たりますか?
393デフォルトの名無しさん:2011/01/13(木) 02:17:12
>>391
すごい今更なんだけど
394デフォルトの名無しさん:2011/01/13(木) 02:18:53
Cにもあるよ
395デフォルトの名無しさん:2011/01/13(木) 02:21:37
do{}while(0);の中でbreak;を使うのは今更か。
なら良かった。
やってることはgotoと変わらん気がしてきたけど。
396デフォルトの名無しさん:2011/01/13(木) 02:24:57
>>395
そう。だからそんな小手先の細工するより、分かりやすく書け。
397デフォルトの名無しさん:2011/01/13(木) 02:32:24
なるほどね。↓の2番目に紹介されてた。
http://php.net/manual/ja/control-structures.do.while.php
優れたCプログラマだってさ。やったー!
398デフォルトの名無しさん:2011/01/13(木) 02:34:14
まぁ、学生や底辺プログラマはこういう小さい小細工ばかりに目が行きがちなのは分からなくもない
399デフォルトの名無しさん:2011/01/13(木) 02:40:48
優れたCプログラマだってさ。やったー!
400デフォルトの名無しさん:2011/01/13(木) 02:41:51
まあ、学生だろうね
401デフォルトの名無しさん:2011/01/13(木) 02:50:25
for( i=0; i<=10; i++)
というfor文でiを1msごとに1プラスされるようにしたいのですがどうすればよいですか?
402デフォルトの名無しさん:2011/01/13(木) 02:59:17
勉強するのにオススメの
C言語の本教えてください
403デフォルトの名無しさん:2011/01/13(木) 02:59:31
>>401
スレ違い
404デフォルトの名無しさん:2011/01/13(木) 03:03:15
ほかでききます
405デフォルトの名無しさん:2011/01/13(木) 03:11:51
>>401
ループ内にカウンタ変数で管理すれば?
406デフォルトの名無しさん:2011/01/13(木) 05:00:24
リアルタイムOSでないwindowsだと、まず1msを出すのが難しいだろ
407デフォルトの名無しさん:2011/01/13(木) 07:09:37
CUIアプリケーションの作成を行っています。
コマンドプロンプトからコマンドAを次のように実行するとき、
複数のファイルも同時に処理するためにはどうすればいいでしょうか?

A file1 file2 file3 file4 .....

よろしくお願いします。
408デフォルトの名無しさん:2011/01/13(木) 07:19:49
>>401
平均して1msならできるが
DWORD start, i;
start = GetTickCount();
for (i=0; i<1000; i++){
while (GetTickCount() - start <= i) Sleep(0);
}
409デフォルトの名無しさん:2011/01/13(木) 07:32:48
>>407
main(){
if(argc>0){
const char *fname = (const char*)argv[1];
<処理>
}
}
としていたら
thread(void* p){
const char *fname = (const char*)p;
<処理>
}

main(){
int i;
for(i=1;i<argc;i++){
<スレッド生成>
}
<終了待ち>
}
とかにする
410デフォルトの名無しさん:2011/01/13(木) 07:55:27
すみません。スレッドが何か分からないのですが、普通にargc回だけ
処理を繰り返すとかではだめなのでしょうか?
また引数の数が幾つかるかは解るのでしょうか?
411デフォルトの名無しさん:2011/01/13(木) 07:58:20
C言語にもスレッドなんてあるんですか。私はC++の話かと思いました。
412デフォルトの名無しさん:2011/01/13(木) 08:29:54
>>410
> すみません。スレッドが何か分からないのですが、普通にargc回だけ
> 処理を繰り返すとかではだめなのでしょうか?
だめ。
"複数のファイルを順番に処理する" 事は出来ても
"複数のファイルも同時に処理する" 事が出来ない。

> また引数の数が幾つかるかは解るのでしょうか?
409では省略したけど、main関数の引数で分かる
int main(int argc,char **argv){}
413デフォルトの名無しさん:2011/01/13(木) 08:41:18
自分のPCはAthlonXP2800なんですけど、スレッド処理ができるのでしょうか?
414デフォルトの名無しさん:2011/01/13(木) 09:44:44
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
415デフォルトの名無しさん:2011/01/13(木) 10:24:21
できる
416デフォルトの名無しさん:2011/01/13(木) 10:25:51
釣り針がでか過ぎて口に入りきらない
417デフォルトの名無しさん:2011/01/13(木) 11:34:05
>>413
シングルコアなのでできない
418デフォルトの名無しさん:2011/01/13(木) 11:36:10
>>417
そーなのかー
419デフォルトの名無しさん:2011/01/13(木) 12:07:40
高度情報を教えてください
420デフォルトの名無しさん:2011/01/13(木) 12:57:40
ここは試験対策スレではありませんので、他を当たってください
421デフォルトの名無しさん:2011/01/13(木) 13:00:35
同時にの意味が皆さん厳格に解釈なさっているようですが、この場合の
「同時に」は一つのコマンドラインで複数のファイルを処理できるという意味です。
422デフォルトの名無しさん:2011/01/13(木) 13:09:49
もちろんみんなわかってるさ
揚げ足を取って面白おかしく解釈して楽しんでるだけだよ
423デフォルトの名無しさん:2011/01/13(木) 13:43:49
>>422
いいからさっさと正解書けよ無能!!
424デフォルトの名無しさん:2011/01/13(木) 13:44:59
>>422
糞人
425デフォルトの名無しさん:2011/01/13(木) 13:49:53
>>422は糞の代表的糞味噌だな
426デフォルトの名無しさん:2011/01/13(木) 14:04:18
>>422
糞で無能とかマジ笑えるwww
427デフォルトの名無しさん:2011/01/13(木) 14:06:05
街で>>422を見かけたから顔面ぶん殴ってやったら涙目でなんかブツブツ言いながら顔真っ赤にしていたなwwwwwww
428デフォルトの名無しさん:2011/01/13(木) 15:17:37
バスに乗って駅まで行く
駅に何時何分までに到着したいかを入力すると何時何分発のバスに乗れば良いのかを表示する
っていうプログラムを作りたいんですけど、どういうふうに考えればいいのか分からないのでアドバイスください。
429デフォルトの名無しさん:2011/01/13(木) 15:21:31
>>428
着時間から発時間を決定する
430デフォルトの名無しさん:2011/01/13(木) 15:26:30
バスは分単位で正確に運行できない
おわり
431デフォルトの名無しさん:2011/01/13(木) 15:28:52
グーグルマップ使う
432デフォルトの名無しさん:2011/01/13(木) 15:34:01
>>428
↓こういう感じの時刻表を使って、
ttp://railway.jr-central.co.jp/jikoku/_pdf/shinkansen_west_bound101201.pdf
着駅を横に見て何時何分までに着く便を探し、縦に見てそれが何時何分に出発するかを探す
433デフォルトの名無しさん:2011/01/13(木) 15:52:58
各駅に、他の各駅までの所要時間情報を持たせる。
A B C の駅があった場合、
AはBまでの時間、Cまでの時間の情報を持ち
BはA、C
CはA、Bへの所要時間の情報をもつ。

あとは、各駅が、バスの到着する時間の情報を持つ。
AはB行きがa1時 a2時、C行きがa3時 a4時
BはA行きがb1時 b2時、C行きがb3時 b4時
CはA行きがc1時 c2時、B行きがc3時 c4時 だとする。

この2つの情報から、答えを得る。
たとえば、スタート地点がA駅で、ゴールがB駅なら、
まずA駅の持ってる、各駅への所要時間から、C駅までかかる時間Tを得て
次にA駅の持ってる時刻表情報からC行きの時間 a3 と a4 からそれぞれ Tを引いて、値が0以上で最も小さい時間になる ax が、
乗るべきバスの時間になる。
434デフォルトの名無しさん:2011/01/13(木) 15:55:33
>>422まじ糞だな
435デフォルトの名無しさん:2011/01/13(木) 16:00:46
計画妊娠させてやりたい
436デフォルトの名無しさん:2011/01/13(木) 16:16:18
出産日を入力したら、何月何日にセックスすればいいか表示するプログラムを作りたいのですが、
どうすればいいのかわかりません。
437デフォルトの名無しさん:2011/01/13(木) 16:23:10
俺にもわかりません
438デフォルトの名無しさん:2011/01/13(木) 16:28:04
>>436
遅延評価を利用すれば、出産日を遅くすることが可能
439デフォルトの名無しさん:2011/01/13(木) 16:48:42
>>422
おい無能で糞で低脳、何か言えよwwwwwwww
俺は高脳だからなwwwwwwwwwwwwwwwwwwwww
440デフォルトの名無しさん:2011/01/13(木) 18:00:08
リエントラント(笑)
441デフォルトの名無しさん:2011/01/13(木) 18:31:07
リエントラントとやらを説明できる奴なんてこのスレにいるわけがないw
442デフォルトの名無しさん:2011/01/13(木) 19:47:58
基本情報技術者レベルの話だろ
443デフォルトの名無しさん:2011/01/13(木) 19:58:31
>>442
基本情報技術者レベルの話すら説明できないお前って(笑)
444デフォルトの名無しさん:2011/01/13(木) 20:00:42
    /\___/ヽ
   //~    ~\:::::\
  . |  (・)   (・)   .:|
  |   ,,ノ(、_, )ヽ、,, .::::|   は?
.   |   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\
445デフォルトの名無しさん:2011/01/13(木) 20:00:48
>>422=>>442
糞の役にも立たないw
446442:2011/01/13(木) 20:03:38
422の時間は大学で授業受けてたっつーの。お前なんか幸せそうだな
447デフォルトの名無しさん:2011/01/13(木) 20:05:55
446 :442:2011/01/13(木) 20:03:38
422の時間は大学で授業受けてたっつーの。お前なんか幸せそうだな
448デフォルトの名無しさん:2011/01/13(木) 20:06:05
つーか流れ読んでなかったが>>422にレスしてるのってどうやら同一人物みたいだな
一人が悔しくて騒いでただけか
449デフォルトの名無しさん:2011/01/13(木) 20:07:16
(1)とりあえず自演ということにする
(2)「一人で悔しかったのか」というテンプレレスで勝った気になる
450デフォルトの名無しさん:2011/01/13(木) 20:08:47
「糞」って連呼してる奴が何人もいるのか、語彙少なっw
451デフォルトの名無しさん:2011/01/13(木) 20:08:57
422の時間は大学で授業受けてたっつーの(笑)
452デフォルトの名無しさん:2011/01/13(木) 20:10:00
(3)とりあえず語彙の少なさに突っ込めば優位に立てると信じている
453デフォルトの名無しさん:2011/01/13(木) 20:10:03
規制くらったから方針変更しただけじゃねーの
454デフォルトの名無しさん:2011/01/13(木) 20:11:46
釣れたw
455デフォルトの名無しさん:2011/01/13(木) 20:12:45
今年の春に基本情報受けますが何か?
456デフォルトの名無しさん:2011/01/13(木) 20:25:59
受かってから言えよ
まあ基本情報は合格率は低いが専門学校の奴が落ちまくってるだけだな
大学では周りにそんな資格に興味のある奴は少ないし、試しに受けてみたら2週間くらいの対策で受かったわ
Cの問題の過去問は問題設定は置いといてもコードはK&Rの練習問題くらいだと思った
それで俺が受けた回はCというよりただの文章読解の知能テストだったから焦った
選択問題だからC回避のためにJavaか表計算もやっといた方が良いかもな。俺は面倒だからC一択だったけど
457316:2011/01/13(木) 20:47:50
改造してスペーストルネードテトリスに改造した
http://codepad.org/8AImKgGH

ちなみにボクのハイスコアです。すごいでしょ
[Scr: 5980] [Line: 99] [Lv: 5]
必勝法はきれいにブロックを積んでくこと。あと瞬時の判断力です(^_^v
458デフォルトの名無しさん:2011/01/13(木) 21:04:07
>>456
お前の受けた回だけでも基本情報だけでもなくて、どの試験もいつもそんな感じ
国語力必須
459デフォルトの名無しさん:2011/01/13(木) 21:05:27
>>458
過去問と比較して相対的にそうだったって言ってるのが分からないかな
460デフォルトの名無しさん:2011/01/13(木) 21:09:38
そうか、すまんかった、許せ
461デフォルトの名無しさん:2011/01/13(木) 21:14:26
仲良く!
462316:2011/01/13(木) 21:21:04
これが有名なレベル9の壁だ。
[Scr: 12180] [Line:178] [Lv: 9]
名人くらいになると、ときどきレベル9まで行けちゃうのさ♪ でもその先は・・・さすがの名人でもお手上げさ(>_・「

<コロコロ読者のみんなに、名人から特別アドバイス>
    一本づつ消しても点数低いから、まとめて消すと点数高いよ。
    でも、欲張りすぎると画面が埋まっちゃうから、そこは注意がひつようだ!

    あと、内部的な透明ブロックがどこまで下がってるのかを感ぢる”野性のカン”も大切。
    それと、ゲームは一日一時間(>う<v
463デフォルトの名無しさん:2011/01/13(木) 21:28:04
初期化子ってなんなんでしょうか…?(-_-;
どなたか教えて下されませんか?
464デフォルトの名無しさん:2011/01/13(木) 21:31:28
こんなスレに誤爆とは珍しいな
465デフォルトの名無しさん:2011/01/13(木) 21:38:50
ここじゃだめですか?
どこで聞けばいいんだ?
466デフォルトの名無しさん:2011/01/13(木) 21:39:45
ごめん。それっぽいとこありました。byebye.
467デフォルトの名無しさん:2011/01/14(金) 01:37:50
ここよりニコニコの方がスゴイしwwwwwww
468デフォルトの名無しさん:2011/01/14(金) 02:41:36
C言語で文字列を逆順にするプログラムを書いています。
なるべくメモリ使用量を減らすことを念頭に置き、以下のような感じで作りました。
これだと、オリジナルの文字列がどんなに長くても、+1文字分しかメモリを使わないと思いました。
これはポインタを使っていないのですが、ポインタを使うように書き換えるにはどうしたらいいでしょうか?

#include <stdio.h>
#include <string.h>
int main() {
 char orig[32] = "abcdef";
 char tmp[1]; // 作業用
 int i = 0;

 printf("origの内容 = %s\n", orig); printf("origのアドレス = %p\n", orig);
 for (i = 0; i < strlen(orig); i++) {
  printf("%c\n", orig[i]);
  printf("%p\n", &orig[i]);
 }
 
 int from = 0;
 int to = strlen(orig) - 1;
 char result[strlen(orig)];
 for (i = 0; i < strlen(orig); i++) {
  tmp[0] = orig[from];
  orig[from] = orig[to];
  orig[to] = tmp[0];
  from++;
  to--;
  if (from > to || from == to) { // from が to と逆転したら終了
   break;
  }
 }
// 続く
469468:2011/01/14(金) 02:41:56
// 続き

 printf("origの内容 = %s\n", orig); printf("origのアドレス = %p\n", orig);
 for (i = 0; i < strlen(orig); i++) {
  printf("%c\n", orig[i]);
  printf("%p\n", &orig[i]);
 }
}
470 ◆QZaw55cn4c :2011/01/14(金) 03:10:45
471 ◆QZaw55cn4c :2011/01/14(金) 03:13:53
>>468
訂正します。
http://codepad.org/suNNV9nw
472デフォルトの名無しさん:2011/01/14(金) 03:21:10
pを文字列の最後まで動かしてんのにそれを再利用しないでstrlen()使うとか、
ほんとに無駄なことが大好きなんだなw
473デフォルトの名無しさん:2011/01/14(金) 03:26:38
メモリ減らすなら最初の文字列格納しているところを再利用しろ
474468:2011/01/14(金) 03:28:27
>>471
どうもありがとうございます。
ポインタ形式でも、 >>471 の5行目で char tmp として定義しているように、
詰め替え作業のための1文字は必要なのですね。

1点質問なのですが、4行目を
char *orig = "abcdef";
に書き換えると、
16行目の
*p = *q;
で segmentation fault で落ちるようになります。
これはどうしてでしょうか?
475 ◆QZaw55cn4c :2011/01/14(金) 03:31:07
>>472
なるほどねえ。
476468:2011/01/14(金) 03:32:44
>>471 のソースを、 >>472 の指摘の通り修正してみました。
http://codepad.org/nvJL67nU
477 ◆QZaw55cn4c :2011/01/14(金) 03:35:09
>>474
お使いの環境では、char *p = "abcdef"; としたときに、p の指す領域が、書き込み不可能として扱われているのだと思います。
私の環境 cygwin/Windows XP, gcc4 では問題ありませんでした。
478468:2011/01/14(金) 03:38:00
>>477
レスどうもありがとうございます。

こちらの環境を書いていなくて申し訳ありませんでした。
Win Xp SP2、cygwin 1.5.21 、 gcc 3.4.4 (4年ぐらい前にインストールした環境)
で行いました。

$ uname -a
CYGWIN_NT-5.1 ***** 1.5.21(0.156/4/2) 2006-07-30 14:21 i686 Cygwin
479デフォルトの名無しさん:2011/01/14(金) 03:40:45
480デフォルトの名無しさん :2011/01/14(金) 03:42:05
>>474
>char *orig = "abcdef";
"abcdef"のアドレスをorigにおぼえさしてるだけでバッファは無い
481468:2011/01/14(金) 03:48:21
>>480
レスどうもありがとうございます。

char orig[] = "abcdef";

char *orig = "abcdef";
は同じものだと思っていたけど、

前者はちゃんとメモリを確保しているのに対し、
後者はあくまでも "abcdef" の先頭アドレスが、*orig というポインタ変数に入っているだけということか。
482 ◆QZaw55cn4c :2011/01/14(金) 03:48:31
>>478
それは変ですね?環境は私とほぼ同じ。なんででしょう?
$ gcc-3 -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/configure -
-verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/s
hare/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --wit
hout-included-gettext --enable-version-specific-runtime-libs --without-x --enabl
e-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-li
bgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registr
y --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debu
g
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

$ uname -a
CYGWIN_NT-5.1 ***** 1.7.5(0.225/5/3) 2010-04-12 19:07 i686 Cygwin
483468:2011/01/14(金) 03:53:25
>>482
こちらではこんな感じになりました。(改行は手作業でやっています)

$ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /gcc/gcc-3.4.4/gcc-3.4.4-1/configure --verbose --prefix=/usr --exec-prefix=/usr
--sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-languages=c,ada,c++,d,f77,java,objc --enable-nls --without-included-gettext
--enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm
--disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug : (reconfigured)
Thread model: posix
gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
484デフォルトの名無しさん:2011/01/14(金) 05:17:16
485デフォルトの名無しさん:2011/01/14(金) 07:47:39
レジスタを使えば余分なメモリは1バイトも必要ないよ
486デフォルトの名無しさん:2011/01/14(金) 11:57:22
低級言語と聞きましたがハッカー御用達言語ですか。
487デフォルトの名無しさん:2011/01/14(金) 13:08:08
環境変数とAPIの違いが分からない、どちらもインターフェイスですよね?
488デフォルトの名無しさん:2011/01/14(金) 15:22:52
へーそうなんだ
489デフォルトの名無しさん:2011/01/14(金) 16:20:04
>>487
環境変数はメモリだよ。メモリに変数名と値がずらずら書かれてる。
環境変数をインターフェースとはあまり言わないと思うが、
まぁ実行環境とアプリケーション間のインターフェースなのかなぁ…んー。
490デフォルトの名無しさん:2011/01/14(金) 16:35:54
余計な感動詞付けんな
491デフォルトの名無しさん:2011/01/15(土) 07:02:59
C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?
1バイトずつrgb値が格納された変数からr値だけを取り出すときとか
493Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 11:57:00
画像から色がわかるやつ教えてください
494Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 12:27:05
色からその色の画像がわかるやつおしえてください
495デフォルトの名無しさん:2011/01/15(土) 13:19:37
日本語で
496Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 14:28:06
日本語ですよどうみても

あなたバカですか?
497Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 14:29:13
ひらがなと漢字を使ってますよ
文がおかしいといいたいのですか?

日本語でってなんかかっこつけていうんじゃねえよしね
死ねよかす
死ね
498デフォルトの名無しさん:2011/01/15(土) 14:44:21
日本語でお願いします
499Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 15:31:22
だめだこりゃ
500デフォルトの名無しさん:2011/01/15(土) 15:43:22
>>491
ビット演算をしたい時。
主に組み込み系。
デスクトップアプリやWEBアプリではほとんど使い道がない。

>>493
画像が格納されているVRAMのアドレスを調べてそのアドレスの値を取得。
画面モードによって画像データが何バイトずつ格納されているのか変わるので注意。

>>494
画像のVRAMのアドレスを調べて目的の色と同じ値をもつアドレスを走査。
501Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 16:00:07
そんなことしってんだよ!!
502Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 16:03:42
>>500
おう
503デフォルトの名無しさん:2011/01/15(土) 16:04:10
>>501
解決してよかったな
504Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 17:06:11
画像ってCで読み込むとバイナリで読み込まれるよな

VRAM領域に読み込ませるにはどうやんの

Windows7とLinux用に教えて
APIとかあんの?
505デフォルトの名無しさん:2011/01/15(土) 17:19:47
直接VRAMに読み込ませるAPIは無い。一般的にはRAMに読み込んでから転送。
506Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 17:29:15
Googleの色検索みたいなの

もういいです
507Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 17:30:42
>>504

はい
508デフォルトの名無しさん:2011/01/15(土) 17:52:05
>>507
一般的にはRAMに読み込んでから転送
これをするPerlコード教えてください
509Perl忍者 ◆M5ZWRnXOj6 :2011/01/15(土) 18:31:28
http://d.hatena.ne.jp/ryoff/20090802/1249229766
これがあったからお前らいらね

カエレしね
510デフォルトの名無しさん:2011/01/15(土) 18:41:47
ランレグス圧縮についてここまでできたのですが、
#include<stdio.h>
int main(void){
char x1=0, x2=0;
int x, count=0;
while((x=getchar())!=EOF){
x2=x1;
x1=x;
if(x1==x2){
count++;
}else{
if(count>1) printf("%d", count);
printf("%c", x1);
count=1;
}
}
if(count>1) printf("%d", count);
return 0;
}
これだと手入力でaaabbbだとa3b3と表示されます。
これをtxtファイルからaaabbbを読み込んでtxtファイルに出力してa3b3と表示できますか?
511デフォルトの名無しさん:2011/01/15(土) 18:50:57
標準入出力へリダイレクトする

hoge <in.txt >out.txt
512デフォルトの名無しさん:2011/01/15(土) 19:06:56
http://yuzuru.2ch.net/test/read.cgi/pc2nanmin/1080308026/
でも質問してるじゃねぇか。
せっかくコード書いたのに・・・・。
513デフォルトの名無しさん:2011/01/15(土) 19:10:02
ホモ
514デフォルトの名無しさん:2011/01/15(土) 19:24:35
宿題スレにも沸いた奴だろ
515デフォルトの名無しさん:2011/01/15(土) 19:26:54
答えたくなきゃ答えるな、アホ
516デフォルトの名無しさん:2011/01/15(土) 19:36:05
ありがとうございます。
すいません。いろんな方の意見を聞きたかったので。
517デフォルトの名無しさん:2011/01/15(土) 19:39:24
人の善意をぶちこわす最低な奴だな
518デフォルトの名無しさん:2011/01/15(土) 19:43:40
ホモ
519デフォルトの名無しさん:2011/01/15(土) 19:55:37
==main.c==
#include <stdio.h>
#include "struct.h"
#include "sub.h"
struct FOO g_foo;
int main(){
printf("%d\n",g_foo.nNum1);
Bar();
return 0;
}
==sub.h==
#include <stdio.h>
#include "struct.h"
void Bar(void);
==sub.c==
#include "sub.h"
void Bar(void){
printf("%d\n",g_foo.nNum2);
}
=struct.h=
struct FOO{
int nNum1;
int nNum2;
};
extern struct FOO g_foo;
上記の様に、グローバルな構造体FOOをmain.cとsub.cで利用しようと試みているのですが、
redefinition of 'struct FOO'等のエラーが出てしまいます。
何方か解決方法を教えていただけないでしょうか。
520デフォルトの名無しさん:2011/01/15(土) 19:59:55
>>519
main.c から
#include "struct.h"
#include "sub.h" → #include "struct.h"
でstruct.hが合計2回読まれてるので、struct FOOが2回定義されるから、エラーになる
インクルードガードでぐぐるとよい
521519:2011/01/15(土) 20:16:21
>>520
回答有難うございます。
==struct.h==
#ifndef STRUCT_H
#define STRUCT_H
struct FOO{
int nNum1;
int nNum2;
};
extern struct FOO g_foo;
#endif //STRUCT_H
で動いてくれました。
522デフォルトの名無しさん:2011/01/15(土) 22:27:13
すみません関数の
返す値とか返り値とか
関数名()の()の中身とか
がわかりません
なにがわからないのかわからないかもしれませんがorz

523デフォルトの名無しさん:2011/01/15(土) 22:32:11
関数fに対して、f(x, y)のx, yが引数、関数fに引数x,yを渡して処理した結果が戻り値。
C言語ではf(x, y)と書くことで関数fに引数x, yを渡す。

a = f(x, y);
とすれば、変数aにf(x, y)の戻り値が代入される。
524デフォルトの名無しさん:2011/01/15(土) 22:35:31
ホモ
525デフォルトの名無しさん:2011/01/15(土) 23:02:38
()には関数にあげるもの、返り値ではなく戻り値は関数がくれるもの
526デフォルトの名無しさん:2011/01/15(土) 23:08:33
戻り値のほうが多数派とはいえ、返り値もreturn value の訳語としては十分通用するレベル
527デフォルトの名無しさん:2011/01/15(土) 23:42:29
返り値は素人臭くて恥ずかしい
528デフォルトの名無しさん:2011/01/15(土) 23:44:15
別にどっちでもいいんだけどね
529369:2011/01/15(土) 23:46:19
ASP.NETから起動したexeの結果をhtml側に受け渡すためには
return
を使うのでしょうか?
530デフォルトの名無しさん:2011/01/16(日) 00:18:45
ポインタって何の役に立つんですか?プログラムを作る上でどういった利点が
あるのでしょうか??
531デフォルトの名無しさん:2011/01/16(日) 00:19:06
ちょっと確認したいんですが
fgets(t,100,fp)で標準入力から100バイトとってtに入れるんだけど
\0で文字の終わりですよね
で \0以降は何も入らないというか入ってないんでしょうか?
532デフォルトの名無しさん:2011/01/16(日) 00:20:01
>>530
printf に文字列を渡すことができる
533デフォルトの名無しさん:2011/01/16(日) 00:20:31
>>531
ゴミが入ってる
534Perl忍者 ◆M5ZWRnXOj6 :2011/01/16(日) 00:38:20
画像をメモリ上に読み込む関数をおしえてくれ
535デフォルトの名無しさん:2011/01/16(日) 00:39:33
loadimg()
536デフォルトの名無しさん:2011/01/16(日) 01:06:03
EOFって何ですか?
良くわかりません。

編集エディタの上左端に[EOF]とよくありますよね?
プログラミング組む時も良く使うのですがEOF=-1??
良く分かりません。教えてください。
537デフォルトの名無しさん:2011/01/16(日) 01:12:11
End of File
538デフォルトの名無しさん:2011/01/16(日) 01:13:53
>>537
つまりreturn0;=EOFですか?
このプログラムは正常終了したよって知らせるものですか?
良く分からなくて頭がおかしくなりそうです。
539デフォルトの名無しさん:2011/01/16(日) 01:20:43
ファイルの中のデータの羅列の最後に来ましたよ〜
っていうのをお知らせするもの…
とでも思ってくれればよい
540デフォルトの名無しさん:2011/01/16(日) 01:21:12
ファイルの終端記号
ファイルを最後まで読み込んだ時に返される。
実体は-1
541デフォルトの名無しさん:2011/01/16(日) 01:22:58
>>538

編集エディタのEOFは文章の最後という意味。
開業したらEOFは一行下がるでしょ?
542デフォルトの名無しさん:2011/01/16(日) 01:23:18
>>540
return0とは違うのですか?
543デフォルトの名無しさん:2011/01/16(日) 01:26:06
>>541
最後の行が変わっていいのですか?一行下がると
それは最後じゃないじゃないですか。
544デフォルトの名無しさん:2011/01/16(日) 01:27:52
return 0; はプログラムの最後の戻り値。
エディタのEOFは編集中の文章の最後という意味。

何のエディタ使ってるか知らないがエディタはC言語専用のものではない。
手紙を書こうがJAVA言語書こうが自作言語書こうがエディタで書いている文章の最後
を表す。

もう来るな!
545デフォルトの名無しさん:2011/01/16(日) 01:28:12
これはちょっと勉強し直せとしか言えない
546デフォルトの名無しさん:2011/01/16(日) 01:30:16
文章の最後がEOFってどういう意味ですか?
例えば100行目=EOFだとして、改行して101行目になるならば
EOF=100行目に矛盾しませんか?
547デフォルトの名無しさん:2011/01/16(日) 01:32:29
文章の最後の戻り値ということは

#include<stdio.h> EOF
int main()EOF
{EOF
int i;EOF
i=1;EOF
printf("%d\n",1);EOF
return 0;EOF
}EOF

こうするのですか?
548デフォルトの名無しさん:2011/01/16(日) 01:32:58
あ〜
プログラム中に書いてあるEOFは
ファイルオープンしてデータの最後を表す。

エディタについている消したくても消せないEOFというのはエディタのもの。
別物と思っとけ。
549デフォルトの名無しさん:2011/01/16(日) 01:34:09
>>547
ジュース吹き出した。
これはひどいw
550デフォルトの名無しさん:2011/01/16(日) 01:35:10
>>547
そのプログラムコードではEOFはすべて消せ。
551デフォルトの名無しさん:2011/01/16(日) 01:35:36
さすがにネタだろww

552デフォルトの名無しさん:2011/01/16(日) 01:35:44
\0とごっちゃになってる。それは文字列の終端
553デフォルトの名無しさん:2011/01/16(日) 01:36:55
>>541のレスでおかしくなってんぞw
554デフォルトの名無しさん:2011/01/16(日) 01:37:32
たとえばプログラムやる人ならわかると思うけど、0には特別な意味を持たせることがある。
たとえば配列に文字を入れていき、最後に0を入れたところを終わりとする決まり。その最後の印として0を使ったりする。
でも、べつに実際は0でなくてもいい。1でもいいし、2でもいいし、'A'でも'B'でも何でもいい。その配列を読む仕組みを自分で決めて、たとえば
文字列の最後を示す印に'A'をつかったって良い。 ただ、実際は0が都合がいいから0が使われてるだけ。 もちろん0の後ろに文字を続けたっていい。

EOFも同じで、ただの印。テキストファイルの終端を表す。
べつにEOFとしてどんな数字を使ってもいい。ただ、実際は1111111111..... が都合がいいから、11111111111....がEOFとして使われてるだけ。
(-1は、全部のビットが1の状態。11111111......)
(int型が32bitだとしたら、EOFはint型なので、実際はビットは 11111111111111111111111111111111)

たとえば、ファイルの最後にEOFが無くてもいいし、文字列の最後に0が無くてもいい。
'A'をEOFとして扱ってもいいし、文字列の最後を'A'として扱ってもいい。自分でデータを読む関数を書くときに、それがわかってれば実は何を使っても書ける。
ただ、一般的にEOFは-1だし、文字列の最後は0にするのが普通だから、他の人はテキストデータを読むときに、そういう形で記録されてることを期待してデータを読む。
だから一般的な0やEOFに合わせた方が他人にも使いやすいデータになるだろうし、他人の作った関数で処理するときも上手く動くだろうってだけの理由。
だから文字列の最後を意味する数字や、テキストファイルの最後を意味する数字がほぼ固定されてる。でも実際は何でもいい。関数を書く本人がわかってれば何を使っても動く。
555デフォルトの名無しさん:2011/01/16(日) 01:51:00
ナルホドやっと分かりました。
つまりこういうことですね。[EOF]

556デフォルトの名無しさん:2011/01/16(日) 01:51:10
>>554
人がよすぎワロタww
557デフォルトの名無しさん:2011/01/16(日) 01:52:08
マジでこういう釣りはいいから…
558デフォルトの名無しさん:2011/01/16(日) 01:54:25
>>554
ありがとうございます、じっくり読んでまたレスします。
本当に分からない事が次々に壁になって意識が飛びそうです。
559デフォルトの名無しさん:2011/01/16(日) 01:58:30
俺の予想では

C言語初めて+エディタというものも初めて。
サクラエディタあたりを使っているためエディタのEOFと
ファイルからのデータ読み込みのEOFがごっちゃになってる

と見た。
560デフォルトの名無しさん:2011/01/16(日) 01:58:49
>>557
たまにはこういう息抜きがあっても良いw
561デフォルトの名無しさん:2011/01/16(日) 02:00:03
釣り針がでかすぎて飲めねーよ
562デフォルトの名無しさん:2011/01/16(日) 08:42:57
http://codepad.org/ZjcLcspe
ランダムにテキストの中の文字を出力するプログラムを書いているのですが5行目しか出力されません
どうすれば改善されるでしょうか
563デフォルトの名無しさん:2011/01/16(日) 08:51:50
乱数初期化したら?
564デフォルトの名無しさん:2011/01/16(日) 09:02:58
n = rand() % 6;
の前に
srand((unsigned) time(NULL));
を追加
565デフォルトの名無しさん:2011/01/16(日) 12:09:42
C言語の入門書はスレッドとか画像処理も教えるべき
566デフォルトの名無しさん:2011/01/16(日) 13:23:20
mainから関数呼び出してfor文を1回目実行させ
mainにもどり、また1回目で呼び出した関数でfor文を実行した場合
2回目のfor文では初期化((for(n=0;fgets(t,10,fp)!=NULL;n++)の場合n=0)
は実行されるんですか?
567デフォルトの名無しさん:2011/01/16(日) 13:29:53
(ホモ);
568デフォルトの名無しさん:2011/01/16(日) 13:30:31
*
for文の中でnの値をprintfしてみればいいじゃない
570デフォルトの名無しさん:2011/01/16(日) 13:34:40
>>566
なんで実行されない可能性があると思うの?
571デフォルトの名無しさん:2011/01/16(日) 13:43:23
自分で勉強用に ubuntu10.10で、画像メモリにデータを書き込む方法。のテストを書いてみました。
特別なライブラリは、一切使ってません。(使ったライブラリーは stdio.h と stdlib.h だけです。)
よかったら参考にどうぞ。

ダウンロード方法;
1.
    適当なディレクトリに移動します。

2.
    ソースをダウンロードします。
    git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/io_fb.git

コンパイル方法:
3.
    ソースディレクトリに移動します。
    cd io_fb

4.
    コンパイルします
    make

実行方法:
5.
    (Alt + Ctrl + F1) 〜 F6 のどれかのキーを押して、tty画面に移動し、ログインします。(gnomu上のコンソールでは動かないです)

6.
    管理者権限でプログラムを実行します。(ユーザー権限だと、フレームバッファに直接書いたりできません)
    sudo ./io_fb_test

7.
    うまく動けば、画面にフェドラっぽい青いグラデーションが表示されるはずです。
    gnome 画面に戻るには (Alt + F7) 〜 F8 のどれかのキーを押せば戻れます。
572デフォルトの名無しさん:2011/01/16(日) 14:13:18
http://codepad.org/pTl3CQVM
このプログラムのコンパイル結果が
$ gcc x.c
x.c: In function ‘sort’:
x.c:84: warning: passing argument 4 of ‘qsort’ from incompatible pointer type
/cygdrive/c/Users/mituru/AppData/Local/Temp/ccH37fKt.o:x.c:(.text+0x1b1): undefi
ned reference to `_fptintf'
collect2: ld returned 1 exit status
こうなって実行できません><
573デフォルトの名無しさん:2011/01/16(日) 14:17:37
>>572
間違い探し。 以下の2つの違うところはどこでしょう?
fptintf
fprintf
574デフォルトの名無しさん:2011/01/16(日) 14:22:41
>>572
84行目の引数の型が間違ってる。というかmycompに引数を与えてない
575デフォルトの名無しさん:2011/01/16(日) 16:16:48
■質問
hello.c というソースコードから
hello.obj, hello.exe ができるまでの流れについて確認させて下さい。

自分なりの考えを以下に書きましたので、
合っているかどうかコメントいただけるととても嬉しいです。よろしくお願いします

-----------------------------------------------------------------------------

※ hello.c は「hello」という文字列を出力するソースコードとする。
文字列を出力するには printf というライブラリ関数を使うが、
使うには宣言をする必要がある。それが #include <stdio.h> という命令である。

printf というライブラリ関数はライブラリ内で定義されているため、
hello.c の実行可能プログラムを実行するにはライブラリもメモリ上にロードする必要がある。
そして、メモリ上にロードされたライブラリにある printf のアドレスを
実行可能プログラムが参照する必要がある。

ソースコードをコンパイルして生成するオブジェクトファイルには、
printf のアドレスは仮のアドレスとなっている。
リンカを実行した時に仮のアドレスが確定し、実行可能プログラムが作られる

以上
576デフォルトの名無しさん:2011/01/16(日) 16:27:24
>>575
だいたいいいと思うけど、コンパイルのときのプロセスと実行時のプロセスの説明が
混ざってるのが気になる。
577デフォルトの名無しさん:2011/01/16(日) 16:29:51
>>576
即レスありがとうございます……!! もうちょっと考えてみます
578デフォルトの名無しさん:2011/01/16(日) 19:31:05
ttp://codezine.jp/article/detail/3706?p=2
このコード凄いな
こんな事をするならば、普通C++を使うだろって思ってしまったわ
579デフォルトの名無しさん:2011/01/16(日) 20:06:13
うん、Javaを使うよね
580デフォルトの名無しさん:2011/01/16(日) 20:23:29
ふーーん
581デフォルトの名無しさん:2011/01/16(日) 20:24:37
ほも
582デフォルトの名無しさん:2011/01/16(日) 20:46:50
エピステーメー も同じようなテクニックの記事をコードジンにのせてたな。
583デフォルトの名無しさん:2011/01/16(日) 20:52:14
C++でも自前でvtable作ったりする事はあるけどな
584デフォルトの名無しさん:2011/01/16(日) 21:12:02
>>583
お前みたいな、発想のやつっているよな〜
mallocを自作してみましたみたいなwww
でも、お前みたいな発想好きだよ
585デフォルトの名無しさん:2011/01/16(日) 21:27:27
エピステーメーってキモイと思うんだけど
586デフォルトの名無しさん:2011/01/16(日) 21:33:59
まあ、普通にキモイわな。
587デフォルトの名無しさん:2011/01/16(日) 21:38:36
よかった、俺だけじゃなかったんだな
確かにあの人技術はすごいのかも知れないけど、掲示板とかの発言がちょっと
588デフォルトの名無しさん:2011/01/16(日) 22:18:43
575での仮のアドレスってなに?
>リンカを実行した時に仮のアドレスが確定し、
じゃあ真のアドレスはどのタイミングで確定するの?
589デフォルトの名無しさん:2011/01/16(日) 22:19:36
すごいの?あの人
590AQ:2011/01/16(日) 22:28:34
自動微分のボトムアップ算法でC言語ではどのようにして作ればよいのですか_?
591デフォルトの名無しさん:2011/01/16(日) 22:39:38
まず服を脱ぎます。
592デフォルトの名無しさん:2011/01/16(日) 22:42:19
もちろん下からな
593デフォルトの名無しさん:2011/01/16(日) 22:42:43
へえ
594デフォルトの名無しさん:2011/01/16(日) 22:46:19
と言っても、靴下は脱ぐなよ
595AQ:2011/01/16(日) 23:04:24
早く教えてください
下半身が寒くて風邪ひきそうです!
596デフォルトの名無しさん:2011/01/16(日) 23:07:47
ここで確認です。PCは起動していますか?
597AQ:2011/01/16(日) 23:23:31
PC筋ならヒクヒクしてます!
598デフォルトの名無しさん:2011/01/16(日) 23:34:41
コードを書いて、終了です。
599デフォルトの名無しさん:2011/01/17(月) 00:48:35
for(j=moto;j==genzai;j++)
{
goukei += kyori[j];
printf("%d\n",goukei);
}

この文でエラーみたいなのがでるんだけど、どこか間違っていますか。
文法的に間違ってあるところがあるなら指摘よろしくお願いします。
600AQ:2011/01/17(月) 00:49:28
C言語で書くと自動微分のボトムアップ算法でどのような感じでプログラムかけます?
なり済ましやめてください
601デフォルトの名無しさん:2011/01/17(月) 00:51:46
まず服を脱ぎます。
602デフォルトの名無しさん:2011/01/17(月) 00:56:15
もちろん下からな
603デフォルトの名無しさん:2011/01/17(月) 01:03:20
と言っても、靴下は脱ぐなよ
604デフォルトの名無しさん:2011/01/17(月) 01:03:59
早く教えてください
下半身が寒くて風邪ひきそうです!
605デフォルトの名無しさん:2011/01/17(月) 01:05:29
>>599
for(j=moto;j!=genzai;j++)
{
goukei += kyori[j];
printf("%d\n",goukei);
}

606デフォルトの名無しさん:2011/01/17(月) 01:49:03
>>605
ありがとうございます!
なんかできるような気がしてきました。
607デフォルトの名無しさん:2011/01/17(月) 01:55:24
え?
608デフォルトの名無しさん:2011/01/17(月) 01:58:30
>>606
具体的にどんなエラーが出るか貼ると教えやすいよ。
後一部分だけだと分かりにくいし。
609デフォルトの名無しさん:2011/01/17(月) 10:14:12
#include<stdio.h>
int main()
{
int x
scanf("%d\n",x);
printf("%d\n",x);
return (0);
}

エラーが出ます、どうしたら・・・
610デフォルトの名無しさん:2011/01/17(月) 10:15:00
間違えました
#include<stdio.h>
int main(void)
{
int x;
scanf("%d\n",x);
printf("%d\n",x);
return (0);
}
です。何がおかしいでしょうか?
611デフォルトの名無しさん:2011/01/17(月) 10:18:21
>>610
scanf("%d",&x);
612デフォルトの名無しさん:2011/01/17(月) 11:03:33
もまえら
double x=6.5;
printf("%lf",x);
printf("%f",x);
どっち使ってる?
613デフォルトの名無しさん:2011/01/17(月) 11:14:52
%f
614デフォルトの名無しさん:2011/01/17(月) 11:15:56
%fだな
615デフォルトの名無しさん:2011/01/17(月) 11:18:02
どっち使ってるって、上は間違いじゃん。正しく動くのは、あまりに間違いが多くて後から対応したからだろ
616612:2011/01/17(月) 11:31:23
>>615
%lfは元々あったものじゃないのか。
なるほろ。
617デフォルトの名無しさん:2011/01/17(月) 11:33:52
初心者の時double型をscanf("%f",&x)って書いて困ったことがある。
618デフォルトの名無しさん:2011/01/17(月) 11:37:24
あるある
619デフォルトの名無しさん:2011/01/17(月) 13:25:38
ニコニコで「テトリスを1時間で作る」観たけど
あれはすごいな。
俺プログラマになれないと思った。
620デフォルトの名無しさん:2011/01/17(月) 13:43:25
>>619
はいはい巣にお帰りください
621デフォルトの名無しさん:2011/01/17(月) 14:54:45
>>619
あんな物は誰でも出来る。
622デフォルトの名無しさん:2011/01/17(月) 15:02:13
あれが誰にでもできるってマジかよぉ
623デフォルトの名無しさん:2011/01/17(月) 15:34:30
>>621
テトリス自体は単純なプログラムかもしれないけど
というか色々なツールを使ってパソコンの事がより理解できるのが
楽しかったんだよ。APIだとメモ帳だのブラウザだのC言語だtの
色んなツールでCUIアプリ作れるんだって実感してワクワクした。
624デフォルトの名無しさん:2011/01/17(月) 15:35:30
そりゃCygwinの出力ターミナルだけでテトリス作るのはさすがに無理だけどな。
625デフォルトの名無しさん:2011/01/17(月) 15:37:36
嘘を教えない
標準Cじゃ無理だがそうでないならできるだろ?
626デフォルトの名無しさん:2011/01/17(月) 15:42:53
俺もVIPの安価でゲームを作ってたけど誰も覚えてないだろうなw
昔はそういうノリのスレが多かったのに最近はスレが立った途端に「企画厨乙」だからな。
VS起動するまで待てよと、プログラマの俺様が見てるのに勝手に終わらせるなといいたい。
627デフォルトの名無しさん:2011/01/17(月) 15:44:20
昔は1ターンごとに印刷してたゲームだってあるんだから
何だってありだといえばありなんだよ
ただ、今の時代にそういう制限をして楽しいのはプログラマだけ。
628デフォルトの名無しさん:2011/01/17(月) 15:47:00
思うんだがプログラミングやってたら分かるけど2Dゲーム作るのは
めちゃくちゃ嵌まるが、3Dゲームやりだすと途端にフォーマルにな
るから糞つまらんのよな。

コマンドプロンプト上でテトリスみたいなの作れるの???
色は無理なのは分かるけど、棒が落ちてくる出力機能何てあったっけ?
APIが必要に決まってる。
629デフォルトの名無しさん:2011/01/17(月) 15:47:56
>>626
プログラマまじかっこいい!!!
このスレの人、何だかんだで答え教えてくれるからまじ便利!!
630デフォルトの名無しさん:2011/01/17(月) 15:54:38
>APIが必要に決まってる
いや最初に標準Cのみじゃ無理だって言ったろ・・・・・・・
なに言ってんだよ
631デフォルトの名無しさん:2011/01/17(月) 15:57:04
エスケープシーケンスを使えば色付きテトリス作れるだろ。
最近のWindowsは無理だったと思うけど。
632デフォルトの名無しさん:2011/01/17(月) 17:16:24
633デフォルトの名無しさん:2011/01/17(月) 17:18:47
exe単体とかうpされてもwwww
よしば色ついてたとしてもエスケープシーケンスではないだろうし
634デフォルトの名無しさん:2011/01/17(月) 17:25:59
http://codepad.org/cnDNcd6W

コンパイルは通るんですけど
449行目の
preorder(temp);
に入ったところで強制終了されてしまいます。

なぜでしょうか?よろしくお願いします。
635デフォルトの名無しさん:2011/01/17(月) 17:26:41
エスケープシーケンスって何?
出力媒体?
636デフォルトの名無しさん:2011/01/17(月) 17:36:26
449行www
どんな複雑なプログラミング何だよw
ここ入門編だぞw
637デフォルトの名無しさん:2011/01/17(月) 17:41:36
>>636
すいません・・・w

どこで聞けばいいですかね?
638デフォルトの名無しさん:2011/01/17(月) 17:45:55
デバッグってのは自分でするもんだぞw
639デフォルトの名無しさん:2011/01/17(月) 17:52:27
mudaNodeのwhile文内の先頭に
if (target->oya == NULL) {
puts("!!!!!!!!!!");
exit(1);
}
って入れたら分かるかもね
640デフォルトの名無しさん:2011/01/17(月) 18:08:49
>>639
直し方がわかりません・・・
641デフォルトの名無しさん:2011/01/17(月) 18:21:48
ネタにしては時間掛けたな
642デフォルトの名無しさん:2011/01/17(月) 18:21:53
流石にもうお手上げだよ
それに答えてあげるにはこのプログラム全体を理解しないといけない
それはめんどいわ

if (target->oya == NULL) {
return count;
}

ってしとけばとりあえずコンパイルは通るし結果も出るよ
多分結果はおかしいだろうが
643デフォルトの名無しさん:2011/01/17(月) 18:28:04
449行クソワロタww
それをデバッグしろとかプログラマ推奨環境だろww
644デフォルトの名無しさん:2011/01/17(月) 18:37:02
宿題依頼者は何が起こっているのかわからないんじゃないか?
解説しなよ〜。
645デフォルトの名無しさん:2011/01/17(月) 18:38:30
646デフォルトの名無しさん:2011/01/17(月) 18:47:15
なんとか自己解決しました!

ご迷惑おかけしました
647デフォルトの名無しさん:2011/01/17(月) 20:02:29
>>646
いえいえ
648デフォルトの名無しさん:2011/01/17(月) 22:53:47
http://codepad.org/Dld86Xas

またまた申し訳ありません

678行目以降のSAが全く動いてくれません。
原因がわかる方よろしくお願いします。
649デフォルトの名無しさん:2011/01/17(月) 23:25:01
原因は分かります。
650デフォルトの名無しさん:2011/01/17(月) 23:33:06
$ gcc -o tyu.exe a.o b.o c.o

cygwinでこのようにコンパイルするとなにがおこるんですか
651デフォルトの名無しさん:2011/01/17(月) 23:36:51
PCが物故割れた
652デフォルトの名無しさん:2011/01/17(月) 23:44:50
>>650
それがおこります
653デフォルトの名無しさん:2011/01/17(月) 23:46:40
>>650
gcc: a.o: No such file or directory
gcc: b.o: No such file or directory
gcc: c.o: No such file or directory
gcc: no input files
654 ◆QZaw55cn4c :2011/01/17(月) 23:47:17
>>650
実際にはリンカ (ln?) が呼び出されます。
オブジェクトファイル a.o b.o c.o とスタートアップモジュール(crt.o または gcrt.o?) が結合されて、tyu.exe という名前の実行ファイルが作成されます。
c のソースファイルからオブジェクトファイルを作成するには、gcc -c a.c などとします。
655デフォルトの名無しさん:2011/01/17(月) 23:50:41
なるほど実行を行わないでリンクしなおすわけね
656デフォルトの名無しさん:2011/01/17(月) 23:53:41
> リンカ (ln?)

助けて、腹筋が…
657 ◆QZaw55cn4c :2011/01/18(火) 00:00:22
失礼 ld でしたか。
ln はハードリンク/シンボリックリンクを張るコマンドでしたね。
658デフォルトの名無しさん:2011/01/18(火) 00:01:38
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
659デフォルトの名無しさん:2011/01/18(火) 00:13:56
>>608
レスサンクス。
出るのはエラーというかプログラムがそこのラインだけをなぜか無視するんだ。

結局、「==」が原因だったみたいで「!=」にしたら解決した。
660デフォルトの名無しさん:2011/01/18(火) 00:24:41
情報系の大学に進学が決まって
パンフレットに書いてあるカリキュラムなどを見ると
C言語やJavaを使ったプログラミングがあります
C言語から習うということらしく、ちょっと先に勉強しようと
思い調べてみたのですが、コンパイラ? というものが
必要らしく、数が多くどれを導入すればいいかわかりません
使っているOSはWindowsなのですが
オススメのコンパイラがあれば教えて貰えないでしょうか?
661デフォルトの名無しさん:2011/01/18(火) 00:27:50
どうせ大学ではlinuxかcygwinでgccだよ
662デフォルトの名無しさん:2011/01/18(火) 00:28:25
visual studio 2010 expressを入れてそれから考えろ
663 ◆QZaw55cn4c :2011/01/18(火) 00:29:11
664デフォルトの名無しさん:2011/01/18(火) 00:29:47
いや入学したらDreamSparkで無料だから。でも大学でやる程度ならそんな糞重いソフトをいちいち立ち上げたりしない
665デフォルトの名無しさん:2011/01/18(火) 00:31:47
↑なにこいつw
666デフォルトの名無しさん:2011/01/18(火) 00:32:29
VisualStudioをさっさと入れてさっさと始めるのがいい。
コンパイラの使い方なんぞ大学行ってから覚えろ
667デフォルトの名無しさん:2011/01/18(火) 00:32:34
VS信者がそろそろウザかったから
668デフォルトの名無しさん:2011/01/18(火) 00:36:50
好きなのは MinGW だが、他人に薦めるなら Visual Studio
669デフォルトの名無しさん:2011/01/18(火) 00:38:49
Visual Studioの無料版Visuar Studia
670デフォルトの名無しさん:2011/01/18(火) 00:44:27
Comeauにしとけ。
良いコンパイラだぞ
671デフォルトの名無しさん:2011/01/18(火) 00:46:14
borlandが出ねえ。C言語を始めよう と一緒に使ってお手軽環境なのに
672デフォルトの名無しさん:2011/01/18(火) 00:49:09
今Vectorみたらコンパイラ付属で設定せずに使えるらしいエディタがあったからそれ使ったらどう?
673デフォルトの名無しさん:2011/01/18(火) 00:49:51
>>660
LSI C-86試食版
674デフォルトの名無しさん:2011/01/18(火) 00:50:00
今インテリセンスが効かない環境でプログラムしたらストレスで死ぬ
675デフォルトの名無しさん:2011/01/18(火) 00:50:51
>>660
その前に本読んどけ
676デフォルトの名無しさん:2011/01/18(火) 00:52:44
>>674
良い反面教師だよ君は
677デフォルトの名無しさん:2011/01/18(火) 00:52:52
これを機にLinux環境でgccを使うべき。
678デフォルトの名無しさん:2011/01/18(火) 00:54:42
virtualbox+ubutuオヌヌメ
679デフォルトの名無しさん:2011/01/18(火) 00:55:39
つ How Linux works
680デフォルトの名無しさん:2011/01/18(火) 00:56:47
ここに書かれたやつ調べてみて
どれか導入してみます
あと本も買ってみます
みなさん、遅い時間にありがとうございました。
681デフォルトの名無しさん:2011/01/18(火) 00:57:19
>>674
俺も死ぬ
682デフォルトの名無しさん:2011/01/18(火) 01:07:05
いまどきlinuxにこだわる必要ない
Javaもいらない
683デフォルトの名無しさん:2011/01/18(火) 01:07:53
ほっほっ
684デフォルトの名無しさん:2011/01/18(火) 01:13:28
パソコン自体いらない
685デフォルトの名無しさん:2011/01/18(火) 01:19:31
ふっほっ
686デフォルトの名無しさん:2011/01/18(火) 01:23:45
俺自体いらない
687デフォルトの名無しさん:2011/01/18(火) 01:25:22
どぴゅっどぴゅっ
688デフォルトの名無しさん:2011/01/18(火) 02:08:28
>>504

Cの標準ライブラリーだけで
三角形にBMP画像をテクスチャーマッピングして、フレームバッファに描き込んで、画面に表示するプログラム作ってみました。
(linuxです。ubuntu10.10(32bit)で動作確認)

ダウンロード方法
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/testcode.git

コンパイルはダウンロードしたやつのディレクトリに移動して make と打つだけです。

実行は Alt + Ctrl + F1 などで移動できる tty 画面で sudo で実行する必要があります。
(管理者権限でないと、フレームバッファーに描き込めないらしい…)
コマンドは sudo ./fb_paint_tool_test と打ちます。


とりあえず、頂点を一ヶ所だけ上下左右に移動できます。h j k l キーで、操作はviと同じです。あとスペースで表示リセット。
終了は作ってません。 Ctrl + c とかで適当にお願いします(笑)
689デフォルトの名無しさん:2011/01/18(火) 02:23:56
グロ注意
690デフォルトの名無しさん:2011/01/18(火) 03:14:21
自分で自由なプログラムをかけって課題が出されたんですが、
アルゴリズム(ヒープ、クイック、二分探索木など)を用いて出来る
ある程度簡単なプログラムは何があるでしょうか?
良いアイデアがあったら教えてください。
691デフォルトの名無しさん:2011/01/18(火) 03:21:37
HELLWWORK
692デフォルトの名無しさん:2011/01/18(火) 03:25:11
質問させてください

今からWin32APIを学ぶことについてどう思いますか?
ものすごく非効率な長ったらしいプログラミングで
おまけに予約語が多くて理解しづいらいし

しかもそろそろWin64APIがくるんじゃないかと思うとあんまりやる気ができません
もし「それでもやっとけ!」という理由があれば教えてください
693デフォルトの名無しさん:2011/01/18(火) 03:33:58
やるな
694デフォルトの名無しさん:2011/01/18(火) 03:55:31
>>692
1冊読んで判断しろ
695デフォルトの名無しさん:2011/01/18(火) 04:29:07
#include<stdio.h>
int main(void){
char x1,x2;
int x,count=0;
while((x=getchar())!=EOF){
x2=x1;
x1=x;
if(x1==x2){
count++;
}
else{
if(count>1)
printf("%d", count);
printf("%c", x1);
count=1;
}
}
if(count>1) printf("%d", count);
printf("%c",x1);
return 0;
}
入力した文字をカウントするプログラムです。
aabbと入力するとa2b2となるのですがabbと入力するとab2となります。
ab2をa1b2にするにはどうすればいいのでしょうか?
696デフォルトの名無しさん:2011/01/18(火) 04:45:21
>>695
if(count>1)これいる?
あとcount=0はcount=1かな
今手元に環境ないから試せてないけど
697デフォルトの名無しさん:2011/01/18(火) 04:45:32
それよりもababって入力されたらどうするんだww
根本的にやり方間違ってる
698デフォルトの名無しさん:2011/01/18(火) 04:47:39
ああ、連続でしか入力されない前提だと思った
699デフォルトの名無しさん:2011/01/18(火) 04:50:16
>>698その通りです。連続でしか入力されない前提ですね。説明不足でした。
700デフォルトの名無しさん:2011/01/18(火) 05:18:55
全然もとを活かしてないけどこんな感じかの
Cって初期化しないと配列ってどうなってたっけ0で埋められてる気もしたけど念のためいれてある。
#include<stdio.h>
int main(void){
int c[26]={0};
int i;
int x;
while((x=getchar())!=EOF)
{
c[x-'a']++;
}
for(i=0;i<26;i++)
{
if(c[i]>0){
printf("%c",i+'a');
printf("%d",c[i]);
}
}
return 0;
}
701デフォルトの名無しさん:2011/01/18(火) 05:29:05
アホが来たw
702デフォルトの名無しさん:2011/01/18(火) 05:34:29
おそらく学校の宿題で、しかも配列使えないとみた
それを考慮して作った

#include<stdio.h>
int main(void){
char x1,x2; //x1は入力用 x2は確認用
int  count = 0;
    x2 ='\0'; //何も入ってない
while((x1=getchar()) != EOF){ //文字入力された?
if(count == 0){
putchar(x1); //もしカウントが0ならば、入力された文字を出力
count++;    
}
if(x2 == '\0'){  
x2 = x1;   // もし初回ならば、確認用x2にx1を入れる
}else if(x1 == x2){
count++;   //もし前に入力されたのと同じであればカウント
}else{
printf("%d",count); //違う文字が入力されたのならカウントを出力
count = 0;    //カウント初期化
x2 = x1;     //確認用に新しい文字を入れる
}

}
printf("%d",count); //EOFが入力されたらできなかったカウントを出力
return 0;
}
703デフォルトの名無しさん:2011/01/18(火) 05:40:44
すまん、こっちでコメントいれたから全角スペースが入ってしまった

#include<stdio.h>
int main(void){
char x1,x2; //x1は入力用 x2は確認用
int i,count = 0;
i=0; x2 ='\0'; //何も入ってない
while((x1=getchar()) != EOF){ //文字入力された?
if(count == 0){
putchar(x1); //もしカウントが0ならば、入力された文字を出力
count++;
}
if(x2 == '\0'){
x2 = x1; // もし初回ならば、確認用x2にx1を入れる
}else if(x1 == x2){
count++; //もし前に入力されたのと同じであればカウント
}else{
printf("%d",count); //違う文字が入力されたのならカウントを出力
count = 0; //カウント初期化
x2 = x1; //確認用に新しい文字を入れる
}
}
printf("%d",count);
return 0;
}
704デフォルトの名無しさん:2011/01/18(火) 08:58:05
特定のIPアドレスの人間からふたつの数字を受けたとったり送ったりするにはどうすればいいですか?
サーバーを介さずに、コンソール画面で行いたいのですが、何から勉強すればいいでしょうか

もしサンプルプログラムでもあればお願いします
705デフォルトの名無しさん:2011/01/18(火) 10:14:32
ソケットを勉強するといいです
706デフォルトの名無しさん:2011/01/18(火) 14:28:32
[フォルダ名1] - [フォルダ名1-2]
         - [フォルダ名1-3]
というふうに「フォルダ名1-2とフォルダ名1-3」のフォルダ名を取得することはできるのでしょうか?
取得することができるなら、どういったものを使えば取得できるのでしょうか?
707デフォルトの名無しさん:2011/01/18(火) 15:11:51
スレ違い
708デフォルトの名無しさん:2011/01/18(火) 16:10:57
>>690
線形リスト
709デフォルトの名無しさん:2011/01/18(火) 16:24:53
>>708
710デフォルトの名無しさん:2011/01/18(火) 17:43:08
>>705
遅くなりました。
あざっっす!!
711デフォルトの名無しさん:2011/01/18(火) 18:53:38
二進木構造を使って、引数の出現回数を表示するプログラムを作ったのですが、
12行目でエラーが出てコンパイルできません。原因を教えてください。

http://codepad.org/7c0gOGxl
712デフォルトの名無しさん:2011/01/18(火) 18:56:46
>>711
;
713デフォルトの名無しさん:2011/01/18(火) 19:03:38
「作った」じゃなくて「写した」じゃねーの?w
714711:2011/01/18(火) 19:06:54
>>713 まあ、穴埋めだからほとんど自分で書いてはいないです
715デフォルトの名無しさん:2011/01/18(火) 20:04:07
0〜2
の間を打てばそれぞれの
int a;
scanf("%d,&a");
switch(a)

case :0
breake;

case :1
breake;

case :2
breake;

0〜2以外を打てばまた入力からもどすにはどうせればいいですか??
716デフォルトの名無しさん:2011/01/18(火) 20:10:00
int a;
b: scanf("%d",&a);
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;
default:
goto b;
}
717デフォルトの名無しさん:2011/01/18(火) 20:16:14
ありがとうございます
>>716
ほかに方法ってないんですか??whileかなにかで
718デフォルトの名無しさん:2011/01/18(火) 20:19:08
breake;
719デフォルトの名無しさん:2011/01/18(火) 20:19:36
do-while文
720デフォルトの名無しさん:2011/01/18(火) 20:19:49
国に帰る
721デフォルトの名無しさん:2011/01/18(火) 20:24:57
goto使うなって言ってんだろ!!!
722デフォルトの名無しさん:2011/01/18(火) 20:32:16
int a;
do {
scanf("%d",&a);
}while( check(a) );

こういう風にしたのですが
check(a)ってどうすればいいですか??
723デフォルトの名無しさん:2011/01/18(火) 20:32:19
>>718
kwsk
>>719
ありがとうございますmm
724デフォルトの名無しさん:2011/01/18(火) 20:36:47
// >>695
// 入力があったらカウントして → 古い字と違ってたら色々表示して → EOFなら終わり

// 言葉のまんま、そのまま素直に書いただけ


#include<stdio.h>

void main()
{
int count = -1;
int a = EOF;


do {
int _ = getchar();
count++;


if((a != _) && (count > 0)) {
printf("%c%d ", a, count);
count = 0;
}


a = _;
} while(a != EOF);
}
725デフォルトの名無しさん:2011/01/18(火) 20:43:53
a < 0 || 2 < a
726デフォルトの名無しさん:2011/01/18(火) 20:55:46
int a;
do {
scanf("%d",&a);
}while(a < 0 || 2 < a);

727デフォルトの名無しさん:2011/01/18(火) 21:00:17
>>725
scanf("%d",&a);
while(a<0||2<a){
scanf("%d",&a);
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;

}
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;

ってことですか???
728デフォルトの名無しさん:2011/01/18(火) 21:04:23
えっ
729デフォルトの名無しさん:2011/01/18(火) 21:06:42
>>727
>>726でおk
730デフォルトの名無しさん:2011/01/18(火) 21:10:36
>>729
ありがとうございますmm
731デフォルトの名無しさん:2011/01/18(火) 21:37:23
int a;
do{
scanf("%d", &a);
}while(a>>2);

// お、おしい…!!(orz
732デフォルトの名無しさん:2011/01/18(火) 21:43:58
>>731
やっぱwhile
だけじゃ無理ぽですよね??
733デフォルトの名無しさん:2011/01/18(火) 21:55:11
できますん
734デフォルトの名無しさん:2011/01/18(火) 22:09:14
>>733
ちくしょおおおおおおおおおおお
735デフォルトの名無しさん:2011/01/18(火) 22:23:17
int a;

do {
scanf("%d", &a);
getchar();
} while(a!=0 && a!=1 && a!=2);

間にゲッチャを挟んだら、なぜか動いた。不思議すぎる。
736デフォルトの名無しさん:2011/01/18(火) 22:32:30
改行
737デフォルトの名無しさん:2011/01/18(火) 23:43:48
へえ
738デフォルトの名無しさん:2011/01/19(水) 00:54:54
C言語の公開されてるライブラリがたくさんあるサイト教えてください
739デフォルトの名無しさん:2011/01/19(水) 01:07:30
sourceforge.netとか?
740デフォルトの名無しさん:2011/01/19(水) 01:39:57
codeliteで日本語入力したいけど検索しても
見つかりません。
どなたか情報お持ちの方いらっしゃいませんか。
741デフォルトの名無しさん:2011/01/19(水) 01:49:40
>>739
ありがとうございます!
742デフォルトの名無しさん:2011/01/19(水) 02:05:49
いえいえ
743706:2011/01/19(水) 08:47:06
>>707
C言語だけではやっぱりできないんですか、ありがとうございました
744デフォルトの名無しさん:2011/01/19(水) 14:26:13
745デフォルトの名無しさん:2011/01/19(水) 15:48:49
SAがうまく動いているか疑問です、、、

http://codepad.org/Vnyt0IuA

はじめてC言語でSAを作ったのでこれであっているのかわかりません。。。
あと初期温度の設定方法等もイマイチわかりません、、

またブロック1つ1つの座標を出したいのですが、うまくいきません。。

質問が多いですがよろしくお願いします。

746デフォルトの名無しさん:2011/01/19(水) 17:22:26
ulFlagの状態によって表示する要素を変化させようと思い、以下の様なコードを書きました。
#include<stdio.h>
#define GetNum(ulFlag) ((ulFlag&0x01)?0:(ulFlag?0x02)?1:2)
int main(){
int nNum[3];
unsigned long ulFlag=0x01;
nNum[0]=1;
nNum[1]=1;
nNum[2]=2;
printf("%d\n",nNum[GetNum(ulFlag)]);
return 0;
}
しかし、printf()の部分で「error: expected ':' before ')' token」とエラーが出てしまいます。
恐らくマクロが間違っていると思うのですが、どの様に修正すればよいのでしょうか。
747デフォルトの名無しさん:2011/01/19(水) 17:26:25
>>746
? が単体で使われている
748746:2011/01/19(水) 17:41:51
>>747
回答有難うございます。
(ulFlag?0x02)

(ulFlag&0x02)
に修正した所、無事動作しました。

原因がタイポとはお恥ずかしい限りです...
749デフォルトの名無しさん:2011/01/19(水) 18:08:30
与えられた点座標から凸包を作りたいのですがどうすればいいですか?
角度を使うみたいですが角度に関するプログラミング知識がないです
750デフォルトの名無しさん:2011/01/19(水) 18:42:21
角度に関する数学知識はありますか?
751デフォルトの名無しさん:2011/01/19(水) 19:47:27
int main(int argc, char *argv[ ])
を使ってファイル演算子のプログラムを作ってるのですが
自分はコンパイルするときに引数を指定するのではなく、プログラム実行時にscanfを使って引数を指定したいのですが
どうやればいいのでしょうか
そのまま
for(i=0;i<argc:i++){
scanf( "%d", &argv[i+1] );
}
ってやって引数を指定できますか?
できればどうすればいいか教えて欲しいです・・・
752デフォルトの名無しさん:2011/01/19(水) 19:50:18
>>751
sprintf
753デフォルトの名無しさん:2011/01/19(水) 19:51:50
argv[i+1]
754デフォルトの名無しさん:2011/01/19(水) 19:55:55
>>752
それを調べればできるんですね。調べてみます!
755デフォルトの名無しさん:2011/01/19(水) 19:56:22
scanf("%d", &i); i に入力した数字が入る

argv[i+1] 実行時に渡した引数が文字列で得られる

sscanf(argv[i+1], "%d", &i);
実行時に渡した引数(文字列) から整数値を i へ入れる
756デフォルトの名無しさん:2011/01/19(水) 20:02:49
どうせエラーチェックしないんなら atoi の方が簡単じゃない?
757デフォルトの名無しさん:2011/01/19(水) 20:03:50
>>755
つまらない確認ですが
scanf("%d", &i);
sscanf(argv[i+1], "%d", &i);
の流れで、コンパイル時のコマンドライン引数をプログラム実行中のコマンドプロンプトから入力して指定出来るってことですか?
758デフォルトの名無しさん:2011/01/19(水) 20:13:35
>>757
実行時の引数: 実行ファイル名に続いてタイプした文字
 例: a.exe 1 2 3
 これは argv[] から得られる

実行中コマンドプロンプトからの入力
 これは scanf() で得られる 

コンパイル時(≒実行ファイルを作る時)の引数って何のことだ?
コンパイラに渡す引数のことか? 例: cc -c a.c
759デフォルトの名無しさん:2011/01/19(水) 20:19:34
>>758
えっとですね、
コンパイラの時に
a.exe ファイル名 文字列1 文字列2って言うのやつです
これでファイルを指定して、そのファイル名に文字列1、2をデータとして付随させるって感じなのでしょうか・・・
760デフォルトの名無しさん:2011/01/19(水) 20:25:10
>>759
コマンドプロンプト上で
a.exe ファイル名 文字列1 文字列2 [enterキー]
こうした時だな? (統合環境からデバック実行という話ではない: このケースは統合環境側で設定する話)

なら

argc は 4
argv[0] が a.exe
argv[1] が ファイル名
argv[2] が 文字列1
argv[3] が 文字列2
こういうふうになってくれる
761デフォルトの名無しさん:2011/01/19(水) 20:27:39
>>760
おお、それが理想でした!ありがとうございます!やってみます
762デフォルトの名無しさん:2011/01/19(水) 20:37:32
>>750
はい、あります
763デフォルトの名無しさん:2011/01/19(水) 20:43:33
>>762
#include <math.h>
764デフォルトの名無しさん:2011/01/19(水) 22:43:52
>>761
いえいえ
765デフォルトの名無しさん:2011/01/19(水) 22:44:26
どうもどうも
766デフォルトの名無しさん:2011/01/19(水) 23:02:59
こちらこそ
767デフォルトの名無しさん:2011/01/19(水) 23:56:24
->ってどういう演算子なんだっけ?
またわすれちったw
768デフォルトの名無しさん:2011/01/19(水) 23:58:05
2011年01月19日 14:36 投稿
http://www.nicovideo.jp/watch/1295415473

MGプランニング
http://www.mg-p.jp/contact/index.html
769751:2011/01/20(木) 00:35:32
さっきお世話になった751です
一応教わったことをもとにしてプログラムを組んでみました
http://codepad.org/0ogGmmKa
perrorは多分これで動いたので大丈夫かもしれませんが、こんなので大丈夫なんでしょうか・・・
770デフォルトの名無しさん:2011/01/20(木) 00:45:04
>>767
構造体
771デフォルトの名無しさん:2011/01/20(木) 00:46:27
;-)
772デフォルトの名無しさん:2011/01/20(木) 00:56:07
Nが”自然数”の2乗なのかどうかを判定するには、どういう風にすればいいでしょうか?
苦肉の策で以下のようなプログラムが考えられますが、
もっと高速なアルゴリズムはないでしょうか
よろしくお願いします。

int a;
a=(int)sqrt(N);
if( a^2 == N^2 ){
printf("Nは自然数aの2乗の数である\n");
}
else{
printf("Nの2乗根は自然数ではありません\n");
}
773デフォルトの名無しさん:2011/01/20(木) 00:58:13
>>772
上記に誤りがありました。
誤) if( a^2 == N^2 )
正) if( a^2 == N )
774デフォルトの名無しさん:2011/01/20(木) 01:01:45
sqrt()使ってるのに高速化とかw
775デフォルトの名無しさん:2011/01/20(木) 01:10:18
>>772
N の範囲が狭くて、何度も計算を繰り返すなら
一度計算しておいて後はテーブルを参照するとか
776デフォルトの名無しさん:2011/01/20(木) 01:15:41
>>774
高速じゃないのでお尋ねしている次第です

>>775
Nの範囲は1000^2くらいまでなので、ちょっと厳しいですね。
777デフォルトの名無しさん:2011/01/20(木) 01:18:41
int f(int n)
{
int i, j;

for(i = 2; i * i <= n; i++) {
for(j = 0; n % i == 0; j++) n /= i;
if(j & 1) return 0;
}

return n == 1;
}

素直に書けばこんなもんかな
778デフォルトの名無しさん:2011/01/20(木) 01:22:57
>>776
二乗かどうか調べるだけなら 10^6 bit ですむ
これって 125kB にしかならないからパソコン上でなら問題ないと思う

何の二乗か調べる必要があるなら short を使うとして 2MB でおk
779デフォルトの名無しさん:2011/01/20(木) 01:32:35
下の桁から3,7,9の出現確認を遡り繰り返せばいい
780デフォルトの名無しさん:2011/01/20(木) 01:35:41
>>777さんのアルゴと
>>778さんのテーブル参照アルゴと
以下の単純なアルゴとではどっちが早いんですかね…
高速かの知識がないため、どれが早いのか判断できません
すみません

int a;
for(a=2; a*a<=N; a++){
if( a*a == N ) return 0;
}


781デフォルトの名無しさん:2011/01/20(木) 01:37:29
>>777
sqrt の方が圧倒的に早かった
782デフォルトの名無しさん:2011/01/20(木) 01:37:51
実測しろよボケ
アルゴと略すなボケ
783デフォルトの名無しさん:2011/01/20(木) 01:42:21
for(i=0;i<100;i++)
for(n=1;n<1000*1000;n++) sum+=check(n);
の時間を計測した結果

>>772 1.5秒
>>777 41.6秒
>>778 0.6秒
784デフォルトの名無しさん:2011/01/20(木) 01:46:16
>>783
失礼 >>778 0.5秒だった
785デフォルトの名無しさん:2011/01/20(木) 01:47:26
sseで大量のベクトル演算を一度に行えば、1クロックで4つのsqrtを同時に計算できるよ。
テーブル参照ですらこの速度には敵わない。
よって>>777のルゴの方が>>778のルゴより速いし、ベクトル化してsqrtを一気に計算するようにすれば、さらに1/4の速度にさえなりうるアルよ。
786デフォルトの名無しさん:2011/01/20(木) 01:49:59
いいからソース出せよ。
787デフォルトの名無しさん:2011/01/20(木) 01:51:00
>>779
すみません…知識が足らずちょっと理解ができません

>>782
おっしゃるとおりなのですが、いま試せる環境にありません。
言葉は気をつけます。

>>783
わざわざ試していただき、本当にありがとうございす。
テーブル参照方式でいこうと思います。

>>785
今回はそこまで考えていませんのでテーブル参照でいきたいとおもいます。
ありがとうございました。
788デフォルトの名無しさん:2011/01/20(木) 09:31:31
ももも
789デフォルトの名無しさん:2011/01/20(木) 16:45:04
>>763
それは分かります
3点のなす角度から求めようとしたのですが断念してます

何かうまく凸包を作れる方法はありませんか?
790デフォルトの名無しさん:2011/01/20(木) 16:48:12
>>789
誰だかわかんねー
質問の内容は?
791デフォルトの名無しさん:2011/01/20(木) 16:50:58
http://codepad.org/QeQXsR28
このようなハッシュ関数を作ってみました。
何か不具合はあるでしょうか。よろしくお願いします。
792デフォルトの名無しさん:2011/01/20(木) 16:52:48
fq=fopen(argv[1],"rb");

if(fq==NULL){
printf("入力ファイルが存在しません。\n");
if(argv[4]=="1"){
printf("続けるにはEnterを押してください");
scanf("%c\n",&c);
while(c!="\n"){
printf("ええっ?\n");
scanf("%c",&c);
}
if(c=="\n")
exit(1);
}
else
exit(1);
}
改行を認識しません。どうすればいいでしょうか?
793デフォルトの名無しさん:2011/01/20(木) 16:58:54
>>749 が元質問か
一直線上にない 3点を結んで得られる領域は常に凸包だぜ?

ってのはおいといて、与えられた点列は
一筆書きの経路順に並んでいるのか?
↑の順序がランダムなものなのか?
あちこちにちらばた座標の羅列なのか?

得られた凸包で囲まれる領域内に、与えられた全ての点が存在すること が条件だと思うけど…
794デフォルトの名無しさん:2011/01/20(木) 17:05:50
>>792
while(c!="\n"){

while(c!='\n'){

if(c=="\n")

if(c=='\n')
795デフォルトの名無しさん:2011/01/20(木) 17:27:50
>>791
設計意図が不明
ハッシュ法に用いるには巨大すぎるし、
かといって暗号学的ハッシュ関数の検証なんか
このスレでできるわけがない
796デフォルトの名無しさん:2011/01/20(木) 17:35:45
>>795
64bit長のハッシュ値得るだけなら CRC64 を実装すりゃ良いしね
797デフォルトの名無しさん:2011/01/20(木) 17:39:42
>>790
>>749です
798デフォルトの名無しさん:2011/01/20(木) 17:40:59
http://codepad.org/nF5Gtpyt

何度もすいません。。
444〜505行目までのzahyo()が思うように動いてくれません。
やりたいこととしては、
zahyo[j][0][0or1or2]に直方体のx,y,z座標が一番小さい部分、
zahyo[j][1][0or1or2]に直方体のx,y,z座標が一番大きい部分、
の値を後順走査によって求めていきたいのですがわかりません。

どなたかよろしくお願いします。
799デフォルトの名無しさん:2011/01/20(木) 17:42:49
>>797
分かりにくいから解決するまでコテつけてよ
atan2 で左回りをチェックするだけでおk
初期位置は一番端の点(最大値or最小値の点)にすればいい
800デフォルトの名無しさん:2011/01/20(木) 17:43:59
>>795
行列が大きすぎるのでしょうか?
801デフォルトの名無しさん:2011/01/20(木) 17:47:50
糞スレあげ
802デフォルトの名無しさん:2011/01/20(木) 17:49:31
ほっほっ
803デフォルトの名無しさん:2011/01/20(木) 17:56:49
>>801
>>802
死ね
804デフォルトの名無しさん:2011/01/20(木) 18:03:33
ふっほっ
805デフォルトの名無しさん:2011/01/20(木) 18:03:52
>>800
ハッシュ法に使うには得られるハッシュ値の値域が広すぎる
# おおよそハッシュ法では、ハッシュ値の値域を指せるだけの配列が必要になるので

多対1関数で 値の衝突の確立 値のユニーク性 を求めるのは数学の話
806デフォルトの名無しさん:2011/01/20(木) 18:04:13
べっぽっ
807デフォルトの名無しさん:2011/01/20(木) 18:07:35
値域256ビットですけど・・・
数学の話になるんですね。数学板に行ったほうがいいですか?
808デフォルトの名無しさん:2011/01/20(木) 18:15:48
ほっほっ
809デフォルトの名無しさん:2011/01/20(木) 18:16:39
810デフォルトの名無しさん:2011/01/20(木) 18:21:44
オリジナルがいいんですw
811デフォルトの名無しさん:2011/01/20(木) 18:21:53
ふっほっ
812デフォルトの名無しさん:2011/01/20(木) 18:27:10
ほっほっ
813デフォルトの名無しさん:2011/01/20(木) 18:30:12
どぴゅっどぴゅっ
814デフォルトの名無しさん:2011/01/20(木) 18:32:09
はしゅっはしゅっ
815デフォルトの名無しさん:2011/01/20(木) 18:39:49
ぶはっ!選ぶはっ!
816デフォルトの名無しさん:2011/01/20(木) 18:40:21
>>798をどなたか・・・
817デフォルトの名無しさん:2011/01/20(木) 18:45:07
>>816
スレ違いですよ
818デフォルトの名無しさん:2011/01/20(木) 19:03:39
>>817
どこのスレがいいですかねー
819デフォルトの名無しさん:2011/01/20(木) 19:17:26
age
820749:2011/01/20(木) 19:49:35
>>793見逃してました
あちこちにちらっばた座標の羅列です。
各点を配列に入れて
一番下の座標を配列の最初の所までもっていく所まではできているのですが

どうもatan2の使い方が間違っているのかうまくいきません
kakudo[i]=atan2((double)y2-(double)y1,(double)x2-(double)x1);
で、y1、x1固定でy2、x2の値をyn、xnまで変えてそれぞれ計算する。
ここで確認のためkakudoの中身を見たのですがprintfでは出ないのですが・・・
821デフォルトの名無しさん:2011/01/20(木) 19:56:51
>>820
atan2 の戻り値は浮動小数点数でラジアン単位なんだけど、printf の書式や
kakudo[] の型は大丈夫なん?
822749:2011/01/20(木) 20:13:09
kakudo[]はdouble型でprintfは%lfなのですが違うのでしょうか?
823デフォルトの名無しさん:2011/01/20(木) 20:23:42
また%lfかよ
824デフォルトの名無しさん:2011/01/20(木) 20:37:57
int[] a = new int[12];
とした場合、aの各要素の値はどうなりますか?
825デフォルトの名無しさん:2011/01/20(木) 20:42:26
signal(SIGINT,受け取った時に実行する関数)
これだとCtrl-cが入力されたら関数実行して終了 だけど
プログラムとしてCtrl-cが入力されたことになる(ユーザーがCtrl-cを押さずに)
ようにするのはどうすればよいでしょう
raise(SIGINT) ・・・とか?
826デフォルトの名無しさん:2011/01/20(木) 20:42:44
printfでは %f
scanfでは %lf
827デフォルトの名無しさん:2011/01/20(木) 20:42:51
>>824
そもそもコンパイル出来ないので
心配する必要は無いです
828デフォルトの名無しさん:2011/01/20(木) 20:49:33
>>825
それでいいです
829デフォルトの名無しさん:2011/01/20(木) 20:51:33
>>827
コンパイルできますが・・・
javacですよ、分かってるんです、か
830デフォルトの名無しさん:2011/01/20(木) 20:52:18
>>829
C言語?
831デフォルトの名無しさん:2011/01/20(木) 20:55:14
javaに決まってますよね。
832デフォルトの名無しさん:2011/01/20(木) 20:56:35
>>829
つスレタイ
833デフォルトの名無しさん:2011/01/20(木) 21:10:22
>>832
つjavac
834デフォルトの名無しさん:2011/01/20(木) 21:16:32
javac って C89 や C90 準拠なの?
new って予約語ですらない記憶だが…
835デフォルトの名無しさん:2011/01/20(木) 21:18:15
>>833
ごめん
君のノリは理解できない
836デフォルトの名無しさん:2011/01/20(木) 21:30:42
>>834
javacはjavaのコンパイラ
javaの規格には準拠しているがC89やC90に準拠している必要性は皆無
どうしてそんな発想ができるのか理解に苦しむのだが
837デフォルトの名無しさん:2011/01/20(木) 21:31:39
もうマジでこういう釣りはいらないから…
838デフォルトの名無しさん:2011/01/20(木) 21:32:11
>>820
やってみた
http://codepad.org/nqkE5ooD

変数名はめちゃめちゃなので気をつけて
839デフォルトの名無しさん:2011/01/20(木) 21:33:15
>>834
お前何言ってんの?
840デフォルトの名無しさん:2011/01/20(木) 21:34:23
面白いと思ったんだろ
841デフォルトの名無しさん:2011/01/20(木) 21:43:10
「〜てみた」
842デフォルトの名無しさん:2011/01/20(木) 21:44:52
こんなあからさまな釣りに馬鹿釣れなお前らw
843デフォルトの名無しさん:2011/01/20(木) 21:51:03
>>842∈お前ら
844デフォルトの名無しさん:2011/01/20(木) 21:54:47
これがダダスベリの後釣り宣言ですね
845デフォルトの名無しさん:2011/01/20(木) 21:58:05

          / ̄ ̄ ̄\
         /   ⌒  ⌒ ヽ
         /   ( ●)(●) |
         |    (__人__) }   うーっす
        /、.    ` ⌒´  ヽ
       /            |
       |           | /
       ヽ_|  ┌──┐ |丿
         |  ├──┤ |
         |  ├──┤ |
846デフォルトの名無しさん:2011/01/20(木) 22:13:23
>>844
とりあえずそう書いておけば優位に立てた気がするよね
847デフォルトの名無しさん:2011/01/20(木) 22:14:17
スベったからって絡むなよw
848デフォルトの名無しさん:2011/01/20(木) 22:20:48
さんざん釣られておいて「いやスベってたしwww」とか痛いな
849デフォルトの名無しさん:2011/01/20(木) 22:21:50
スベったからって絡むなよ(キリッ
850デフォルトの名無しさん:2011/01/20(木) 22:23:19
ほっほっ
851デフォルトの名無しさん:2011/01/20(木) 22:24:53
ふっほっ
852デフォルトの名無しさん:2011/01/20(木) 22:28:44
ふっふっ
853デフォルトの名無しさん:2011/01/20(木) 22:34:42
どぴゅっどぴゅっ
854デフォルトの名無しさん:2011/01/20(木) 22:43:50
ぶはっ!選ぶはっ!
855デフォルトの名無しさん:2011/01/20(木) 22:53:12
scanfのつかいかたをりかいしたー
856デフォルトの名無しさん:2011/01/20(木) 22:54:39
857デフォルトの名無しさん:2011/01/20(木) 22:58:01
  (  ´)`Д) )) < ハァハァ こんな所でダメェ
  /  つ つ  < 大丈夫だって,こんな糞スレ誰も来ねえよ
(( (_(_  ノ ノ
  し∪ ∪

 Σ( ゚д゚ )゚д゚)
  /  つ つ
  (_(_  ノ ノ
  し∪ ∪


  ( ゚д゚ )゚д゚)
  /  つ つ
(( (_(_  ノ ノ
  し∪ ∪
858デフォルトの名無しさん:2011/01/20(木) 22:58:34
糞スレあげ
859デフォルトの名無しさん:2011/01/20(木) 23:04:42
860デフォルトの名無しさん:2011/01/20(木) 23:10:47
>>859
861デフォルトの名無しさん:2011/01/20(木) 23:17:41
>>859
天才プログラマー
862デフォルトの名無しさん:2011/01/20(木) 23:55:55
>>859
すげぇな
863デフォルトの名無しさん:2011/01/20(木) 23:57:47
自演うぜえ
864デフォルトの名無しさん:2011/01/21(金) 00:02:31
(1)とりあえず自演ということにして優位に立とうとする。
865デフォルトの名無しさん:2011/01/21(金) 00:05:16
>>859-862
死ね
866デフォルトの名無しさん:2011/01/21(金) 00:06:40
>>865
あまりそういうこと書き込まないほうが君のためだよ
867デフォルトの名無しさん:2011/01/21(金) 00:13:05
スベル〜荒らす〜ごまかす
868デフォルトの名無しさん:2011/01/21(金) 00:20:33
859は1時間でテトリス作るのに
おまえらときたら
869デフォルトの名無しさん:2011/01/21(金) 00:25:11
>>867
お前まだいたのか
よっぽど悔しかったんだな
870デフォルトの名無しさん:2011/01/21(金) 00:26:23
>>867
釣られる〜ごまかす
871デフォルトの名無しさん:2011/01/21(金) 00:31:01
そりゃ釣られたら誰だって悔しいものさ
872デフォルトの名無しさん:2011/01/21(金) 00:37:29
>>868
つjavac
873デフォルトの名無しさん:2011/01/21(金) 00:41:21
>>868
つg95
874デフォルトの名無しさん:2011/01/21(金) 00:44:15
>>868
つvbc
875デフォルトの名無しさん:2011/01/21(金) 00:46:54
お前らより>>859の方が幾分マシだな
876デフォルトの名無しさん:2011/01/21(金) 00:53:37
すごいなぁテトリス
877デフォルトの名無しさん:2011/01/21(金) 01:12:02
俺に任せれば3秒で出来るけどな
878デフォルトの名無しさん:2011/01/21(金) 01:14:03
こんなの誰でもできる
879デフォルトの名無しさん:2011/01/21(金) 01:14:58
スーパークラスのコンストラクタとサブクラスのコンストラクタとではどちらが先に読み出されますか?
教えてください(>_<)
880デフォルトの名無しさん:2011/01/21(金) 01:15:53
またか
コテつけてくれればいいのに
881デフォルトの名無しさん:2011/01/21(金) 01:16:28
>>878
でもお前にはできないんだろ?w
882デフォルトの名無しさん:2011/01/21(金) 01:16:32
スーパークラスに決まってんだろタコ
883デフォルトの名無しさん:2011/01/21(金) 01:16:44
お手並み拝見
884デフォルトの名無しさん:2011/01/21(金) 01:23:34
>>879
スーパークラス。
デストラクタは読み出される順番の逆。
これ以上はスレチ
885デフォルトの名無しさん:2011/01/21(金) 01:28:33
>>877
任せた
886デフォルトの名無しさん:2011/01/21(金) 01:30:04
C++はクズ
887デフォルトの名無しさん:2011/01/21(金) 01:31:33
>>879
そもそもコンパイル出来ないので
心配する必要は無いです
888749:2011/01/21(金) 01:36:32
>>838
有難うございます
コード内容を使わせて頂きます
889デフォルトの名無しさん:2011/01/21(金) 01:39:42
>>887
それはね、ソースコードが出てないとスベるんだよ
890デフォルトの名無しさん:2011/01/21(金) 01:41:42
C言語使ってるキモヲタを見かけたから顔面ぶん殴って罵倒してやったwwwww
そしたら意味不明なことをブツブツ呟きながら顔真っ赤にして泣き出しやがったwwwwwww
俺はさらにもう一発顔面に蹴りを入れてやったねwwwwwwwww
周りの女どもは俺に惚れてたわwwwwwwwwwwwwwwww
891デフォルトの名無しさん:2011/01/21(金) 01:43:51
テトリス作りたいけど俺には無理だ
892デフォルトの名無しさん:2011/01/21(金) 01:46:57
俺は3秒だわ
893デフォルトの名無しさん:2011/01/21(金) 01:56:30
>>892
うp
894デフォルトの名無しさん:2011/01/21(金) 01:58:07
>>859なら3秒でも可能
895デフォルトの名無しさん:2011/01/21(金) 02:24:20
コピペでも用意するかな
896デフォルトの名無しさん:2011/01/21(金) 02:48:38
コピペでも用意すればいいと思うよ
897デフォルトの名無しさん:2011/01/21(金) 03:09:30
コピペでも用意した方がいいな
898デフォルトの名無しさん:2011/01/21(金) 03:56:41
1コピペ500円から
899デフォルトの名無しさん:2011/01/21(金) 04:17:35
うひょーーーーwwwwwwwwwwwwwwwwwwww
900デフォルトの名無しさん:2011/01/21(金) 05:31:07
おまんこなめ泰造
901デフォルトの名無しさん:2011/01/21(金) 06:07:42
クニマスについてkwsk
902デフォルトの名無しさん:2011/01/21(金) 10:01:17
プログラムから、実行形式のプログラム(.exe)
を起動させる命令って何だっけ?
教えて?
win32やmfcでもできます?
903デフォルトの名無しさん:2011/01/21(金) 10:25:07
904デフォルトの名無しさん:2011/01/21(金) 10:27:11
>>902
system
905デフォルトの名無しさん:2011/01/21(金) 14:12:09
インクリメント演算子とデクリメント演算子で前置と後置がイマイチ理解できないです。
処理を行ってから1つ値を増やす・減らす、1つ値を増やす・減らしてから処理を行う
これはわかるんですが、具体的どういう事なのかよくわからないです教えてください
906デフォルトの名無しさん:2011/01/21(金) 14:24:39
釣りか死ね
907デフォルトの名無しさん:2011/01/21(金) 15:06:16
>>905
わかるのにわからないというのがよくわからない
908デフォルトの名無しさん:2011/01/21(金) 15:07:42
>>907
自分でもなんて言ったらいいかわからないんですが
理解はできる具体例がわからなくて納得できない
こんな感じでもやもや
909デフォルトの名無しさん:2011/01/21(金) 15:15:58
>>908
じゃあ適当な具体例を書いてみたから実行結果と照らし合わせて自分で考えてみなさい
http://codepad.org/jsKrX9BY
910デフォルトの名無しさん:2011/01/21(金) 15:17:34
>>909
サル並みの初心者だけどゆっくり考えてみます
お手数掛けます><
911デフォルトの名無しさん:2011/01/21(金) 15:22:16
a = 10;
printf ++a;

結果 11

a = 10;
printf a++;

結果 10
912デフォルトの名無しさん:2011/01/21(金) 15:31:02
codepadの方はなるほどまったくわからん状態です
数字が4つ123,456,789,999で
i++ははじめから3つ
++iは123を飛ばして3つ
123,456,789
456,789,999
というのはワカリマシタ

>>911のは
aの10に1を増やしてから出力するから11
下は出力を先にしてるから10
こうですかわかりません・・・
913デフォルトの名無しさん:2011/01/21(金) 15:40:41
> 処理を行ってから1つ値を増やす・減らす、1つ値を増やす・減らしてから処理を行う

わかっていたのではなかったのか
914デフォルトの名無しさん:2011/01/21(金) 16:04:28
>>912
printfで評価される前にインクリメントされるかされないかの違い。
915デフォルトの名無しさん:2011/01/21(金) 16:17:27
>>914
わざと誤解を招くような言い方をするなんて意地悪な奴だw
916デフォルトの名無しさん:2011/01/21(金) 16:58:16
>>904
有難う 試してみます
917デフォルトの名無しさん:2011/01/21(金) 16:58:58
アセンブリで見るとわかるよ
918デフォルトの名無しさん:2011/01/21(金) 17:02:00
a++ と書いた後から ; の前までのどこかで a の値を増やしている
919デフォルトの名無しさん:2011/01/21(金) 17:05:45
ついでに・・・現在この様なエラーが出て困っています。

vc 6.0 のプログラムを 2005 vc に変換しようとしています。
> DialogBox( hi, "DLG_DATA", HWND_DESKTOP, (DLGPROC)dlgproc );
>1>c:\users\新しいフォルダー (13)\9章\list0910\list0910.cpp(11) : error C2664: 'DialogBoxParamW' :
2 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

なんか良くわからん よろ
920デフォルトの名無しさん:2011/01/21(金) 17:06:44
スレ違い
921デフォルトの名無しさん:2011/01/21(金) 17:17:19
>>919
L
922デフォルトの名無しさん:2011/01/21(金) 17:21:42
923デフォルトの名無しさん:2011/01/21(金) 17:25:04
MBCSに転んだ方が幸せかも
924デフォルトの名無しさん:2011/01/21(金) 18:07:58
うむ。エンコードでつまづく程度の知恵ならC#辺りを使ってた方がしやわせ
やる気があるならC++
Cは止めときな
925デフォルトの名無しさん:2011/01/21(金) 18:44:24
Cの知識無しにC++やるのは無理だと思うんだが。
926デフォルトの名無しさん:2011/01/21(金) 19:00:04
>>798をどなたか・・・
927デフォルトの名無しさん:2011/01/21(金) 19:06:27
がんばれ
928デフォルトの名無しさん:2011/01/21(金) 19:07:03
>>927
頑張ってるんですけどね・・・
929デフォルトの名無しさん:2011/01/21(金) 20:11:10
>>926
しらね
930デフォルトの名無しさん:2011/01/21(金) 21:57:10
test
931デフォルトの名無しさん:2011/01/21(金) 22:41:56
てすt
932デフォルトの名無しさん:2011/01/21(金) 23:08:21
ほっほっ
933デフォルトの名無しさん:2011/01/21(金) 23:46:57
ふっほっ
934デフォルトの名無しさん:2011/01/22(土) 00:09:08
ほっへっ
935デフォルトの名無しさん:2011/01/22(土) 15:08:59
今日もC厨が涌いてるな
936デフォルトの名無しさん:2011/01/22(土) 15:38:09
シチュー
937デフォルトの名無しさん:2011/01/22(土) 16:13:17
へっほっ
938デフォルトの名無しさん:2011/01/22(土) 16:36:41
どぴゅっどぴゅっ
939デフォルトの名無しさん:2011/01/22(土) 17:30:44
ふっふっ
940デフォルトの名無しさん:2011/01/22(土) 17:49:00
ほっほっ
941デフォルトの名無しさん:2011/01/22(土) 17:49:10
>>926
ヤル気が出るコードを書いてきてくれ
942デフォルトの名無しさん:2011/01/22(土) 17:53:07
ふっほっ
943デフォルトの名無しさん:2011/01/22(土) 18:30:53
ぷっほっ
944デフォルトの名無しさん:2011/01/22(土) 18:51:39
C厨hが頭沸いてるな
945デフォルトの名無しさん:2011/01/22(土) 18:57:27
シチュー
946デフォルトの名無しさん:2011/01/22(土) 19:10:43
ほっほっ
947デフォルトの名無しさん:2011/01/22(土) 19:13:02
はっはっ
948デフォルトの名無しさん:2011/01/22(土) 19:14:20
ばっぷっ
949デフォルトの名無しさん:2011/01/22(土) 19:17:30
キチガイども乙
950デフォルトの名無しさん:2011/01/22(土) 19:50:07
スレッドの勉強するのに良い本またはサイトある
951デフォルトの名無しさん:2011/01/22(土) 19:55:54
Pthreadsプログラミング
952デフォルトの名無しさん:2011/01/22(土) 20:07:44
うっへっ
953デフォルトの名無しさん:2011/01/22(土) 20:11:58
>>950
キチガイは一人だけ
954デフォルトの名無しさん:2011/01/22(土) 20:32:20
ふっふっ
955デフォルトの名無しさん:2011/01/22(土) 20:34:14
ほっほっ
956デフォルトの名無しさん:2011/01/22(土) 20:35:10
どぴゅっどぴゅっ
957デフォルトの名無しさん:2011/01/22(土) 20:39:27
ぶはっ!選ぶはっ!
958デフォルトの名無しさん:2011/01/22(土) 20:40:45
ふっうっ
959デフォルトの名無しさん:2011/01/22(土) 20:49:43
へっふっ
960デフォルトの名無しさん:2011/01/22(土) 20:59:56
へっへっ
961デフォルトの名無しさん:2011/01/22(土) 21:10:07
ひっふっ
962デフォルトの名無しさん:2011/01/22(土) 21:22:15
ぬりゅっぷぬりゅっぷ
963デフォルトの名無しさん:2011/01/22(土) 21:47:07
一時間でテトリス作れるとかすごすぎだろ・・・
お前らには到底無理だなwwwwwwwwwwwwwwwwwwwwwww
964デフォルトの名無しさん:2011/01/22(土) 21:49:23
プログラミングコンテストみたいに課題が与えられて何分なら分かるけど
全部自分で準備して何分で出来ましたって(笑)
965デフォルトの名無しさん:2011/01/22(土) 22:02:09
まーた根拠のないことを言う
966デフォルトの名無しさん:2011/01/22(土) 22:02:41
初めてじゃないらしいからな
967デフォルトの名無しさん:2011/01/22(土) 22:05:19
初めては私が頂いた
968デフォルトの名無しさん:2011/01/22(土) 22:23:36
テトリス作れない奴って悔しくてすぐ釣られちゃうんだな
969デフォルトの名無しさん:2011/01/22(土) 22:30:52
環境インストール含めて1時間?
だったら実質時間が超短縮性性能が高脳でソリューション的だな真似できんは
970デフォルトの名無しさん:2011/01/22(土) 22:35:18
何がそんなに悔しいんだ?
971デフォルトの名無しさん:2011/01/22(土) 22:38:03
C勉強したいけどなかなかうまく行かない
それに今からCは遅いとかいわれる
972デフォルトの名無しさん:2011/01/22(土) 22:39:25
テトリスすら作れないのが悔しいんだろ
973デフォルトの名無しさん:2011/01/22(土) 22:41:07
なるほどね。↓の2番目に紹介されてた。
http://php.net/manual/ja/control-structures.do.while.php
優れたCプログラマだってさ。やったー!
974デフォルトの名無しさん:2011/01/22(土) 22:42:51
来いよPerl忍者
975デフォルトの名無しさん:2011/01/22(土) 22:44:40
>>970
仕事の速さは神様からもらえなかった者にとってすごく悔しい
976デフォルトの名無しさん:2011/01/22(土) 22:45:39
この流れなら貼れる
http://www.nicovideo.jp/watch/sm8517855
977デフォルトの名無しさん:2011/01/22(土) 22:47:42
>>976
978デフォルトの名無しさん:2011/01/22(土) 22:48:37
これがニコニコ技術部の実力か・・・!
M$も夢じゃないな
979デフォルトの名無しさん:2011/01/22(土) 22:48:50
>>976
天才プログラマー
980デフォルトの名無しさん:2011/01/22(土) 22:49:50
981デフォルトの名無しさん:2011/01/22(土) 22:51:27
>>976
すげぇ
982デフォルトの名無しさん:2011/01/22(土) 23:51:25
ume
983デフォルトの名無しさん:2011/01/22(土) 23:53:40
>>980
ファイル足りなくないですか?
984デフォルトの名無しさん:2011/01/22(土) 23:55:23
>>976
おれがテトリスつくった時は完成までに1年かかった
985デフォルトの名無しさん:2011/01/22(土) 23:56:58
池沼には無理
986デフォルトの名無しさん:2011/01/22(土) 23:59:56
スレが天才テトリステロリストに選挙されたぞー
987デフォルトの名無しさん:2011/01/23(日) 00:00:51
ぴゅっっ
988デフォルトの名無しさん:2011/01/23(日) 00:02:17
int main()
{
  return main();
}
989デフォルトの名無しさん:2011/01/23(日) 00:05:48
この前C言語やってる奴がいたから顔面ぶん殴ってやったwwwwwwww
990デフォルトの名無しさん:2011/01/23(日) 00:10:31
病院にいけ!
991デフォルトの名無しさん:2011/01/23(日) 00:17:15
コミュニケーションがとりたかったんだろ。
「こんなコード書いたけどどうっすか?」みたいな。

ググればすぐ分かるのに質問してくる初心者とか、
結論がでてるのにとぼけて質問してるようなやつとか、寂しいからだろ。
992デフォルトの名無しさん:2011/01/23(日) 00:18:31
かまってちゃんってやつだな
指摘すると釣れちゃっただし
そんなのを相手にしても何一つ得られる物はないからほっとくのがいいね
993デフォルトの名無しさん:2011/01/23(日) 00:27:54
>>991-992
急にどうしちゃったの
かまって欲しいの?
994デフォルトの名無しさん:2011/01/23(日) 00:28:54
早速釣れたw
995デフォルトの名無しさん:2011/01/23(日) 00:30:33
C言語やる人ってCerって言うのかな
996デフォルトの名無しさん:2011/01/23(日) 00:31:15
ぐぐって拾える範囲のことしか知らん奴も痛いが
997デフォルトの名無しさん:2011/01/23(日) 00:31:43
さー?
998デフォルトの名無しさん:2011/01/23(日) 00:33:32
サー!イエッサー!
999デフォルトの名無しさん:2011/01/23(日) 00:34:38
ほっほっ
1000デフォルトの名無しさん:2011/01/23(日) 00:36:40
aho
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。