トップページ⇒tech
1001コメント270KB

C言語なら俺に聞け! Part 80

レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU NGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。

エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

各種リンクは>>3-20あたり(誰か適当に貼って)

推奨NGワード: 「;-)」 「;)」 「ぼけ」 「頭悪すぎ」

C言語なら俺に聞け! Part 79
http://pc5.2ch.net/test/read.cgi/tech/1084138965/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002なんでぼるじょあなんだよNGNG
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさんNGNG
Emacs のインデントが気に入らないのですが。
0004GCCスレ560NGNG
>>1-2
乙です
0005デフォルトの名無しさんNGNG
>>1
乙。だがスレタイに「ぼけ」が入ってないだろ ぼけ
0006デフォルトの名無しさんNGNG
>>3
設定変えられるだろ
0007デフォルトの名無しさんNGNG
RPGを作っているのですが攻撃時のダメージをどう与えるか分かりません。
ダメージをランダムに0〜200以内で発生させるにはどうしたら良いでしょうか
0008デフォルトの名無しさんNGNG
>>7
http://www.kouno.jp/home/c_faq/c13.html
ここの13.15と13.16
00097NGNG
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>

#define sleep 200
#define N 200

void sleeps(int count)
{
clock_t t = clock() * (1000/CLOCKS_PER_SEC);
clock_t tterm = t + count;

while (t < tterm) {
t = clock() * (1000/CLOCKS_PER_SEC);
assert(t != (clock_t)-1);
}

return;
}

int param(int count)
{
count=0;
int i=0;
00107NGNG

for(count=0; count<10; count++) {
printf("■");
sleeps(sleep);
}
printf("\n");

return 0;
}
int main(int i)
{
int j=0;

while(1) {
param(1);
printf("味方の攻撃 %d\n", (int)((double)rand() / ((double)RAND_MAX + 1) * N));
sleeps(sleep);
}

return 0;
}思いっきり途中ですけど、ここまで出来ましたが攻撃時の数値がランダムになりません
どうすれば良いでしょうか。
0011デフォルトの名無しさんNGNG
>>10
srand
00127NGNG
sleeps関数を作って■が0.2秒ごとに10個溜まったら攻撃と言う感じにしてあります。
0013デフォルトの名無しさんNGNG
>>11
srand?どこで?
0014デフォルトの名無しさんNGNG
7です すみません出来ました。ですがもう一つ知りたいのですが
■のパラメータが10個溜まるのを0.2秒置きにしてあります。
これも0.1秒〜1秒の間で行う事は出来ますか?
0015デフォルトの名無しさんNGNG
const int gdim[] = {100,100,100,100};

int func(const int* dim)
{
return sizeof(dim)/sizeof(int);
}

int main(void)
{
int ans;

ans = func(gdim);

return 0;
}

配列の要素数を調べたいけど、gdimのサイズを返さずに
int*の大きさを返してるみたいなんですけど
どうすればいいですか?
0016デフォルトの名無しさんNGNG
>>15
int func(void)
{
return sizeof(gdim)/sizeof(int);
}
0017デフォルトの名無しさんNGNG
>>14
0.2秒という指定を0.1秒や1秒にすればいいだろ
0018デフォルトの名無しさんNGNG
多分お望みの機能を実装するのに関数じゃ無理。
マクロにしとけ。
0019デフォルトの名無しさんNGNG
配列を使って
n×nの行列の2つの行列をかけ合わせるプログラムをつくりこれを用いてA**(2**m)を計算するプログラムを作ってください。
0020デフォルトの名無しさんNGNG
>>19
いやです。
宿題なら専用のスレへ。
0021デフォルトの名無しさんNGNG
>>19
作ってくださいと来たか。
 C/C++の宿題をやらせて、お兄ちゃん 22代目
 http://pc5.2ch.net/test/read.cgi/tech/1083050221/l50
0022デフォルトの名無しさんNGNG
1が見えない。山崎渉だろうか。
0023デフォルトの名無しさんNGNG
>>16,18
サンクス
0024デフォルトの名無しさんNGNG
>>http://pc5.2ch.net/test/read.cgi/tech/1084138965/997
初心者対応のコード書く必要のある職種はあるよ
大多数は逆だけどね
0025デフォルトの名無しさんNGNG
>>15
グローバルやめろ ぼけ
話はそれからだ
0026デフォルトの名無しさんNGNG
>>25
ぼけぼけ言うなぼけ。ぼけって言ったほうがぼけなんだぞぼけ。
0027デフォルトの名無しさんNGNG
>>26
もうちょっとヒネれ
ネタとしては悪くないが
それじゃ食いつき悪いだろ
0028デフォルトの名無しさんNGNG
タイピングソフトを造りたいと思うんですが、
コマンドラインから一文字入力するごとにプログラムに渡す処理をしたいんですけど
getcを使うと、エンターを押さないとプログラム側に入力した文字を渡せません。

一文字入力した瞬間にプログラムに文字を渡すにはどうしたらよいでしょうか?

JAVAでやれとかいうのは無しで。
0029デフォルトの名無しさんNGNG
定時間(5ms)で動いてる関数があります。
その関数の中で複数の処理を時間に応じて実行
したいのですが、以下のやり方以外にいい方法ないでしょうか?

void test(void)
{
if(count++ == 200)
処理A
if(cuont == 400)
処理B
if(count == 600)
処理C
count = 0;
}
test関数は5ms毎に動くので、count=200っていうことは1Sってことです。
実際は処理は10個ぐらいあります。
個人的にcountの値が処理数に応じて大きくなっていくのが嫌です。
0030デフォルトの名無しさんNGNG
>>29
大きくなるのがいやならカウントダウンにすればー
実際どこかしらでカウンタ使う以外ない
0031デフォルトの名無しさんNGNG
>>28
kbhit()
0032デフォルトの名無しさんNGNG
>>28
標準ライブラリでは無理。
処理系提供のライブラリで当該機能を探すべし。
処理系固有の話はそれぞれのスレで。
0033デフォルトの名無しさんNGNG
countの値が一定の法則で増えていくなら、関数テーブルでディスパッチしたいところ。
0034デフォルトの名無しさんNGNG
kbhit()、getch()、カーソル移動、色変え、タイマー、
ここらあたり標準に組み込んでほしいな。
0035デフォルトの名無しさんNGNG
>>34
でももういまさら
0036デフォルトの名無しさんNGNG
C04できないかな? 爆弾じゃなくて
0037デフォルトの名無しさんNGNG
iniファイルから読み込むプログラムを教えてください。
iniファイルには2つのint型の数値が入ってます。
0038デフォルトの名無しさんNGNG
そんなんじゃわからん。
iniファイルをそのまま見せろ。
0039デフォルトの名無しさんNGNG
printfで間違えて%lfとか書いてあったりしますが、
例えば、gccで-ansi -Wallとかやっても警告すらでません。
そのほかにもいくつかのコンパイラでANSI指定してみても、
警告もでないし、正しく実行されます。

しかし、ANSI Cの規格書を読む限り、%lfとした場合の動作は
未定義なので、コンパイラは警告を出すべきだと思いますが、
なぜ出ないんでしょうね。
誰か教えてください。
0040デフォルトの名無しさんNGNG
>>39
そこは言語ではなくライブラリの引数のミスなので
コンパイラは普通検出できない。
やってやれないことはないし、ミス多発地点だから
やってくれてもいいとは思うけどね。
0041デフォルトの名無しさんNGNG
>>29
if (++count < 200)
return;
count = 0;
if (n == 10)
n = 0;
switch (n++) {
...
}
0042デフォルトの名無しさんNGNG
なあ、なんでgccにはconio.hさんがいないんだ?
0043デフォルトの名無しさんNGNG
標準じゃないんだから、無くても不思議ではない。
0044デフォルトの名無しさんNGNG
>>41
そのやり方でもいいんですが、それだとファイル
内変数をcountとnで二つ取ることになりますよね。
1つで実現するのは無理ですかね。
0045デフォルトの名無しさんNGNG
>>44
見栄えの問題なら、こういうやつ?
void test(void)
{
if ( ++count % 200 ) return;
switch ( count / 200 ) {
case 1:
処理A
break;
case 2:
処理B
break;
case 3:
処理C // これが最後なら
count = 0;
break;
}
}
0046デフォルトの名無しさんNGNG
なんでcountが大きくなるといやなんだ?
わけわからん。
0047デフォルトの名無しさんNGNG
自分のちんぽより大きくなるのが気にくわんのだろう
0048デフォルトの名無しさんNGNG
>>44
なんで二つにするのがいやなのかわからんが
ひとつにしたければくっつけたら?
struct {int count, n;} cnt = {0};
0049デフォルトの名無しさんNGNG
>>45
おまえswitchの時点でのcount/200がいくつになってるか知らんのか?
0050デフォルトの名無しさんNGNG
>>49
200の倍数ですが
0051デフォルトの名無しさん NGNG
C言語でWINDOWSとLinux両方でプリントするプログラムを考えています。
Canon LBP-220(レーザープリンタ)を使う予定です。
WIN32APIとMFCとを使わないで、CUIで作りたいのですが、思いつきません。
誰か教えていただけないでしょうか。
0052デフォルトの名無しさんNGNG
Cの変数って(intとか)処理系によって(コンパイラによって?OSによって?)サイズが
変わるって本に書いてあったけど、何か利点があるのでしょうか?
それとも何かの制約上仕方なくそうしているだけで、別に得することはないのでしょうか?
0053デフォルトの名無しさんNGNG
>>52
int はその処理系でもっとも自然に扱えるサイズがとられる。
普通は、CPUのレジスタサイズがそのままintのサイズになる。
0054デフォルトの名無しさんNGNG
目の前の窓ガラスの外に、大きな巣を張ったクモ(こげ茶色をした
いかにもなタイプ(潰すと汁が沢山出てきそうなやつ)がいます。
部屋の明かりに誘われて飛んできた虫を捕まえる魂胆なのでしょう。
なかなか知恵のあるやつだと思います。そこで質問です。
クモは頭を下にしたまま長時間じっとしてますが、頭に血が登って
しまったりしないんでしょうか。また、頭を下にしなきゃならない
理由が何かあるんでしょうか?
0055デフォルトの名無しさんNGNG
> CPUのレジスタサイズがそのままintのサイズになる。

これがかなりの大うそ。
しったかぶりくん!
0056デフォルトの名無しさんNGNG
>>55
普通は、という条件がついてるのに「かなりの大うそ」ですか?
正しくは?
0057デフォルトの名無しさんNGNG
蜘蛛の体内管は非常に細いために毛細管現象が起こります。
したがって逆さまでも重力で体液が下方にたまるということはありません。

頭を下にするのは習性です。おそらく磁場か重力場を感じ取り、体の方向
を決めているのでしょう。綺麗な巣を作ることが出来るのもこの習性による
ものです。
0058デフォルトの名無しさんNGNG
55じゃないが、都合のいいサイズであって、レジスタとはかぎらんわなあ
0059デフォルトの名無しさんNGNG
では後学のために、
int が レジスタサイズではない処理系(コンパイラ)と、そのメリットを教えてください。
0060デフォルトの名無しさんNGNG
普通は、か。便利な言葉だ。
0061デフォルトの名無しさんNGNG
8bitCPUではintが16bitだね 普通は。
intが8bitだと使いづらいからね 普通は。
メリットはオーバーフローをしないようにだね 普通は。
0062デフォルトの名無しさんNGNG
といっても普通はレジスタだなw
0063デフォルトの名無しさんNGNG
>>61
それはうそ。
8bitのint だって 、普通に使われている。
0064デフォルトの名無しさんNGNG
>>63
普通は、という条件がついてるのに「うそ」ですか?
0065デフォルトの名無しさんNGNG
条件がついているから「うそ」ではない。
と書いたのは私ではない。
0066デフォルトの名無しさんNGNG
ということにしたいのですね;)
0067デフォルトの名無しさんNGNG
それを疑うなら反論のしようがありませんけどね。
0068デフォルトの名無しさんNGNG
>>39
最新の規格ではprintfにおける%lfは%fと同じになったらしいよ。
0069←エッチNGNG
 
0070デフォルトの名無しさんNGNG
>>59
PS2はint→32bit,レジスタサイズ→128bit

メリットなんて知らん。
まあ、intが128bitってのも無駄だが。
0071デフォルトの名無しさんNGNG
>>59
64ビットプロセッサだと
byte=8,short=16,int=32,long=64
にしたらなんかきれいじゃん。int=64にしたら32bitがなくなるし。
0072デフォルトの名無しさんNGNG
>32bitがなくなるし
short=32,int=64,long=64 だろ
0073デフォルトの名無しさんNGNG
byteって何?
0074デフォルトの名無しさんNGNG
bitの集まり
0075デフォルトの名無しさんNGNG
74=71
必死だな
0076デフォルトの名無しさんNGNG
ハズレ
0077デフォルトの名無しさんNGNG
>>59
普通はintが32bitなので、それ以外にすると動かない腐ったソースがたくさん出てくるから。
ま、互換性のため。つまり、普通は32bitというわけだ。
いわゆるマイコンに限れば普通16bitかもね。関わりたくない世界だ。

>>70
つまり、普通じゃない。

>>73
charの間違いだと思われ。
0078デフォルトの名無しさんNGNG
nyで落としたBorlandのコンパイラがint=16bitだったな。
0079デフォルトの名無しさんNGNG
>>78
80x86は16bitCPUだからな。
0080デフォルトの名無しさんNGNG
intは普通は32bitか
C言語スレとは思えないアホな書き込みだな
0081デフォルトの名無しさんNGNG
>>80
ま、ガンガレw
0082デフォルトの名無しさんNGNG
80 :あぼーん[あぼーん]:あぼーん
あぼーん


誰?
008371NGNG
byte=8
と書いたのは漏れだ。死にたい。
0084デフォルトの名無しさんNGNG
>>71
Javaですな。
byte→charだけど
008571NGNG
>>80
77は、intが32bitであることを前提に書かれたくそコードが多すぎるので、
互換性のために、1ワード?(レジスタサイズまたはバスサイズ)が32bit以上になっても、
intが32bitのままにされてしまうと言いたいのだと思う。
0086デフォルトの名無しさんNGNG
特殊なケースを持ち出しても普通は論法を覆したことにはならないよ。
0087デフォルトの名無しさんNGNG
また普通か!
0088デフォルトの名無しさんNGNG
俺的にはどうでもいい。

typedef signed char s1;
typedef unsigned char u1;
typedef short s2;
typedef unsigned short u2;
typedef long s4;
typedef unsigned long u4;
typedef __int64 s8;
typedef unsigned __int64 u8;
typedef float f4;
typedef double f8;

…という具合に、実サイズが判る形に置き換えちゃってるし。
もちろん、コンパイラに合わせて書き換える必要あるけど。
0089デフォルトの名無しさんNGNG
マンドクセー
0090デフォルトの名無しさんNGNG
C99 的には >88 ダメだ
0091デフォルトの名無しさんNGNG
まったくの初心者なんで、煮詰まってます。
チェックボックスにチェックを入れるとテキストフィールドに入力出来る状態に
チェックを外すと、入力出来ない状態にしたいのですが、どうしても出来ません。

void jCheckBox1_actionPerformed(ActionEvent e) {
boolean a;
a=jCheckBox1.isSelected();
jTextField1.setEnabled(true);
}
(テキストフィールドのenabledプロパティをデフォでfalseにした状態)

にすると一度だけ入力出来るようになり、そのままチェックを外しても入力をすることが出来る状態になってしまいます。
よろしければご教授お願い致します。
0092デフォルトの名無しさんNGNG
void jCheckBox1_actionPerformed(ActionEvent e) {
boolean a;
a=jCheckBox1.isSelected();
if(a){
jTextField1.setEnabled(true);
}else{
jTextField1.setEnabled(false);
}
}
0093デフォルトの名無しさんNGNG
どうもありがとうございましたー
おかげさまで出来ました。
0094デフォルトの名無しさんNGNG
仮にこれを「if」を使わずに組み込むとしたら、どのようになるんでしょうか?
0095デフォルトの名無しさんNGNG
「?」でも使え
0096デフォルトの名無しさんNGNG
>>94-95
jTextField1.setEnabled(a?true:false);
こんな感じか。
0097デフォルトの名無しさんNGNG
void jCheckBox1_actionPerformed(ActionEvent e) {
jTextField1.setEnabled(jCheckBox1.isSelected()?true:false);
}

これでいいんじゃない?
0098デフォルトの名無しさんNGNG
void jCheckBox1_actionPerformed(ActionEvent e) {
boolean a;
a=jCheckBox1.isSelected();
jTextField1.setEnabled(a) ;
}
0099デフォルトの名無しさんNGNG
void jCheckBox1_actionPerformed(ActionEvent e) {
jTextField1.setEnabled(jCheckBox1.isSelected());
}
0100デフォルトの名無しさんNGNG
>>91-99
これCか?
ひゃくげと
0101デフォルトの名無しさんNGNG
ふつう
unsigned long long int
と
long long int
だね。最近使う用事が多いのだが
0102デフォルトの名無しさんNGNG
レジスターは24bitでも、intが16bitのマシンはよくあるね。
0103デフォルトの名無しさんNGNG
>>100
仮にCでかかれていたとしても標準Cでは無いな
0104デフォルトの名無しさんNGNG
srand((unsigned) time(NULL));
/* 1〜200の擬似乱数を1個ずつ発生 */
for (i=0; i<1; i++) {
j = 0; // バッファクリア
j = rand()%200;
printf("%d",j);
}
と言うような事をしているのですが最初に出てくる値は確かにランダムなのですが
その後、規則正しく増えていきます。不規則に上限する値を出すにはどうしたら良いですか?
乱数を、jという変数に格納してはありますが rand()%200 を直接入れても構いません
0105デフォルトの名無しさんNGNG
>>103
>jTextField1.setEnabled
構造体のフィールドに関数ポインタ持たせれば不通に通るだろ。
0106デフォルトの名無しさんNGNG
>>104
嫁
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/rand.3.html
0107デフォルトの名無しさんNGNG
>>104
srandは一度だけ呼ぶ。

ところで、
> for (i=0; i<1; i++) {
はネタか?
0108107NGNG
増えてゆくと言っているからsrandを読んでいるのは一度だけか。
0109103NGNG
>>107
一回表示するだけだから
0110デフォルトの名無しさんNGNG
>>109
だから、それをループにする意味があるのかと(ry
0111デフォルトの名無しさんNGNG
>>104
>/* 1〜200の擬似乱数を1個ずつ発生 */
コメントとコードが一致していない
0112デフォルトの名無しさんNGNG
betunidoukakougaiijane-kaYO
0113デフォルトの名無しさんNGNG
結局どう書けばいいんだ?srandの辺りがおかしいのは分かってんのよ
rand()がどういう値を持つか決めてないし
0114デフォルトの名無しさんNGNG
>>104
>その後、規則正しく増えていきます。
となっているが、このコードだと一回しか乱数を得ていない。
繰り返しているのなら、その繰り返し全体を書いてくれ。
0115デフォルトの名無しさんNGNG
とりあえず、srand((unsigned) time(NULL));はmainのはじめに。
0116デフォルトの名無しさんNGNG
>>114
コードを書いた後実行ファイルが動いている時に規則正しい
またはコードそのものに適当な変更を加えても乱数にもかかわらず一回目の実行と二回目の実行が同じ数値だったり。
0117デフォルトの名無しさんNGNG
不正確な質問に妄想で答えるなよ。
地球がゴミで埋まってしまう。
0118デフォルトの名無しさんNGNG
> igned) ti
空白あけるなよぼ(ry
0119デフォルトの名無しさんNGNG
>>116
乱数列はあくまでもsrandを実行してからの一連のrand()が疑似乱数になるもので
srandに与える種が変わらないときは乱数列自体が同じになる。

で、種はtimeなので、同一秒内だとまったく同じ乱数列になる。
0120119NGNG
繰り返し起動し、乱数列の最初の値からきっちりランダムっぽくしたいときは
srandに与える種が起動の度に確実に変わるものを選んだほうほがいい。
(が、そういう手段は処理系依存になる)

また、だんだん大きくなるとかいってるのは、使っているrand()の実装が
種がだんだん大きくなるのにあわせて大きくなるような影響を受ける
アルゴリズムなんだろう。
別の疑似乱数ライブラリを入手して利用すれば改善するかもしれない。
0121デフォルトの名無しさんNGNG
>>119
では、結局どこをどうすれば>>104は乱数になるのカナ?
0122デフォルトの名無しさんNGNG
なんで挑発的になっているんだろう。
0123デフォルトの名無しさんNGNG
>>104
>と言うような事をしている

書いてある部分以外でバグってる、に一票。
0124デフォルトの名無しさんNGNG
>j = 0; // バッファクリア
すぐ下で代入されるのになんの為の代入だ?
0125デフォルトの名無しさんNGNG
普通はどういう処理系を普通と呼ぶのですか?
0126デフォルトの名無しさんNGNG
>>125
規格合致処理系
0127Error@MSNNGNG
79で質問に答えてくださった方、ありがとうございました。
サーバー側でテストをしてみたいんですが、
コンパイルしたあとに出来るファイルも転送しないといけないのでしょうか?
test.exe,test.objなどです。
0128デフォルトの名無しさんNGNG
>>127
前スレは落ちていて見られない。
質問をもう一度貼ってくれ。
0129デフォルトの名無しさんNGNG
結局>>14について、誰も解決出来るコードが書けないのか
落ちたな。この板。
0130128NGNG
あー思い出した。例のCGIの質問か。
> 出来るファイルも転送しないといけないのでしょうか?
当然。ただ、ソースファイルやオブジェクトファイル(.obj)はいらないぞ。


# .exeか。なんか動かない気がする。
0131デフォルトの名無しさんNGNG
>>129
コードじゃないが>>17が答えているだろ。
0132129NGNG
>>131
間違い。">>114について" だ
0133129NGNG
ああ…。>>104だ 何度もスマソ
0134デフォルトの名無しさんNGNG
自分の理解能力が無いことを板のせいにするのもどうかと。
>>114の希望に沿った回答が無い以上、>>119の答えが精一杯だと思うが。
あと、>>106のリンク先も読む事をお勧めする。

それとも、コードを示さないと何も分かりませんか?
0135デフォルトの名無しさんNGNG
tu-ka>>115が正解だYO
0136デフォルトの名無しさんNGNG
>>129
おまえはまず日本語から勉強しろ。
0137デフォルトの名無しさんNGNG
>>127
もう遅いかもしれんが、サーバのOS、コンパイル環境のOSや
コンパイラ名(セルフかクロスかも)を書けば適切なレスがつくぞ

PC(Windows)のVC++でmakeしたexeをUNIX系OSに持っていったところで
クソの役にも立たんからな
0138デフォルトの名無しさんNGNG
下の問題について教えて。
while文使って整数の2乗を描くプログラムを作れだとさ。
0 
1 *
2 ****
3 *********
・
  ・
  ・
こうやって表示させるためにはどうしたらよろすぃ?
0139デフォルトの名無しさんNGNG
>>138
pow関数を使え
0140デフォルトの名無しさんNGNG
>>138
宿題スレ行け、もしくは氏ね
0141デフォルトの名無しさんNGNG
素数を表示させるようなプログラムを書いてみましたが、
何かが激しく間違ってる気がしてなりません。
一応素数は表示されるんですが、いっぱい表示されちゃうです。
どうしまぷよ

#include<stdio.h>
main()
{
 int a,b;
 for(a=2;;a++){
  for(b=2;b<a;b++){
    if(a%b==0) break;
    printf("%d\n",a);
    }
 }
}
0142デフォルトの名無しさんNGNG
>>141
ネタはよそでどうぞ。
0143デフォルトの名無しさんNGNG
>>141
#include<stdio.h>
main()
{
 int a,b;
 for(a=2;a<1000;a++){
  for(b=2;b<a;b++){
   if(a%b==0) goto boke;
  }
  printf("%d\n",a);
 boke: ;
 }
}
0144デフォルトの名無しさんNGNG
>>105
いや、だから、そういうことを言っているんじゃなくて、別スレに行けといっているのだよ。
そのくらいのことは大体の人が理解しているだろうよ。
0145デフォルトの名無しさんNGNG
終わったネタを蒸し返すなよ
0146デフォルトの名無しさんNGNG
>>143
for(b=2;b<a;b++){
は
for(b=2;b<(a/2);b++){
のほうが良くないか?
0147デフォルトの名無しさんNGNG
int main() {
char *s;

gets(s);
printf(s);

return 333;
}
0148デフォルトの名無しさんNGNG
セキュリティホール ゲッツ!
0149デフォルトの名無しさんNGNG
>>141
factor使え
0150143NGNG
>>146
改良の余地はたくさんあると思うが、なるべる>>141のプログラムを
生かすようにした。

その修正は、4が素数になってしまうのでダメ。
0151150NGNG
×なるべる
○なるべく
0152Error@MSNNGNG
>>127,130
ありがとうございました。
0153デフォルトの名無しさんNGNG
>>147
fgets使えば直るぞw
0154デフォルトの名無しさんNGNG
>>153
もっと根本的な問題もある分けだが…(w
0155デフォルトの名無しさんNGNG
#include <stdio.h>

main()
{
  int i, j, k;

  for (i = 0; i < 10; i++) {
    printf("%d ", i);
    for (j = 0; j < i; j++) {
      for (k = 0; k < i; k++)
        printf("*");
      
    }
    printf("??/");
  }
}
0156デフォルトの名無しさんNGNG
> for(b=2;b<(a/2);b++){
> のほうが良くないか?

空白あけろよ ぼけ
0157デフォルトの名無しさんNGNG
>>156
それ飽きた
0158デフォルトの名無しさんNGNG
>>157
飽きるほど言わせるなぼ け
0159デフォルトの名無しさんNGNG
コード規約は会社ごとに違うだろぼけ
うちでは、こう書くんだぼ け

/* ----- fugafuga ----- */
void* f(int a, int b)
{
 if(a < b) { /* hogehoge */
  func(a, b);
  a += b -1;
 }
 return NULL;
}
0160デフォルトの名無しさんNGNG
>  if(a < b) { /* hogehoge */

空白あけろよ ぼけ

> a += b -1;

空白あけろよ ぼけ
0161デフォルトの名無しさんNGNG
>>160
>空白あけろよ ぼけ
空白あけるなぼけ
0162デフォルトの名無しさんNGNG
よくhogeとかfooって使うのはなんで?
0163デフォルトの名無しさんNGNG
それらは系列が違うのでまぜるな危険
0164デフォルトの名無しさんNGNG
hogeはhageと一緒に使う物。
fooはbar,bazと一緒に使う物。
0165デフォルトの名無しさんNGNG
bizは?
0166デフォルトの名無しさんNGNG
>>162
RFC検索汁
0167デフォルトの名無しさんNGNG
man嫁
0168デフォルトの名無しさんNGNG
141のプログラム、やっぱり(a/2)の方が圧倒的に速いのでこうしたらいいのでは。

#include<stdio.h>

main()
{
 int a,b;

 for(a=2;;a++){
  for(b=2;b<(a/2);b++){
    if(a%b==0) goto next;
    }
  if(a!=4) printf("%d\n",a);
  next:;
}

}
0169デフォルトの名無しさんNGNG
VC++で勉強してるものです

Cでご飯食べている方々にお聞きしたいのですが
派遣先やら社内での開発環境はやはりVCが多いのでしょうか?

gcc関連はほとんど勉強してないのでそれで問題ないのか気になったので
質問させてもらいました
makeユーティリティプログラムなるものが使ってる参考書で出てきたので
正直あせっております

ウラハラUNIX系が多かったり・・・・

よろしくお願いします
0170デフォルトの名無しさんNGNG
>>169
スレ違い。つーか鼬害?

unix系の知識は兎も角、VC使いを自認するなら最低限Windowsの操作(*1)、
できればコマンドライン操作(*2)、願わくばCygwinが使えるようであって欲しい。

#1:ショートカットキーとかVCの設定変更とかできる程度でもいいから
#2:コマンドラインからプログラムを起動するとかリダイレクトでファイル作るとか

それさえできない香具師が多過ぎるよ……_/ ̄|○
0171デフォルトの名無しさんNGNG
>>169
Emacs だろ?
ハカー は、2行以上のコマンドには、Makefile 使うんだよ。
0172デフォルトの名無しさんNGNG
>空白あけろよ ぼけ

嫌ならindent使え ぼけ
http://www.vector.co.jp/soft/solaris/x86/se045590.html
0173デフォルトの名無しさんNGNG
> 嫌ならindent使え ぼけ
> http://www.vector.co.jp/soft/solaris/x86/se045590.html

/usr/bin/indent 使えぼけ

つーか、Emacs 使えぼけ
0174デフォルトの名無しさんNGNG
ふつうccです。現場でVCなど使いません。
0175デフォルトの名無しさんNGNG
マクロ定義を退避し、あとで復帰させたいのですが、以下のようにしても上手くいきません。
何か良い方法はないでしょうか。

#ifdef WINAPI
#define TTT WINAPI
#undef WINAPI
#endif
...

#ifdef TTT
#define WINAPI ##TTT
#undef TTT
#endif
0176デフォルトの名無しさんNGNG
> if(a%b==0) goto next;

ださ...
なんでこんな目的にgotoが必要?
0177デフォルトの名無しさんNGNG
すいません、上記のトークン連結演算子(##)は余計ですので無視してください。
0178デフォルトの名無しさんNGNG
>>175
##とる
0179175=177NGNG
>>178
すいません、上記のトークン連結演算子(##)は余計ですので無視してください。
0180178NGNG
>>177
リロードしなかった。
しかも的外れな答えでした。
スマソ

>#ifdef WINAPI
>#define TTT WINAPI
>#undef WINAPI
>#endif
TTTを使う前にWINAPIをundefしてるから、たとえば
  int TTT WinMain()
は
  int WINAPI WinMain()
に置き換わるけどWINAPIはWINAPIのまま。

何か良い方法1
  #define WINAPI ○○  // WINAPIがこう定義されてたら
  #define TTT ○○   // TTTをこう定義する(WINAPIじゃなくて○○)

何か良い方法2
  WINAPIをundefしない
0181デフォルトの名無しさんNGNG
>>176
まさかループ脱出用のフラグでも立てろと?
ださ...
0182175=177NGNG
>>180
なるほど、#define TTT WINAPI が実行されたときに WINAPI の値が解決され、
TTT に○○○がセットされるわけではなく、
展開時に TTT→WINAPI→○○○ と解決されるということなのですね。
プリプロセッサの動きをよく理解していませんでした。ありがとうございます。
0183デフォルトの名無しさんNGNG
>>176
いつも使わないからといって、ここぞという時にも使わない香具師はぼけ
0184デフォルトの名無しさんNGNG
とりあえずこうすればgotoは消せるが
  for ( b = 2; a%b ; ++b ) {
   if ( b >= (a/2) ) {
    if ( a != 4 ) printf("%d\n",a);
    break;
   }
  }
0185デフォルトの名無しさんNGNG
>>168のやつ、結果をファイルにリダイレクトさせるようにして
ずっと動作させてたら 3160687 まで来た。
簡易ベンチマークにいいかもね。
0186デフォルトの名無しさんNGNG
183の"ここぞという時"がどんな時なのか興味
0187デフォルトの名無しさんNGNG
あそこだよあそこ
0188デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1021364372/
こっちでやれよ
0189デフォルトの名無しさんNGNG
http://www.kumei.ne.jp/c_lang/intro/no_57.htm
ここのサンプル実行しても、
WinMain関数宣言してるか確認しろってゴルァされるんだけどどうすればいいの?(つд`)
0190デフォルトの名無しさんNGNG
>>189
スレ違いだゴルァ
メッセージは改変や省略せずに書けやゴルァ
つかってるOSとコンパイラ書けやゴルァ
0191デフォルトの名無しさんNGNG
>>190
あ、これってCには入らないんだね…カーチャンカンベン('A`)
とりあえず聞いてくれたので折角だから書くよ

'WinMain' : 関数はオーバーロードできません。
'WinMain' の宣言を確認してください

こんなんが出る…OSはXP、コンパイラはVC++6.0
0192デフォルトの名無しさんNGNG
>>191
とりあえず見てしまったので折角だから答えるよ。
HANDLE を HINSTANCE に置き換える
0193いおNGNG
アルゴリズムで、文字列のALONGSTRINGSSORTINGANDMARGINGEXSAMPLEを使って置換え選択法で
ランを作ってください
0194デフォルトの名無しさんNGNG
いやです。
0195デフォルトの名無しさんNGNG
>>192
アリガ�d、無事出来ますた
0196いおNGNG
お願いします
0197デフォルトの名無しさんNGNG
質問なんですが、ディアブロ�Uというゲームをやっていると、突然
Assertion Failure
Location : Fog\Src\Mem\mem.cpp, line #1277
Expression : !TESTBITDWORD(pPoolBlock->pUsageTable, nBlockOffset )
とエラーが出てきて画面が固まってしまいます。
板違いだったら申し訳ないのですが、(.cppってC言語だと思ったので)
これってどんなエラーなんですか?
何か分かる方いらっしゃいましたら対処法を教えてください><
0198デフォルトの名無しさんNGNG
>>197
メーカーに聞け
作った人以外には無意味な情報だ
0199デフォルトの名無しさんNGNG
IA32環境のlongが32bit
IA32e(IA64)環境でlongが64bit
という前提の下

uint64_t a=0; #として
printf("%llu\n", a);
とするとIA32では、コンパイル時にwarningが出ないけど、
IA64ではwarning出ます。
#longが64bitなので
#まぁwarningだから無視してもいいけど。。。

#if (BITS_PER_LONG == 32)
printf("%llu\n", a);
#else
printf("%lu\n", a);
#endif

とすると、コンパイル時にはどちらの環境でもwarningが
でません。

で、↑のプリコンパイラ文を使う方法以外の解決案(マクロ)
あったら教えてください。

0200デフォルトの名無しさんNGNG
ある男が、自分を愛している3人の女の中で誰を結婚相手にするか長いこと考えていた。 そこで彼は3人に5000ドルずつ渡し、
彼女らがその金をどう使うか見ることにした。

 一人目の女は、高価な服と高級な化粧品を買い、最高の美容院に行き、自分を完璧に見せるためにその金を全て使って こう言った。
「私はあなたをとても愛しているの。 だから、あなたが町で
 一番の美人を妻に持っているとみんなに思ってほしいのよ」
二人目の女は、夫になるかもしれないその男のために新しいスーツやシャツ、車の整備用品を買って残らず使いきる と、こう言った。
「私にとってはあなたが一番大切な人なの。だからお金は全部
 あなたのために使ったわ」
最後の女は、5000ドルを利殖に回し、倍にして男に返した。
「私はあなたをとても愛しているわ。 お金は、私が浪費をしない、 賢い女であることをあなたに分かってもらえるように使ったのよ」

……男は考え、3人の中で一番おっぱいの大きい女を妻にした。
0201デフォルトの名無しさんNGNG
>>199
printf(BITS_PER_LONG == 32 ? "%llu\n" : "%lu\n",a);
0202デフォルトの名無しさんNGNG
>>201
それ、別のwarningがでない?
0203デフォルトの名無しさんNGNG
>>202
コンパイラはそこまで賢くないと思うが。
#printf("%s\n", foo);がputs(foo);に最適化されたのには驚いたが。
0204デフォルトの名無しさんNGNG
>>199
C99 的には、

#include <inttypes.h>
printf(SCNo64 "\n", a);

なんだけど、VC++ では使えない罠。
0205デフォルトの名無しさんNGNG
入力した文字列のそれぞれの文字の数、例えば「あいうえああえ」って入力したら
あ:3
え:2
い:1
う:1
みたいなのだすにはどうしたらいい?少ない文字数ならswitch文使えば良いんだろうけど
多いときは??
0206デフォルトの名無しさんNGNG
間違えた、
printf(PRIu64 "\n", a);
ね
0207デフォルトの名無しさんNGNG
>>205
少ない文字数だとしてもどうやってswitch使うのやら
0208デフォルトの名無しさんNGNG
>>207
case 'a': a++; break;
case 'b': b++; break;

みたいな
0209デフォルトの名無しさんNGNG
文字とカウントのペアをつくれ
0210デフォルトの名無しさんNGNG
>>205
多かろうが少なかろうがテーブルだろ
0211デフォルトの名無しさんNGNG
テーブルってなに?
0212デフォルトの名無しさんNGNG
>>211
食卓
0213デフォルトの名無しさんNGNG
ひねりがないな
0214デフォルトの名無しさんNGNG
未来から来たサイクロプスの息子です
0215デフォルトの名無しさんNGNG
そもそも全角文字でswitch使えんの?
0216デフォルトの名無しさんNGNG
case 'あ': ・・・
0217デフォルトの名無しさんNGNG
リスト構造でもつかって、あたらしいのがくるたびmallocしてけ

typedef struct {
int cnt;
char moji[2];
char* next;
char* prev;
} LIST;
0218デフォルトの名無しさんNGNG
環境依存です
0219デフォルトの名無しさんNGNG
>>215
charでなければならないというわけではない。shortでもlongでも。
0220デフォルトの名無しさんNGNG
>199
プリコンパイラ文って何だよという突込みを入れたいところだが、
各printfで処理を切り分けるのも面倒だと思われるので、>204
みたいなのを自前でどこかに定義すればいいのではないかと。

#if (BITS_PER_LONG == 32)
#define SPEC_U64 "%llu"
#else
#define SPEC_U64 "%lu"
#endif

みたいな感じで。
0221デフォルトの名無しさんNGNG
あ、じゃあ全角だったらshotrにcastしてswitch…
って、だからどうやってswitch文で実現すんだよ。
と思ったが、65536個のcase文を作ればできるか。
0222デフォルトの名無しさんNGNG
いつか全角文字が気軽に使える日が来るといいね
0223デフォルトの名無しさんNGNG
> とりあえずこうすればgotoは消せるが
>   for ( b = 2; a%b ; ++b ) {

空白空けるなよ ぼけ。
空白あけろよ ぼけ。
空白あけろよ ぼけ。
空白空けるなよ ぼけ。
空白空けるなよ ぼけ。
0224デフォルトの名無しさんNGNG
空白を空けるとコンパイルが遅くなるから嫌。
0225デフォルトの名無しさんNGNG
じゃあ何でカッコのすぐ内側にあけてるんだよ ぼけ
0226デフォルトの名無しさんNGNG
おまえら...。
count[code]++; すればいいだけだろうが
0227デフォルトの名無しさんNGNG
int
main
(
)
{
printf
(
"hello world\n"
)
;
return
;
}
これで満足か?
0228デフォルトの名無しさんNGNG
>>227
改行は二回続けて入れろぼけ
0229デフォルトの名無しさんNGNG
i\
n\
t
m\
a\
i\
n
(ry
0230デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
enum{ YLEN = 24, XLEN = 79 };
const double PI=3.14;
char a[ YLEN ][ XLEN ];
int i, j, t,r ;
double g=9.8;
for ( j = 0; j < YLEN; j++ )
for( i = 0; i < XLEN; i++ )
a[ j ][ i ] = ' ';
for ( i = 0; i < XLEN; i++ ) a[ 23 ][ i ] = '-';
for ( j = 0; j < YLEN; j++ ) a[ j ][ 0 ] = '|';
a[ 23 ][ 0 ] = '+';
for ( t = 0; t < 25; t++ ){

double r =(double) 45/180*PI;
int cx = (int)(3.1* cos(r)*t);
int cy = (int)(3.1*sin(r)*t-1/2*g*t*t);
a[-cy+23][cx+0]='*';
} /* for */
for ( j = 0; j < YLEN; j++ ){
for( i = 0; i < XLEN; i++ )
printf( "%c" , a[ j ][ i ] );
printf( "\n" );
} /* for */
return ( 0 );
} /* main */
と45度の斜方投射のプログラムを作ったのですが、どこがだめでしょう??
0231デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
enum{ YLEN = 24, XLEN = 79 };
const double PI=3.14;
char a[ YLEN ][ XLEN ];
int i, j, t,r ;
double g=9.8;
for ( j = 0; j < YLEN; j++ )
for( i = 0; i < XLEN; i++ )
a[ j ][ i ] = ' ';
for ( i = 0; i < XLEN; i++ ) a[ 23 ][ i ] = '-';
for ( j = 0; j < YLEN; j++ ) a[ j ][ 0 ] = '|';
a[ 23 ][ 0 ] = '+';
for ( t = 0; t < 25; t++ ){

double r =(double) 45/180*PI;
int cx = (int)(3.1* cos(r)*t);
int cy = (int)(3.1*sin(r)*t-1/2*g*t*t);
a[-cy+23][cx+0]='*';
} /* for */
for ( j = 0; j < YLEN; j++ ){
for( i = 0; i < XLEN; i++ )
printf( "%c" , a[ j ][ i ] );
printf( "\n" );
} /* for */
return ( 0 );
} /* main */
と45度の斜方投射のプログラムを作ったのですが、どこがだめでしょう??
0232デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
enum{ YLEN = 24, XLEN = 79 };
const double PI=3.14;
char a[ YLEN ][ XLEN ];
int i, j, t,r ;
double g=9.8;
for ( j = 0; j < YLEN; j++ )
for( i = 0; i < XLEN; i++ )
a[ j ][ i ] = ' ';
for ( i = 0; i < XLEN; i++ ) a[ 23 ][ i ] = '-';
for ( j = 0; j < YLEN; j++ ) a[ j ][ 0 ] = '|';
a[ 23 ][ 0 ] = '+';
for ( t = 0; t < 25; t++ ){

double r =(double) 45/180*PI;
int cx = (int)(3.1* cos(r)*t);
int cy = (int)(3.1*sin(r)*t-1/2*g*t*t);
a[-cy+23][cx+0]='*';
} /* for */
for ( j = 0; j < YLEN; j++ ){
for( i = 0; i < XLEN; i++ )
printf( "%c" , a[ j ][ i ] );
printf( "\n" );
} /* for */
return ( 0 );
} /* main */
と45度の斜方投射のプログラムを作ったのですが、どこがだめでしょう??
0233デフォルトの名無しさんNGNG
その注意力のなさ
0234デフォルトの名無しさんNGNG
2〜300までの素数を表示させたいのですが、以下のようにやると2のときだけ表示されません。
どうしたらよいのでしょうか?ご教授ください。

#include <studio.h>

int main ( void )
{
int i;
int j;
int sum = 0;

for ( i = 2 , i <=300; i++ ) {

if ( i = j ) {

sum = sum + 1;
printf("%4d", i);

if (sum%10 ==0 ) {

printf("\n");

}
}
}

printf("number of sosuu = %d", sum);

return(0);
}
0235デフォルトの名無しさんNGNG
( ゚д゚)ポカーン
0236234NGNG
やっぱりバグがるのですか?
0237デフォルトの名無しさんNGNG
>>234
jって何だ
0238234NGNG
jは2〜300の整数です。
0239デフォルトの名無しさんNGNG
>>238
入ってないじゃん
0240234NGNG
なるほどです。もう1回挑戦してみます。
0241デフォルトの名無しさんNGNG
大量の処理を行う時、

for(i = 0 ; i < 10000 ; i++)
{
printf("Hello!!\n");
}
こうするとCPU使用率が100%になってしまうので、

for(i = 0 ; i < 10000 ; i++)
{
printf("Hello!!\n");
Sleep(1);
}
こうしてみたら、CPU使用率1%位になったのですが、処理に時間がかかりすぎます。
精度は別として1msのウェイトを入れているから当たり前なのですが。

実際には延々と裏で走り続けるプログラムなので、100%はまずいのですが、
速度もある程度維持したいので Sleep(1); はちょっと遅すぎます。

この辺の調整方法で正攻法というのはありますでしょうか?
0242デフォルトの名無しさんNGNG
>>241
スレ違い
0243デフォルトの名無しさんNGNG
つまり、違うスレッドを…
0244デフォルトの名無しさんNGNG
>>241
プライオリティの低いスレッドを作ってそいつにやらせろ。
あるいはそのプロセス自身のプライオリティを下げて実行しろ。
CPUを100%使うのが悪いんじゃない。
フォアグラウンドのタスクを邪魔するのがいけないんだ。
0245241NGNG
ワーカースレッドなる物を学んで出直してきます。
0246デフォルトの名無しさんNGNG
>>245
その前にC言語の問題じゃないって気づけよ。
0247デフォルトの名無しさんNGNG
>>230-232 なにかだめなのか?
0248デフォルトの名無しさんNGNG
>>247
なにがだめなのかも分からないんです。
0249デフォルトの名無しさんNGNG
>>248
誰が駄目だといったのか? その人に聞け
0250デフォルトの名無しさんNGNG
>>248
駄目と言った人が駄目なようだ
0251デフォルトの名無しさんNGNG
>>230-232
for ( t = 0; t < 25; t++ ){
double r =(double) 45/180*PI;
int cx = (int)(80.0* cos(r)*t);
int cy = (int)(80.0*sin(r)*t-1.0/2.0*g*t*t);
cx /= 10; cy /= 10;
if (cx>=0 && cx<XLEN && cy>=0 && cy<YLEN)
a[-cy+23][cx+0]='*';
} /* for */


ところで、こうゆうループの中で変数宣言するのが最近は普通なの?
0252デフォルトの名無しさんNGNG
やっぱり同じものを3度も貼ったことがダメなんじゃないのか?
それより、せっかくmath.hをインクルードしながら、PIを自分でdefineしてるのはどうよ?
M_PI使えばいいのに。
0253デフォルトの名無しさんNGNG
>>251
ループの中でしか使わないなら漏れもそう書くな。
スコープが小さくなるようにしたほうが間違いを起こしにくいし
最適化にも良いわけだしな。
0254デフォルトの名無しさんNGNG
>>251
昔から普通だと思ってたが?
0255デフォルトの名無しさんNGNG
昔のコンパイラはループの中では変数宣言できなかったような。
0256デフォルトの名無しさんNGNG
>>255
どこでも{}ブロックの先頭で宣言ってのは
かなり昔からできた気がするが。
DOSだとMS-Cの3ぐらいでもできたんじゃないかと(だがさすがに確認できん)
0257デフォルトの名無しさんNGNG
ブロックの先頭で宣言できるのは、ANSIから?
0258255NGNG
>>257
そんな気がします。
もう確認できないけど。
0259デフォルトの名無しさんNGNG
昔ってANSI以前を指すんかい(笑
それはそれでもいいが、>>251を読んでも、ANSI以前と比較してるとしたら終わってるよ(w
0260255NGNG
>>259
もちろん251を読んでいるけど、
どういう意味?
0261デフォルトの名無しさんNGNG
>>260
おいおい・・・

>ところで、ホゲホゲ 最近は普通なの?
とくれば、「俺は知らなかったよ」ってことだろ。
流行ってることを知らなかったか、そのものすら知らなかったか、普通どっちかだな。

で、>>251はANSIを知らないって解釈するか?
0262デフォルトの名無しさんNGNG
ANSI知ってるやつ挙手しろ!




その中で、本当にアメリカ国内用の規格票を取り寄せてるやつはいるか?
・・・少ないんだコレが (プププ
0263デフォルトの名無しさんNGNG
>>262
で?
0264デフォルトの名無しさんNGNG
そんなもん取り寄せてコンパイラでも作るのか?
0265デフォルトの名無しさんNGNG
入力ファイルから、指定された検索文字列を含む行のみを出力ファイルに出力したい。
(入力ファイル)  (検索文字列)  (出力ファイル)
あいうえお
かきくけこ   →  "くけ"    → かきくけこ
さしすせそ

のようにしたいんすけど、どうやるの?

参考サイト
ttp://www.kumei.ne.jp/c_lang/intro/no_20.htm
0266デフォルトの名無しさんNGNG
>>265
宿題?
0267デフォルトの名無しさんNGNG
>>265
一行読む。
その行に検索文字列が含まれていれば→出力
ファイルの終端なら→終了
でなければ戻る。
0268デフォルトの名無しさんNGNG
>>264
話逸らすんじゃねえよ
「そんなんANSIで保証されてねえだろ ぼけ」
とか言ってるてめえら糞ばっかり
0269デフォルトの名無しさんNGNG
void main(void)
{
printf("sine\n");
}
0270デフォルトの名無しさんNGNG
キチガイが紛れ込んだようだな。
0271デフォルトの名無しさんNGNG
だったら環境依存で好きにかけばいいだろ?バカ?
0272デフォルトの名無しさんNGNG
図星だったか (ゲラゲラ
0273255NGNG
>>261
そういう意味ですか。

251氏と255(俺)は別人です。
で、俺は251氏の書き込みを読んで、おそらく251氏はANSI以前のコンパイラを知っている人だと解釈して、
共感して、255の発言をしたのです。
0274251NGNG
ブロックの先頭での変数宣言はANSI以前からあったような気がする。
けど、対応していないコンパイラもあったし、対応していても、ループするたびに
新しい変数領域を確保するコンパイラもあった。
そのせいかどうか知らないが、初心者向け教本は変数の宣言は関数の先頭でする
ように教えているのが多かったように思う。

上級者がコンパイラの特性を判ってて使う分には別に問題ないんだけど、漏れはいつも
関数先頭で変数宣言していた。

いまどきのコンパイラでそんな事を気にするのは時代遅れなのかなと思ったんよ。
微妙に荒れちゃったみたいでごめんね。レスくれた人ありがとう。
0275デフォルトの名無しさんNGNG
配列の中からその数字を見つけ出し その数字を削除して その削除した所を詰める
作業がしたいんですけど よくわかりまへん。ご教授ください

#include<stdio.h>
int main(void){
int a[4]={1,2,3,4,5};
int key;
int i,j;

scanf("%d",&key);

for(i=0;i<=4;i++){
if(a[i]==key){
a[i]=a[i+1];
}

}

for(j=0;j<=4;j++){
printf("%d\n",a[i]);

}

return(0);

}
0276デフォルトの名無しさんNGNG
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
0277255NGNG
俺も251氏と同じ感覚で、「関数先頭で変数宣言派」です。
使っているコンパイラの特性がわかっていて、保守性が高い(読みやすい)コードが
かければそれでいいと思います。
私の発言こそ、スレが荒れてしまう原因を作ってしまったと思います。
ごめんなさいです。
0278275NGNG
sayounara
0279デフォルトの名無しさんNGNG
int end = sizeof(a) / sizeof(int);
for(i = 0; i < end - 1; i++)
  if(a[i] == key)
    memmove(&a[i + 1], end - i - 1);
0280デフォルトの名無しさんNGNG
とある大学で学生にC言語を教えることになったんですが、
学生に1人、Mac 使いがいるらしくて、「Mac でプログラミングの勉強できますか?」などと聞かれてしまいました。
Mac OS X でフリーのプログラミングツール(とりあえずはコンパイラとエディタ)というとどういう物が主流なんでしょうか。
当方、根っからの窓厨なので Mac のことは全然知らないんで・・・。
0281デフォルトの名無しさんNGNG
gccじゃないの? しらんけど。
0282デフォルトの名無しさんNGNG
ANSI以前の規格で書かれている有用なソースは多い。
使う必要は無いが、読める必要は有るよー。
0283デフォルトの名無しさんNGNG
>>280
最初から付いてるんじゃなかったけ?
ともかくスレ違い。
0284デフォルトの名無しさんNGNG
>>0xff

スレ荒らすのはあんたじゃないよ
古いコンパイラが現役で動いてる
事実を受け入れられなくて
金切り声でわめくガキんちょが
いらん争い創ってるだけだよ
現実から見聞きした情報が少なすぎて
最近出た本から得た上っ面の情報だけ見て
著者も意図しない方向へ感化されてるのさ
0285デフォルトの名無しさんNGNG
ANSIとか見たこともない「条文」とやらで
いきがってるバカばっかり
0286280NGNG
>>283
スレ違いですか。
まあ、ともかく回答ありがとうございます。
0287デフォルトの名無しさんNGNG
キチガイに粘着されますた。
>>284
そう、荒らしているのはオマエ!
0288デフォルトの名無しさんNGNG
ANSIと言うたびにこう聞いてやれ「何ページの何行目?」
0289デフォルトの名無しさんNGNG
コピペしたソースが動かないと途方に暮れるから、規格外は許せません!
0290デフォルトの名無しさんNGNG
なんでムキになってるかわからん
教授か上司にでもいぢめられたか?
0291デフォルトの名無しさんNGNG
割り込みハンドラみたいのをコピペするアフォが後を絶たんようだな
0292デフォルトの名無しさんNGNG
>>290
うぜー職制をたたき出した直後だが何か?
0293デフォルトの名無しさんNGNG
構造体の必要性がわかりません
誰か教えてください
0294デフォルトの名無しさんNGNG
>>293
いらん。 断言する。
必要性は誰に教えられることもなく
自分で感じ始めるまで
あらゆる処理を構造体なしで書いてみろ。
0295デフォルトの名無しさんNGNG
>293
ドキュメント性を高めるため。
独立した変数(多くは配列)を使ってもたいして変わらん。
0296デフォルトの名無しさんNGNG
ひとつ。一発で大量のデータを受け渡しが出来る。値渡しにしてもポインタ渡しにしてもね。
ふたつ。C++的な発送
0297デフォルトの名無しさんNGNG
>>294
そのレス、好きです。
ごもっとも。

>>293
295の言うとおり可読性の向上はもちろんだが、
異なる型の変数が複数個あった場合、
一つのポインタで全ての変数の受け渡しができるわけよ。
0298296NGNG
うわ、途中で書き込んでしまった。
まぁいいや。もうめんどくさい。
書こうとしてたふたつめはたぶん理解できないだろうから。
それより>>294の回答がベストだな。
0299デフォルトの名無しさんNGNG
複数のデータをまとめて新しい型を作ることが出来る。
0300デフォルトの名無しさんNGNG
落ちゲー作ってるとき、適当に変数をパカパカ宣言してた。
ある程度できあがったところで「1P専用じゃねぇか!」ってことに気づいた。
2Pできるように変更するとき、
いままで適当に宣言してた変数を構造体にいれて、2個の配列にした。

そんなことに使えます。
0301199NGNG
プリコンパイラ文…
プリしか合ってなかった。。
すみません

printf("%"PRIu64 "\n", a);
で解決しました(`・ω・)ノ
#kernelのsourceなので/usr/include/のファイルは
#参照できませんが、inttypes.hを参考に定義して解決

ありがとうございましたm(__)m
0302デフォルトの名無しさんNGNG
>>301
kernelでそんなもん…

まぁ何のkernelか書いてないけど。
0303デフォルトの名無しさんNGNG
失礼しました。
「マリオ大佐の冒険」です。
0304199NGNG
実際はprintkですが(*´Д`)
syslogに情報を書き出す部分いじってます。

0305デフォルトの名無しさんNGNG
>>304
いらぬ詮索でした。失礼。
0306デフォルトの名無しさんNGNG
>293 例えば、マップ上に沢山のアイテムを置くとして、
位置:x,yと属性をひとまとめにして扱いたい

struct item{
int x,y;
char name[256];
int val;
};

とか
0307デフォルトの名無しさんNGNG
> for ( t = 0; t < 25; t++ ){

空白あけるなよ ぼけ
空白あけるなよ ぼけ
空白あけろよ ぼけ
0308デフォルトの名無しさんNGNG
> > 昔のコンパイラはループの中では変数宣言できなかったような。
> どこでも{}ブロックの先頭で宣言ってのは
> かなり昔からできた気がするが。
> DOSだとMS-Cの3ぐらいでもできたんじゃないかと(だがさすがに確認できん)

おまえぼけ。
MSC 3どころかMSC 1もまだなく、Lattice-Cもなく、WIndowsどころかMS-DOSもなく、
そもそも、Cにenumどころかvoidさえなく、i++できても++iができなかった時代、
というか、Cがまだベル研関係者にしかくばられていなかった時代から、
できるぞ。
0309デフォルトの名無しさんNGNG
> ブロックの先頭での変数宣言はANSI以前からあったような気がする。
> けど、対応していないコンパイラもあったし、

対応してない処理系なんかねーよ! いいかげんなこと言うんじゃねーよ ぼけ
enumがなくてもvoidがなくても、bitフィールドがなくても、構造体の代入ができなくても、
printfがなくても、ブロックの内側での変数宣言だけはできるのがCだ。
さすがにそこまでできないような処理系はCとは呼べん。

> 対応していても、ループするたびに
> 新しい変数領域を確保するコンパイラもあった。

おまえ、意味わかってていってるのか? たとえば、一番よくあるスタックフレイムによる
auto変数の実装であれば、
for (i = 0; i < 10; i++) {
int j;
{
int k;
....
}
....
}
は、j も kもそこへくるごとに、「確保される」のはあたりまえなんだよ ぼけ!
いいか? ここでいう「確保」ってのは、スタック上で、そこを「使う」ために「生きて」
いることを言う。つまり。そのブロックの外にでたら、そのエリアは「死んで」しまう
だけ、単にスタックポインターをずらすだけのはなし、mallocみたいに「確保」にコストがかかるわけじゃあない。
そもそも、呼び出した関数から戻れば、その関数の中のauto変数は「死ぬ」だろ?
(実際にはスタックポインターずれるだけが、その後に別の関数を呼べば、そっちの
関数のauto変数がそのエリアを使うわけなので内容(残骸)は「壊れ」る)..

そんなのは常識だろーが ぼけ おい、しっかりしろよ おまえら。
0310デフォルトの名無しさんNGNG
> 学生に1人、Mac 使いがいるらしくて、「Mac でプログラミングの勉強できますか?」などと聞かれてしまいました。

Macならふつうにコマンドラインで
cc foo.c
と打てばいいだけ。
もちろん、その前に
vi foo.c
とやってソースファイルをうちこんでいかなきゃいけないがな。
詳しくは、
man cc
しろ。
0311デフォルトの名無しさんNGNG
ある構造体を定義して、そのインスタンスを2つ作り、
そこにデータを格納した後、それらのインスタンス同志の比較
をしたいんですが、バイナリdiff(という言い方でいいかわかりませ
んが、つまり文字列としての比較でなく、ビット毎に比較してしまい
たいんですが)する関数とか stdio.h にありますか?
0312デフォルトの名無しさんNGNG
> ANSI以前の規格で書かれている有用なソースは多い。
> 使う必要は無いが、読める必要は有るよー。

だーかーらー、ANSI以前も以後も、ブロック先頭の(たとえば forの中括弧の中の)変数宣言は
ずっと保証されている正しい書き方なんだってば。

ANSI以前でも以降でも、int a[10]; で0〜9の10個の要素が確保されるだろ?
それと同じぐらい「あたりまえ」のこと。「いや、11個確保されryコンパイラーがあった!」
なんていう話を持ち出しても「はあ? そんなのCとはよべんだろ」って言われるのと同じこと。
0313デフォルトの名無しさんNGNG
> ある構造体を定義して、そのインスタンスを2つ作り、

そんなものはありません > インスタンス
「変数」といいなさい。
0314デフォルトの名無しさんNGNG
>>311
その質問に対する回答なら、「ない」。
但し、構造体変数同士を比較するのに使える関数は標準ライブラリ中に「ある」。
0315311NGNG
>>314
わかりました。ありがとうございました。
よく探せということですね。みつかりました。
0316デフォルトの名無しさんNGNG
> 古いコンパイラが現役で動いてる事実を受け入れられなくて

ぼけ。そういう問題じゃない。

ブロックの内側での変数宣言(関数のブロックだけじゃなくて、その内側の)は、
べつに古い新しいの問題ではなく、ANSI以前の、初期のCからずっとできたし、
89年のANSIの文法でもしっかり規定された、Cの基本中の基本だよ ぼけ。

それを使えることを知っていても、「たまたまつかえる」とか「ANSI以降なら使える」とか
「ANSIでは使えないが昔は使えた」などと思っているようでは、ぜんぜんだめ。
むかーしからいままで、Cであれば「必ず」使える機能だ。それぐらいおぼえとけぼけ
0317デフォルトの名無しさんNGNG
つまり、「それは標準規格にない規格外の機能だろ」とか言ったやつもおおぼけだが、
そう言われて自信なくなって「う、でも昔からつかえてたから、規格がどうのは関係ないだろ」なんて
言うやつも やはりボケなんだよ。
ぼけ同士でまぬけなこと言い合ってるんじゃねーよ ぼけ

初期のCからあるCの基本中の基本であり、当然標準規格(C89でもC99でも)でも規定されている。

たまたま「自分が知らなかった」からっていって規格外とか言うんじゃねーよ ぼけ。

そういえば、a = "0123456789abcdef"[i]; なんていうコードも、「それって
規格外じゃないの?」なんてまぬけなことを抜かすやつが以前ここにいたなあ。
そいつと同程度だよ おまえらは
0318デフォルトの名無しさんNGNG
>>280
> 学生に1人、Mac 使いがいるらしくて、「Mac でプログラミングの勉強できますか?」などと聞かれてしまいました。

Macは最初からコンパイラーもエディターも入ってますよ。
viしてccすればいいです。
0319デフォルトの名無しさんNGNG
>>318
ださい
0320デフォルトの名無しさんNGNG
viやccはダサいのかー
代わりに何を入れればいいのですか?
0321デフォルトの名無しさんNGNG
C言語スレの皆さん今日は。私は自作板の通称厨スレからきたものです。
厨スレには録音という自称年収5000万のスーパープログラマーというもの凄い池沼がいるのですが
彼が本当にプログラマーであるかどうかが争点となってちょっとした論争がおきてます。
設問
>JISコードをシフトJISコードへ変換する関数を作成しなさい。
>関数の引数はJISデータを示すchar型ポインタと変換されたSJISデータを
>格納するchar型ポインタとする。
>また、変換ルーチンには流れをつかみやすくするためにgoto文を用いる事。
>入出力のチェックは別関数で行っているものとする。
彼の書いたコード。
−−−−−−−−−ここから
ia=a[0];
ib=a[1];
if(ia>0x09f) ia-=0x040;
ia-=0x081;
if(ib>0x07e) ib--;
ib-=0x040;
i=ia*0x0bc+ib
ia=i / 0x05e;
ib=i % 0x05e;
ia=ia+0x021;
ib=ib+0x021;
a[0]=ia;
a[1]=ib;
チェックしたいなら下記を追加しておけ。
if(a[0]<0x021 || a[0]>0x07e) return(1);
if(a[1]<0x021 || a[1]>0x07e) return(1);
−−−−−−−ここまで
私はプログラムの知識が全くないので解らないのですが、これってあってます?
又、これを書いた人物が年収5000万のスーパープログラマーと言える技量があるか
どうかの判定もお願いしたいのです。よろしくお願いします。
0322デフォルトの名無しさんNGNG
>>321
俺にはC言語はじめて1週間の人間が書いたように見える。
0323デフォルトの名無しさんNGNG
本来なら、こんな事をお願いするのは筋違いなのですが、
屁理屈をこねまくって、設問から解答まで8時間以上が経過し、
設問した人も、判定しようとした人も善意の有志は皆疲れ切って
今、寝ています。
ですので、もし、時間にゆとりのある方がいらっしゃいましたら判定をお願いします。
0324デフォルトの名無しさんNGNG
じゃあ、逆にSJISからUTF8に
{
  int hi, lo;
  int key;

  hi = FF(sc >> 8);
  lo = FF(sc);

  if (sc < 0x80)          /* ASCII */
    return (UCS2)(0x0000 | sc);
  else if (0xa0 <= sc && sc <= 0xdf)  /* JIS X 0201 kana */
    return (UCS2)(0xfec0 + sc);
  else if (hi <= 0xfc && 0x40 <= lo && lo <= 0xfc) { /* JIS X 0208 */
    key = (hi - ((hi >= 0xe0) ? 0xc1 : 0x81)) * 188;
    key += lo - ((lo >= 0x80) ? 0x41 : 0x40);
    if (key >= MAX_S || shiftjis_table[key].unicode == NONCHR)
      return UCS_NONCHAR;
    else
      return shiftjis_table[key].unicode;
  }
  else
    return UCS_NONCHAR;
}
0325デフォルトの名無しさんNGNG
ヌヒの次はぼけかw

>>316
>Cであれば「必ず」使える機能だ

本音ではそう言いたいよ?
でも俺、悪魔の証明はできねえし
信じらんねー仕様のコンパイラ色々見てる

ところでANSIのルールブックを見たことない香具師がANSI, ANSIとわめくのと
ベル研のconfidentialを見たことない香具師が(ry じゃねーだろな?
0326デフォルトの名無しさんNGNG
> > Cであれば「必ず」使える機能だ
> 本音ではそう言いたいよ?

本音もくそもなく、実際使える。

それができない処理系も考えなきゃ...なんていうことを言い出したら、
「whileやifが使えないCだってあるんだから、使うな!」も言える。
それぐらいの基本だ。


0327デフォルトの名無しさんNGNG
> ところでANSIのルールブックを見たことない香具師がANSI, ANSIとわめくのと

あのー、いまどきANSIなんていうやつがぼけだとおもいますが。
0328デフォルトの名無しさんNGNG
>>326
その通り
0329デフォルトの名無しさんNGNG
しかも「ルールブック」なるものはない。
0330デフォルトの名無しさんNGNG
>>326
だいたい規格制定以前ってことは
そもそも「Cとはこういうものを言う」って
定義自体が存在しなかったわけだろ

そんなん言い出したらオリジナルのccだけじゃん
0331デフォルトの名無しさんNGNG
それにANSIなりJISなりISOなりの規格表を「見たことあるのか?」なんてまぬけなやつは、
自分が見たことない->ほかのやつもみたことないにちがいない、というまぬけな思い込みな
わけだ。
ふつう見てるだろ。
自分が簡単に入手できないからといって、そう思い込みたがるやつは間抜け。
0332デフォルトの名無しさんNGNG
>>320
http://www.metrowerks.co.jp/products/desktop/macintosh/mac8j/index.html
0333デフォルトの名無しさんNGNG
> だいたい規格制定以前ってことは
> そもそも「Cとはこういうものを言う」って
> 定義自体が存在しなかったわけだろ

いいや。すべてのCでそうだった。
0334デフォルトの名無しさんNGNG
>>333
どうやって確認したんだよ?
0335デフォルトの名無しさんNGNG
>>331
その通り
0336デフォルトの名無しさんNGNG
> そんなん言い出したらオリジナルのccだけじゃん

こいつぼけ。おりじなるはccではない。そんなことしらんのか...
0337デフォルトの名無しさんNGNG
>>331
>規格表

人の揚げ足とるんならてめーがしっかりしろ ぼけ
0338デフォルトの名無しさんNGNG
>>333はぼけ厨だな。
>>1の推奨NGワードに「いいや」もいれておくべきだった。
0339デフォルトの名無しさんNGNG
>>321
そもそもShiftJISからJISに変換しているように見える。
#詳しく調査してないが。
スタイルにも「慣れ」が感じられない。
0340デフォルトの名無しさんNGNG
returnにも括弧をつけているところに慣れを感じる。
0341デフォルトの名無しさんNGNG
おら会社いくど
ぼけが答えにつまってるの
待ってらんねー
0342デフォルトの名無しさんNGNG
>>340
それは慣れじゃないだろ。
ふつうは初心者も熟練者もつけない。
特殊な人間の「くせ」でつけるやつはいるが。
0343デフォルトの名無しさんNGNG
>>321
年収いくらぐらいの技量に相当するか、うちの学校の先生に聞いてきます。
でも、見た感じおれよりできない感じだけどなあ。
0344デフォルトの名無しさんNGNG
仮にSJIS->JISか美しく書けたところで、年収5000万はないっしょ
0345339NGNG
>>321
ちょっと変わっているのは、掛け算割り算を行っている辺り。
というのも、一般的に知られている変換ロジックではその演算はあまりしないから。
ここで問題になるのは、慣れているからそのロジックを生み出せてそれを記述できたのか、
既存のライブラリか何かから探してきたから記述できたのか、どっちかの判断が難しいことだね。
0346デフォルトの名無しさんNGNG
>>344
いやだから、それ以前に課題はJISからSJIS。
0347デフォルトの名無しさんNGNG
>>318
私のMacはMacOSが動いていますが、viもccもありません。
0348デフォルトの名無しさんNGNG
>>340
寧ろ非常に素人臭いんだが。
0349デフォルトの名無しさんNGNG
>>347
9er ですね?
0350デフォルトの名無しさんNGNG
> 私のMacはMacOSが動いていますが、viもccもありません。

そのMacはにせものです。

本物のMacはviもccも入っています。(だから梱包といて取り出して電源いれれば、
すぐCコンパイラーが使えます)
0351デフォルトの名無しさんNGNG
親から譲り受けた株式と不動産の収入が4750万円。
0352デフォルトの名無しさんNGNG
>>350
入ってないです。
MacOS X Developper Toolsをインストールしないとccは入らないです。
0353デフォルトの名無しさんNGNG
>>352
だからそれはにせものだと何度言わせれば(ry
0354デフォルトの名無しさんNGNG
そもそも稼動中のMacのなかでOSXがはっているやつって、半分以下じゃ
ないかな・・・
Macユーザって機能とか重視しないからなかなか買い換えない印象がある。
0355デフォルトの名無しさんNGNG
Macは見た目が重要だから買い換えるだろう。
0356デフォルトの名無しさんNGNG
Macは見た目で特許をとろうとしているくらいだしなw
winで動くdockクローンソフトを配布停止にもしたし。
0357デフォルトの名無しさんNGNG
さあスレ違いも佳境に入ってまいりました。
0358デフォルトの名無しさんNGNG
マック!マック!マック!マック!
0359デフォルトの名無しさんNGNG
スズゥーキィィィ!!
0360デフォルトの名無しさんNGNG
カンマ演算子で
for (i=0; i<10; fnc1(), i++) {
  fnc2();
}
と書くのと、カンマ演算子を使わずに
for (i=0; i<10; i++) {
  fnc1();
  fnc2();
}
と書くのでは何か違うのですか?
0361デフォルトの名無しさんNGNG
if (a==b) {
 c1=0;
 c2=0;
 c3=0;
}
とかを、
if (a==b) c1=0, c2=0, c3=0;
などと{} を書かずに書けるとか。
0362デフォルトの名無しさんNGNG
  fnc1(i);
  fnc2(i);
なら意味が変わってくるな
0363デフォルトの名無しさんNGNG
>>362
なんで?
0364デフォルトの名無しさんNGNG
>>360
その例だと、fnc1()とfnc2()の呼ばれる順番が違う。
0365デフォルトの名無しさんNGNG
>>360
違う。
fnc1とfnc2の呼ばれる順番を考えてみな。
0366デフォルトの名無しさんNGNG
マクロを書くとき以外、カンマ演算子を使う必要はないと主張する。
少なくとも、カンマ演算子を使って書いたからといってコードが読み易くなるとは、俺は思わない。
単に主義・スタイルの問題だが、そういうことも大事だ。
0367デフォルトの名無しさんNGNG
>>366
forで使うだろ。
for(i=0,j=0・・・みたいに。
0368デフォルトの名無しさんNGNG
>>367
馬鹿?
おまえが使うかどうかは知ったこっちゃ無い。
使わなくても書けるだろ。
0369デフォルトの名無しさんNGNG
>>367
ちなみに、そう書きたくなるってことは、ループの条件にiとjの2つが絡んでいるということだ。
もし違うなら、そう書くべきではない。
で、そういう場合は条件判定も、iやjの増分(増分とは限らないが)も、複雑だろう。
とすると、ほんとうにfor文がふさわしいのか?
while文の方が読みやすい・保守しやすいのではないか、そこまで考えなくてはならない。
だから367の例だけで「使うだろ」と言われても、「使う必要あるのか?」としか答えられない。
0370デフォルトの名無しさんNGNG
i = i++;
を実行すると悪魔を召還できるってほんとですか?
0371デフォルトの名無しさんNGNG
>>368
なら、マクロを書くときにも使う必要はないな。
0372デフォルトの名無しさんNGNG
>>366
馬鹿?
使わなくても書けるだろ。
0373デフォルトの名無しさんNGNG
>>371-372
なんか楽しいか?
カンマ演算子の有効性を主張する、骨のある奴はいないのか?
0374デフォルトの名無しさんNGNG
>>370
処理系依存ですが、本当です。

ちなみに
if( a==0 )
を実行するとボケ之助を召還できます。
0375デフォルトの名無しさんNGNG
>>374
×ボケ
○ぼけ

ちなみにボケは>>373
0376デフォルトの名無しさんNGNG
>>375
無理して話題に加わらなくてもいいんだよ?
C言語をマスターしたらまた来てね。
0377デフォルトの名無しさんNGNG
>>376
なら聞くが、どうしてマクロを書くときには「必要」なんだ?
例を出してみろ。
0378デフォルトの名無しさんNGNG
カンマが演算子だ、なんていうイっちゃった発想には敬服するが
使って嬉しいもんじゃないな。
とはいえ

  int i;
  char buf[1024], *ptr;
  for (i=0, ptr=buf; i<N && *ptr; i++, ptr++) {
    :

こーゆーのはたまに使うけどな。
0379デフォルトの名無しさんNGNG
>>378
演算子だぞ。
引数の区切りのあれとかは違うけど。
0380デフォルトの名無しさんNGNG
>  char buf[1024], *ptr;
あーあ、やっちゃったね。
このソフトバッファオーバーフローであぼーんだな。
0381デフォルトの名無しさんNGNG
>>380が一番アホだな。
0382デフォルトの名無しさんNGNG
>>378
本でも読めよ。
0383デフォルトの名無しさんNGNG
376は逃げたか
0384360NGNG
みなさんレスありがとうございます。
for (i=0; i<10; fnc1(), i++) {
  fnc2();
}
と書くと、fncの実行順としては
for (i=0; i<10; i++) {
  fnc2();
  fnc1();
}
になるということでいいでしょうか?
で、for(i=0,j=0・・・ のように複数の値の増減が無い場合に前者のように
書くのはスタイルの問題という理解でいいのでしょうか?

私自身はまだC言語初心者のせいか、後者の方がイメージしやすいのですが、
というか前者のような書き方を使いこなせないのですが・・・
0385デフォルトの名無しさんNGNG
>>384
読めるのなら問題ない。

初期化→比較→真なら→文→増分→比較→・・・・
         →偽なら→終わり
0386デフォルトの名無しさんNGNG
>>385
forの説明なんぞしてどうする。
0387378NGNG
>>379
>演算子だぞ。
いや文法上はそうだけど、そういう強引な仕様が如何にも C だなあ、って話。
0388デフォルトの名無しさんNGNG
文法上はって・・・
0389デフォルトの名無しさんNGNG
>>387
> カンマが演算子だ、なんていうイっちゃった発想には敬服するが

↑これはCに対して言ったの?
0390デフォルトの名無しさんNGNG
さすがにちょっと苦しいね>387
0391デフォルトの名無しさんNGNG
カンマが演算子なんて言い張るならどう演算しているのか言ってみろ。
0392デフォルトの名無しさんNGNG
>>391
話にもならん。
0393デフォルトの名無しさんNGNG
プッ逃げたな
これに懲りたら半端な知識で議論に参加しようなどと思うなよ。
0394デフォルトの名無しさんNGNG
>>393
自分の無知を誇らしげに晒すなよ(w
0395デフォルトの名無しさんNGNG
そういえばどこかにint x, yやhoge(x, y)がコンマ演算子の使い方だ
って言ってるページがあったな
0396デフォルトの名無しさんNGNG
また馬鹿を釣ろうとしているのか?
0397デフォルトの名無しさんNGNG
強制IDの板なら録音をまとめてあぼ〜ん出来るのになぁ
0398デフォルトの名無しさんNGNG
>>391は釣りじゃなくガチだったのか?
元々、「カンマ演算子」の話だ。
しかし、「カンマは演算子」にしてしまうと、意味がおかしくなるからな。
Cでは「,」を、引数の区切りとして使う場合と、カンマ演算子として使う場合があるからな。
0399デフォルトの名無しさんNGNG
fgetsで文字列を読み込んで、終端に\0を付加したいときの
一般的なやり方を教えてください
0400デフォルトの名無しさんNGNG
>>399
fgets()が勝手に\0つけてくれます。
0401デフォルトの名無しさんNGNG
>>400
ありがとうございます
getsと違い\nも入るんですね
\0がどうとか勘違いしてました
0402デフォルトの名無しさんNGNG
>>391
Cではあまりにも色んな場面で'\054'を使うが
おまえさんが言ってるのはどれのことだ?
これが正確に言えない香具師には
説明しても無駄なんだが・・・
0403デフォルトの名無しさんNGNG
C言語では、文字列は「'\0'で終端するcharのシーケンシャルな集合」と定義されているので
リファレンスに「文字列をセットする」と書かれていれば'\0'で終端されている。
0404デフォルトの名無しさんNGNG
>定義されているので
どこで?
0405!=391NGNG
>>402
日本語で話せよ
0406デフォルトの名無しさんNGNG
>>404
まじめな質問なのか、揚げ足とって喜びたいだけなのか?
おまえ、今日、ずっと粘着している厨房なんだろ。
0407デフォルトの名無しさんNGNG
>>404
俺も聞きたい (プ

>>405
>!=391
必死だなw
0408デフォルトの名無しさんNGNG
054=44=0x2c=, とでも言いたいんだろうが
なんでわざわざ '\054' なんだろ。
0409デフォルトの名無しさんNGNG
ところで>>326よ、もう半日経ったぞ ぼけ
早く答えろよ、いつまで待たせる気だよ?
0410デフォルトの名無しさんNGNG
>>408
'\054'じゃない処理系の名前を知らないんだろ? 正直に言ったらどうだw
0411デフォルトの名無しさんNGNG
>>410
何が'\054'じゃない処理系の話をしているの?
0412378NGNG
「カンマ“が”演算子」は確かにおかしいな。スマソ。
>>389
そうそう。
複数の式をひとつにまとめられる以外にメリットないでしょ?
0413デフォルトの名無しさんNGNG
俺は{}の代わりにたいてい,で繋げるよ。
こっちのほうがわかりやすいからね。
0414デフォルトの名無しさんNGNG
>>412
>複数の式をひとつにまとめられる以外にメリットないでしょ?

評価が出来る。

この利点すら分からない奴に、偉そうにC言語を語ってもらいたくないな。
0415デフォルトの名無しさんNGNG
まとめられるだけだったら演算子っていわないじゃんか。
0416デフォルトの名無しさんNGNG
>>411
プ
0417デフォルトの名無しさんNGNG
とぼけてりゃそのうち諦めてもらえると思ってる甘ったれがいるな
たまには徹底的にいじめてやるのもまた一興
0418デフォルトの名無しさんNGNG
'\054'
0419デフォルトの名無しさんNGNG
俺がみたことあるのは、こんな感じ。実際はもちょっと凝ったことやってたわけだが。

#ifdef DEBUG
#define A(x) (hoge(), y)
#else
#define A(x) (y)
#endif

z = A(y);
0420419NGNG
おいおい、マクロの引数が・・・
typoだからつまらん突っ込みは勘弁。
0421デフォルトの名無しさんNGNG
>>420
つまらんミスにいちいち突っ込むやつはいない。
と突っ込んでみる。
0422デフォルトの名無しさんNGNG
>>391出て来い! オラ
0423デフォルトの名無しさんNGNG
日本語で話せよ
0424デフォルトの名無しさんNGNG
>>423
ニホンゴワカリマスカ?
0425デフォルトの名無しさんNGNG
煽られつかれてsageだした惨めなあいつw
0426デフォルトの名無しさんNGNG
#ifdef DEBUG
#define return if (fprintf(hogehoge), 0) {} else return
#endif

カンマ演算子がないと、これが使えんので、ぜひとも必要
0427デフォルトの名無しさんNGNG
forなんて使う奴はアホだなwhileだけでできるだろう?
0x0Aとか書く奴はバカだな10でできるだろう?
0428デフォルトの名無しさんNGNG
アホでいいバカでいい
どうせぼけが言ってる基準
0429デフォルトの名無しさんNGNG
whileなんかイラネーヨ
漢はgotoひとすじ
0430デフォルトの名無しさんNGNG
>>426
死ね
0431デフォルトの名無しさんNGNG
if (fprintf(hogehoge) & 0) {} else return
0432デフォルトの名無しさんNGNG
>>426さえ死ねばいらなくなるってだけのくだらねえサンプルだな
0433デフォルトの名無しさんNGNG
>>426
こうすればカンマ演算子はいらない。

#ifdef DEBUG
#define return if (fprintf(hogehoge)&0) {} else return
#endif
0434デフォルトの名無しさんNGNG
C言語で書いたバイオリズムのソースってないですか?
0435デフォルトの名無しさんNGNG
あるだろうね
0436デフォルトの名無しさんNGNG
>>435
どこでしょう?一例を教えてくださいませ。
0437デフォルトの名無しさんNGNG
http://www.google.co.jp/
0438デフォルトの名無しさんNGNG
検索ワードぐらい教えてやれよ。不親切だなぁ。
検索ワード:C
0439デフォルトの名無しさんNGNG
>>438
オマエモナー
0440デフォルトの名無しさんNGNG
n*nの行列の2つの行列をかけあわせるプログラムをつくり、これを用いてA^2^mを計算するプログラムをつくれ
0441デフォルトの名無しさんNGNG
>>440
それが人にものを頼む態度か
じゃなくて宿題?
0442デフォルトの名無しさんNGNG
> カンマ演算子の有効性を主張する、骨のある奴はいないのか?
そのまま呼ぶなんて、きみたち 通じゃないね。

jazzはずーじゃ
飯はすーめ ね

0443デフォルトの名無しさんNGNG
>>441
マルチだな。放置汁。
0444デフォルトの名無しさんNGNG
> カンマ演算子の有効性を主張する、骨のある奴はいないのか?
そのまま呼ぶなんて、きみたち 通じゃないね。

jazzはずーじゃ
飯はすーめ ね

0445デフォルトの名無しさんNGNG
>>441
問題そのまんまかいてしまいました(*_*)宿題おしえてください!!
0446デフォルトの名無しさんNGNG
> カンマが演算子だ、なんていうイっちゃった発想には敬服するが

カーニハンもそう言ってますよ。
0447デフォルトの名無しさんNGNG
> 0x0Aとか書く奴はバカだな10でできるだろう?

小文字にしろよぼけ
0448デフォルトの名無しさんNGNG
> C言語で書いたバイオリズムのソースってないですか?

a = atol(argv[1]);
printf("%d %d %d\n", a % 23, a % 28, a % 33);

これだけでできるね。
0449デフォルトの名無しさんNGNG
コンマ子算演!
0450デフォルトの名無しさんNGNG
馬鹿!
カンマ演算子が無ければ、BASICでマルチステートメント多用して少しでも実行速度
上げようとしてた苦労が浮かばれないじゃないか!
Cでも同じように書きたいだろ。
0451デフォルトの名無しさんNGNG
ポインタのインクリメント
p++
は繰返子
0452デフォルトの名無しさんNGNG
450はBasicでのまるちすていとめんとkのくぎりが何だったか思い出せないぼけ
0453デフォルトの名無しさんNGNG
通はマンコ演算子って言うんだよ!!
0454デフォルトの名無しさんNGNG
さて、このスレは月曜まで使い物になりませんのでご注意下さい。
0455デフォルトの名無しさんNGNG
カンマ演算子のいいところは、「いろいろつなげて、結局最後のものの値」になるところ。

a = foo(), bar(), hoge(); だったら、
3つは必ずその順に実行されるし、最後に実行したhogeの価がaに入る。
ほかにこんな便利な演算子はない。
0456デフォルトの名無しさんNGNG
はぁ、
0457デフォルトの名無しさんNGNG
無効なキャスト式というエラーの回避方法を教えて下さい。

0458デフォルトの名無しさんNGNG
キャストをやめる
0459デフォルトの名無しさんNGNG
引数が3つであるような関数fooに

foo(a, (b, c), d); ってやってみたんですが、うまくいきません。
どうしてですか?
関数の引数にはカンマ演算子は使えないのですか?
0460デフォルトの名無しさんNGNG
キャストをやめても出る場合は何がおかしいんですかねぇ〜
0461デフォルトの名無しさんNGNG
main()
{
f(0,(0,1),2);
}

D:\>cl a.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

a.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:a.exe
a.obj
a.obj : error LNK2001: 外部シンボル "_f" は未解決です
a.exe : fatal error LNK1120: 外部参照 1 が未解決です。

上手く行ってるけど?
0462デフォルトの名無しさんNGNG
お前らこの関数をどう思う?

int sjisTojis(unsigned char *a)
  {
    int i,ia,ib;
    i=((a[0]-0x021)*0x05e)+a[1]-0x021;
    ia =i / 0x0bc; ib =i % 0x0bc;
    ia+=0x081; ib+=0x040;
    if(ia>0x09f) ia+=0x040;
    if(ib>0x07e) ib++;
    a[0]=ia; a[1]=ib;
   return (0);
  }
0463デフォルトの名無しさんNGNG
ウザい
0464デフォルトの名無しさんNGNG
クサい。
0465デフォルトの名無しさんNGNG
ξ
0466デフォルトの名無しさんNGNG
Ξ
0467デフォルトの名無しさんNGNG
じゃこれはどう思うよ
ttp://www.exp.org/egg_battery/egg_battery.html
0468デフォルトの名無しさんNGNG
>>460
ウダウダいわずにソースを晒したほうが早い
0469デフォルトの名無しさんNGNG
c言語の標準ライブラリがヘッダーごとにまとめてあるサイト、書籍って知らないですか?
よく使うヘッダーなら結構あるのですが、dir.h,stdarg.h,io.h,signal.hなど、普段あまり使わないような
ヘッダーの標準ライブラリが載ってるといいのですが。。。
0470デフォルトの名無しさんNGNG
信号機のプログラムを作ろうと思うんですが自分のCレベルでは画像を扱えません。
妥協して「青」や「黄」「赤」という具合に表示させようと思います

そこで教えてもらいたいのですが、

「青」 (一定時間経過) --> 「黄」
       ↑
ここの判断がどうしたらいいかなと悩んでます

time.hのtime関数あたり調べたんですが現在の時刻の表示やらなんやら。。
ちょっと違うなぁと思いまして。。

どなたか教えてくださーい
よろしくお願いします
0471デフォルトの名無しさんNGNG
>>469
あなたのパソコンの ../man/man3 あたりがよくまとまってていいと思うよ。
マジオススメ。Windowsは知らん。
0472デフォルトの名無しさんNGNG
>>470
1、Sleep関数を使う。
Sleep(500); //数値はミリ秒単位
2、Timerイベントを発生させる。
http://www.kumei.ne.jp/c_lang/
・Windows SDK編 第1部 (第9章 タイマーを使う、第10章 タイマーを使ったアプリケーション)
0473デフォルトの名無しさんNGNG
C言語で3の100乗を計算することはできますか?
0474デフォルトの名無しさんNGNG
>>473
できる。
int とかの組み込み型使ってやったらオーバーフローするだろーけど。
0475デフォルトの名無しさんNGNG
515377520732011331036461129765621272702107522001
0476デフォルトの名無しさんNGNG
具体的にどうするのでしょうか?
やり方の乗っている参考書などあれば教えてください
お願いします
0477デフォルトの名無しさんNGNG
「多倍長計算」あるいは「多桁計算」で
ググってみてはいかがでしょう。
0478デフォルトの名無しさんNGNG
演算の方がよろしくてよ
0479デフォルトの名無しさんNGNG
system("ruby(ry
0480デフォルトの名無しさんNGNG
漏れのID今Gcc〜なんだが、ここじゃでない...
0481デフォルトの名無しさんNGNG
>>474>>475>>477>>478
有り難うございました。
探してみます
0482デフォルトの名無しさんNGNG
>>469
LSIC-86のやつは?一部欠けてるけど
以下マニュアルから引用

 4.1.1 言語仕様
(略)
wchar_tおよびL'...', L"..."はサポートしていません

 4.1.2 ライブラリ
<locale.h>と、その中で定義されているマクロや関数はサポートしていません
多バイト文字をあつかう関数群(mblen()など)はサポートしていません
0483デフォルトの名無しさんNGNG
教えて!
大学はじめて習ってるんですけど、課題で下記の問題を回答しなければいけないんですがわかる方おしえて!!

float 型と double 型には inf と nan という特別な値が用意されている.
適当な文献をあたって inf と nan という特別な値が持っている意味を調べ,プログラムを作成して inf と nan を実際に発生させよ.
0484デフォルトの名無しさんNGNG
>>483
宿題は自分でやろうね。はあと
0485デフォルトの名無しさんNGNG
>>469
http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?bunsyoId=JIS+X+3010%3A2003&dantaiCd=JIS&status=1&pageNo=0&lang=jp
0486デフォルトの名無しさんNGNG
>>454
すると月〜金は使い物になってたのか
おまいにとってw
0487デフォルトの名無しさんNGNG
>>483
>>1嫁
0488デフォルトの名無しさんNGNG
>>462
> お前らこの関数をどう思う?

同じような変数と同じロジックを使うとしても、ふつうはこう書く。
short sjisTojis(unsigned char *a)
{
  int i, hi, lo;

  i = ((a[0] - 0x21) * 0x5e) + a[1] - 0x21;
  hi = i / 0xbc + 0x81;
  lo = i % 0xbc + 0x40;
  if (hi > 0x9f)
    hi += 0x40;
  if (lo > 0x7e)
    ++lo;
  return hi << 8 | lo;
}

引数でもらったところに上書きしてもふつう不便なので(SJISはそのまま文字列でつかえるが、
ISO-2022-JPだとASCII文字との境目にいろいろいれなきゃいけないので)
0489デフォルトの名無しさんNGNG
> c言語の標準ライブラリが

そんな言語はありません。

同様に
jAVAもないし
c++もないし
cObOlもない
0490デフォルトの名無しさんNGNG
まあ、もとのは、8bit分の16進数をわざわざ3桁で書いてあるあたり、
どうみてもしろーとだ。
0491デフォルトの名無しさんNGNG
>>489
つまんね
0492初心者NGNG
コンパイルするときにこのエラーメッセでたんですが、どういう意味か教えてください。
これ→warning: overflow in implicit constant conversionと
これ→warning: decimal constant is so large that it is unsigned
0493デフォルトの名無しさんNGNG
>>492
http://www.excite.co.jp/world/
0494デフォルトの名無しさんNGNG
>>492
訳すとこうなるか:
警告: 暗黙定数変換中のオーバーフロー
警告: 10進定数がunsigned型でいられないほど大きい
0495280NGNG
>>492
そのまんまの意味なんだけど。
英語が読めない?

警告: 定数を暗黙的に型変換する際にオーバーフローが生じました
警告: 十進定数は値が大きすぎなので、unsigned 型として扱われます。

例えば、int 型が16ビットとすると(いまどきそんな処理系少ないけど)、

signed int n; // -32768〜32767 までの範囲しか表せない
n = 40000; // 40000 は↑の範囲に収まらないので unsigend int 扱いされる
// ↑40000 を n に代入しようとすると、オーバーフロー扱いされる
0496デフォルトの名無しさんNGNG
>>280 の癖に生意気だぞ。
0497デフォルトの名無しさんNGNG
喧嘩腰名馬鹿麦価
0498初心者NGNG
ありがとうございます。英語読めません。
ほんと初心者なんでunsigned型ってのも分かんないんですが…
0499デフォルトの名無しさんNGNG
>>498
調べろ。
0500初心者NGNG
はーい…
0501初心者NGNG
あとfloatとかdoubleで
なんで(1.0/0.0)=infなんですか?
0502デフォルトの名無しさんNGNG
>>501
手計算してみろ。
0503デフォルトの名無しさんNGNG
>>501
仕様です。

1.0/0.0=∞以外にどうなって欲しの?
数学的に厳密に扱って 1.0/0.0=NaN(未定義)にして欲しいのか?
0504初心者NGNG
だってinfって∞って意味じゃないですか?
だから1.0/0.0=NaNっぽい気がするんですが、
数学とは意味が全然違うんですか?
0505デフォルトの名無しさんNGNG
>>504
一応、lim_(x→0) 1/x = ∞ なんだが。
数学だと、非常に小さな数と0、非常に大きな数と∞は区別すべきものだけど、
コンピュータ上だと精度の問題があって2者の区別が付かないから。
0506デフォルトの名無しさんNGNG
数学が苦手なオレには
infって∞だから 1.0/0.0 = inf ってのが
数学と意味が同じっぽい気がするんだが。
0507デフォルトの名無しさんNGNG
>>504
とりあえずIEEE754を見れば。
0508デフォルトの名無しさんNGNG
>>506
大丈夫、本当に数学に弱い人は 1/0 = 0 だと思ってるらしいから。
http://www.yomiuri.co.jp/komachi/reader/2004030200131.htm
0509デフォルトの名無しさんNGNG
5.1 非数(NaN)
NaN(Not a Number) は0/0 や√.1 など,数でなくなる状況のときに生成され
る特殊な数であり,それはどこかでInvalid operation が起こったことを示してい
ます(表2).いったんある部分がNaN として評価されると,それ以降の評価はす
べてNaN として評価されます.また,NaN には順序や同値関係はありません.

5.2 無限大(Infinity)
無限大(Infinity) は,オーバーフローが起きたときでも処理を続けることができ
るようにするために導入された特殊な数で,コンピュータ上ではInf と表示されま
す.Inf の生成は数学の無限大記号∞と同じような扱いができるように定められ
ています.そのため,いったんInf と評価されたとしても,limx→∞ 1/x = 0のよう
なルールがあるので,最終的な演算結果は浮動小数点数になる場合があります.
0510初心者NGNG
ありがとうございました。
もっと勉強します。
0511506NGNG
>>508
どうも。
さすがのオレも小学2年生よりはマシみたいですね。
0512デフォルトの名無しさんNGNG
そんなことより聞いてくれよ
同僚のソースみたらさ

#define HANDRED 100

int value = HANDRED;

とか書いてあんの

おまえ今後valueが100から200に変わったらどうすんのかと
#define の意味ないだろと
さらにはスペル違うだろと

奴曰く「grepしやすいじゃん」との事なんですが

誰かコイツを説得してください
0513デフォルトの名無しさんNGNG
>>509
√.1
√.1
√.1
√.1
√.1

>>508
あのページ見て思ったんだが、
問題の核心は「1/0がいくつになるか」よりも
むしろ「解なし」を教えてないってことにある
俺が習ったのは中学んときだが遅すぎると思う
0514デフォルトの名無しさんNGNG
>>512
ワラタ
0515デフォルトの名無しさんNGNG
>>462
前にもどこかで聞かれたから書いたけど、0x5eを掛けると言うロジックが特殊。
試しにそのとき提示した一般的なロジックを手動最適化してみたが、
その結果はやはり掛け算は行わないで済ませるのが得策だという結果が出た。
0516デフォルトの名無しさんNGNG
>>512
つーか旦那んとこコーディング基準ねーの?
0517デフォルトの名無しさんNGNG
HANDRED がか?
 ~~
0518デフォルトの名無しさんNGNG
c言語の勉強はじめようとおもうんだけど、
実際にパソコンでうって動作たしかめたりするにはどうやってやれば
いいですか?
学校ではemacs つかってターミナルでコンパイルして実行してたのですが、
家ではOSがXPなのでやり方がわかりません。
だれかおしえてー
0519デフォルトの名無しさんNGNG
>>518
http://www.cygwin.com/setup.exe
でemacs&gccな環境が手に入るよ
0520デフォルトの名無しさんNGNG
>>519
ありがとー
0521512NGNG
>>516
「保守性のない定数マクロを使わないこと」
なんてコーディング基準はなかったよ
命名規則はあったけど
実際は
#define D_xxx(プロジェクト名)_HANDRED
だった
0522デフォルトの名無しさんNGNG
cygwinってどうやって起動させるの?
0523デフォルトの名無しさんNGNG
// STRSTRREV (strstrの逆)
//**********************************************************
static char *STRREV;

char *STRSTRREV(char *s1, char *s2)
{
char *p, *wk;
int i, len;
p = strstr(s1,s2);
len = (p - s1);

wk = malloc(len+1);
if(wk==NULL) return 0;

for(i=0; i<len+1; ++i) wk[i] = 0;

for(i=0; i<len; ++i) wk[i] = *(s1+i);

STRREV = wk;
free(wk);
return STRREV;
}

free(wk)で落ちてしまう。のでデーターが帰ってこない。
//free(wk); (コメント)にしたら問題なく動作するのですが、
free()で落ちる原因って何ですか?

コンパイラーはgcc-3.2.2-5
0524デフォルトの名無しさんNGNG
つうかfree()して何を返したいのかと
0525デフォルトの名無しさんNGNG
>>523
なんで解放した領域を返してるの?
0526デフォルトの名無しさんNGNG
釣りじゃね?
0527デフォルトの名無しさんNGNG
fgetc関数でファイルを読み込むのに、改行(\n)を取得できない事
がたまにあるのですが、そんな事は、おこり得るものなのでしょうか?
0528デフォルトの名無しさんNGNG
>>524
>>525

>>523 使い方、勘違いしてました。ありがとう^^;
0529522NGNG
どれクリックすれば動くの?
0530デフォルトの名無しさんNGNG
>>522
http://www.cygwin.com/cygwin-icon.gif
みたいな悪趣味なアイコンができてるはずだからそれをクリック
0531デフォルトの名無しさんNGNG
できてねーよ
0532デフォルトの名無しさんNGNG
でてきました。ごめんなさい
0533デフォルトの名無しさんNGNG
>>523は何がしたいんだ?
「strstrの逆」ってのも意味わからんし。
0534ミナツキ サヤ ◆SAYAC2HJWE NGNG
534
0535デフォルトの名無しさんNGNG
そのまんまの意味だろ。
0536デフォルトの名無しさんNGNG
cygwinでエディタどうやってつかうの?
0537デフォルトの名無しさんNGNG
いや、あのソースを見ればやりたいことはわかるが…逆か?
0538デフォルトの名無しさんNGNG
いい間違い。

>>533では何がしたいのかも疑問だったが、
改めてソースを見ればやりたいことはわかった。
でも、逆か?
0539デフォルトの名無しさんNGNG
質問を変えます。ファイルポインタのバッファに改行が読み込まれない
事はあるのでしょうか?関数はfgetc()です。
0540デフォルトの名無しさんNGNG
>> 505
>lim_(x→0) 1/x = ∞ なんだが。

lim_(x→+0) 1/x = +∞
lim_(x→-0) 1/x = -∞

lim_(x→0) 1/x = ∞ では、ありません。
だいたい、∞ は、数ではないですよ。

勉強しなおしましょう。
0541デフォルトの名無しさんNGNG
空気を読みましょう
0542デフォルトの名無しさんNGNG
から・・・け・・・?
0543デフォルトの名無しさんNGNG
くうけだろがヴぉけ
0544デフォルトの名無しさんNGNG
そらきがつきまへんでしたな
0545デフォルトの名無しさんNGNG
数学の概念上は、非数もまた数の一種なんだけどな。
+∞はどんな数よりも大きい数を表し、-∞はどんな数よりも小さい数を表す。
矛盾した存在だけどね。
0546デフォルトの名無しさんNGNG
>>540
いや、∞の定義の仕方しだいでは lim_(x→0) 1/x=∞ になるよ。
リーマン球面とかで検索してみ。
まあ、ここまで来ると揚げ足取りでしかないけど。
0547デフォルトの名無しさんNGNG
数学の話なら板違い
0548デフォルトの名無しさんNGNG
>>545
「数」っていうから混乱するんだと思う。
∞はどんな「実数」よりも大きい数として定義して、
{実数, ∞} で新たな集合を作ると、これも数(というか、順序環)としての性質を持つ。

と、いい加減にスレ違いもはなはだしくなってるんだが。
0549デフォルトの名無しさんNGNG
空白あけろとかツマラン書き込みよりずっと有意義だけどな
0550デフォルトの名無しさんNGNG
>>549
つまらないと感じるのは、お前が厨房だからだってば。
0551デフォルトの名無しさんNGNG
バカじゃねーのw
0552デフォルトの名無しさんNGNG
>521
>#define D_xxx(プロジェクト名)_HANDRED

ワロタ
きっとコメントに
if(x==0){
 /* xが0に等しければ実行 */
 :
}
とか回転だろうな...
0553デフォルトの名無しさんNGNG
二度手間
0554デフォルトの名無しさんNGNG
二度手間って言うか、保守性を考えると余計なお世話。
0555デフォルトの名無しさんNGNG
// x を 0 に初期化
x = 0;

こんなのも見たことあるYO!
0556デフォルトの名無しさんNGNG
つーか、
bool setFlag(bool & data); // フラグを取得
って見たことあるよ(C++だけど)。
セッターで取得ってなにさ…
0557デフォルトの名無しさんNGNG
>セッターで取得

プログラムの気持ちになって考えているんだろう。
想像力の問題だな。
0558デフォルトの名無しさんNGNG
こういうのを見たことがある。

#define return_main return
#define return_sub1 return
#define return_sub2 return

int main(void){ return_main 0;}
void sub1(void){ return_sub1;}
double sub2(double x){ return_sub2 x;}
0559デフォルトの名無しさんNGNG
fscanf(fp, "%s", s); //文字列を出力

・・・ファイルの気持ちになって。
0560デフォルトの名無しさんNGNG
> if(x==0){

空白あけろよ ぼけ

>  /* xが0に等しければ実行 */

こういうボケなコメントは絶対書くな
0561デフォルトの名無しさんNGNG
C
0562デフォルトの名無しさんNGNG
/*
     Cで書かれています。
*/

#include <stdio.h>
  ・
  ・
0563デフォルトの名無しさんNGNG
#!/usr/bin/cc
#include <stdio.h>
...
0564デフォルトの名無しさんNGNG
/*
  秀丸で書きました(フォントはMS ゴシック)。
*/
/*
  Cで書かれています。
*/

#include <stdio.h> /* stdio.hをインクルード */
  ・
  ・
0565デフォルトの名無しさんNGNG
/*
  秀丸で書きました(フォントはMS ゴシック)。
*/
/*
  Cで書かれています。
*/
/*
  精魂込めてます
*/

#include <stdio.h> /* stdio.hをインクルード */
0566デフォルトの名無しさんNGNG
/* ぜんぜん面白くないね。日曜の朝からいったい何やってるのこの人たち。 */
0567デフォルトの名無しさんNGNG
>>562
IOCCCにあったな、それ
0568デフォルトの名無しさんNGNG
>>548
いい線ついたな
実数とdoubleの値を同一視するから話がおかしくなるんだよ
∞にばっか気をとられてるけど実数にεなんかねーし
明らかに等しくない集合に不毛な妄想(ry
0569デフォルトの名無しさんNGNG
>>568
(・ε・)キニシナーイ
0570デフォルトの名無しさんNGNG
CONSTANT SECTION.
03 CON-0 PIC 9(1) VALUE 0.
03 CON-1 PIC 9(1) VALUE 1.

以下20くらいまで続く
0571デフォルトの名無しさんNGNG
>>570
インデントしろ ぼけ
0572デフォルトの名無しさんNGNG
> /*
>      Cで書かれています。
> */

/*
*     Cで書かれています。
*/
にしろ ぼけ。(2桁めに*が並ぶように)
0573デフォルトの名無しさんNGNG
むしろ // の方が良いと思われ
0574デフォルトの名無しさんNGNG
何で?
行が増えるたびにわざわざ*とか//とか書くの?
0575デフォルトの名無しさんNGNG
Shiftを押さなくて済むしな。
0576デフォルトの名無しさんNGNG
>何で?

その行だけ見てコメントかどうか分からないだろ?
...ってゆーか分かりたい、分からせて
0577デフォルトの名無しさんNGNG
>      Cで書かれています。
これだけ見てコメントと分からない奴がいるだろうか?
0578デフォルトの名無しさんNGNG
> その行だけ見てコメントかどうか分からないだろ?
> ...ってゆーか分かりたい、分からせて

大抵の環境で色gsdfghjkl;:」
0579デフォルトの名無しさんNGNG
> 行が増えるたびにわざわざ*とか//とか書くの

あたりまえ!
それを「わざわざ」と感じるようだったら、エディターのが自動でつけてくれるやつにしろ。
0580デフォルトの名無しさんNGNG
>>539
釣りだと思うが、、、 答えとく。
fgets(b, size, f) の結果で
b が、 .*\n\0.*
の形にならないことはある。
\nに出会う前にファイルの終りに達したり、size-1 文字あったり、
その他なにかエラーが怒ったとき (怒)
0581デフォルトの名無しさんNGNG
cの基礎文法とその他(データ構造とか)を一通り勉強したつもりの
漏ですが、次のすてっぷとして何勉強しようか迷ってます。
(一応プリグラマ志望。)
そこで、linuxのほとんどはcで書かれているいうので、そのソースでも
勉強しようと思ったが、cだけの知識じゃ足りないし・・・
マジ何しよう・・・コンピュータの世界って広いし・・・
0582デフォルトの名無しさんNGNG
> cの基礎文法とその他(データ構造とか)を一通り勉強したつもりの

そんな言語はないぞ ぼけ!
0583デフォルトの名無しさんNGNG
cってのは、Cの文法から、ビットフィールドとunionとdo-whileと#ifとかと、ポインターを
省いた言語ですよ ;-)
だから、その知識だけでlinuxのソースは読めないでしょう ;-)
0584デフォルトの名無しさんNGNG
すいません
以下のプログラムで悪いとこはあるのでしょうか?
原因不明です

角括弧インクルードストディオドットエイチ角括弧綴じ
ルビンの壺括弧
イント メイン 丸括弧ボイド丸括弧綴じ
    プリントエフ丸括弧チョンチョンネタじゃないっすよ円マークエヌチョンチョン丸括弧綴じセミコロン
    リトラン ゼロセミコロン
ルビンの壺括弧綴じ

コンパイルしようとしても
エラー E2206 netajanaissuyo.c 1: 不正な文字 '角' (0x8a70)
以下、' 'の中に
角括弧インクルードストディオドットエイチ角括弧綴じ と、
縦読みさせられました。
なぜコンパイラに馬鹿にされなければいけないんでしょう
0585581NGNG
スマソ。
cじゃなくてCで・・・。
0586デフォルトの名無しさんNGNG
<inlude studio.h>
{
int main(void)
printf("ネタじゃないっすよ¥n");
retrun;
}

まず、いちばんいけないのが、ヘッダーファイルの名前だな ;-)
あと、円記号などつかってるから改行にならない。バックすラッシュにしろ。

あと細かいところいくつか。
0587デフォルトの名無しさんNGNG
悪いところはあなたの頭の中にあります。
0588デフォルトの名無しさんNGNG
>>585
おまえは典型的な「で、次は何をやればいいのですか?」症候群だ。
つまり、「わかったつもりになる」だけで理解ができるわけじゃない、偽物入門書を読んで
どこもひっかからなかったが、何も得てない状態です。

そんなわけで、おまえの読んだ入門書の名前を書けよ!
それが唯一意味のある情報だ! (この本はダメ本だっていう情報ね!)
0589581NGNG
>>588
偽物入門書の情報をカキコしたところで、
漏の「わっかたつもり症候群」が理解されるの?
0590デフォルトの名無しさんNGNG
全部ダメ言われるから意味なし。
0591デフォルトの名無しさんNGNG
> 漏の「わっかたつもり症候群」が理解されるの?

そいつはどうでもいいわけ。ほかのひとにとって「有用な情報」かどうかが重要。

つまり「ああ、その本を読むとこうなるのか」ってのは、かなり役立つ情報だよ。
0592デフォルトの名無しさんNGNG
>>590
ちがうだろ。
「だめ」はすでに書名出す前からいわれてるんだよ。

べつに「ダメかどうか判断してあげるから名前を出せ」といわれているわけじゃなく、
「おまえの本はダメなことが判明しかたから、名前を言え」といわれてるだけなんだから。
0593デフォルトの名無しさんNGNG
何言ってるか分からない
0594デフォルトの名無しさんNGNG
とりあえず何か作ってみて壁にぶちあたるのが一番早いかと
0595デフォルトの名無しさんNGNG
あの、どうやったらgmpって使えるようになるんでしょうか
cygwinをインストールして、gmpをダウンロード
./configure
make install
とやったのですが、
undefined reference to `____gmpz_mad'
と出てきます。
これはgmpライブラリをどこかに置けば解決すると思うのですが、
わかりません。どなたかおしえてくださいませ。

gmpフォルダは
d:\gmp-4.1.3
cygwinは
d:\cygwin
にそれぞれ置いています。
0596デフォルトの名無しさんNGNG
使えない人間には使えないんだよ。あきらめろ。
0597デフォルトの名無しさんNGNG
>>595
>>1
0598デフォルトの名無しさんNGNG
s
0599595NGNG
失礼しました。
ほかのスレをあたってみます
0600デフォルトの名無しさんNGNG
不毛なスレだ。
アホグラマに見切りをつけた>>595は勝ち組。
0601デフォルトの名無しさんNGNG
>>600は負け組み。
0602デフォルトの名無しさんNGNG
gccには、任意精度演算ライブラリ gmpって入ってないんですか?
どこかに置いてありませんか?
>>595はなんで追い払われたんですか?
0603デフォルトの名無しさんNGNG
GIMPと勘違いしたから。
0604595NGNG
GIMPとは?
GIMPとは、GNU 画像(Image)処理(Manipulation)プログラム(Program)のことです。

いくらなんでもこんなのと間違わねーよ
0605デフォルトの名無しさんNGNG
追い払った人を擁護するやさしい595
0606デフォルトの名無しさんNGNG
自演乙
0607595NGNG
>>606
いや、605とは違う人

まだ、困ってんだけど・・・
0608602NGNG
ttp://www.mit.msn.to/devel/mingw-gmp.html
ここでできるようですが、わかりません。
MSYS のインストールで、MinGWにmakefileがないと言われます。
GMP のインストールでも
$make
でmakefileがないと言われます。
0609デフォルトの名無しさんNGNG
コンパイラの設定の問題であって、C言語とは関係ないだろうが
0610デフォルトの名無しさんNGNG
cygwinスレてなかったっけ
0611602NGNG
じゃあ他のスレ行って見ます。
0612デフォルトの名無しさんNGNG
>>604
あんた必死すぎ
0613595NGNG
えへへ
0614595NGNG
>>608さんへ
「cygwin + mingw +gcc 相談室」
ttp://pc5.2ch.net/test/read.cgi/tech/1058134693/204
にてレスしてます。
0615デフォルトの名無しさんNGNG
ガウス積分のプログラム欲しいんですが、
どこかにありませんかね?
0616デフォルトの名無しさんNGNG
>>615
おまえは、探してから聞いてるのか、と問いたい。
0617615NGNG
>>616
探してます。
ttp://www.saiensu.co.jp/book_support/4-7819-0855-1/gauss1d.txt
ここなどを見つけたのですが、
nを色々変えれるプログラム探しているのです。。。
0618!=615NGNG
聞いてから探すんです。
by 漏れの後輩
0619デフォルトの名無しさんNGNG
ぐぐるだけでいろいろ出るのだが。
0620615NGNG
>>619
俺もぐぐったのですが、
nの数を変えれるプログラムが見つからなくて。
すいません。教えてください。
0621デフォルトの名無しさんNGNG
どれがnなのか。
0622615NGNG
>>621
ガウス積分する時の分割数がnです。
よろしくお願い致します。
0623デフォルトの名無しさんNGNG
>>586
>バックすラッシュにしろ。

してるだろ?
それがわからん ぼけ に合わせる必要などない。氏ね
0624デフォルトの名無しさんNGNG
>>623
個人的にお前がうざい。
0625デフォルトの名無しさんNGNG
>>624
出たなホモ野郎w
おまえの好みには興味がない
つーかキモいから黙ってろ
0626デフォルトの名無しさんNGNG
>>625
空白厨は(・∀・)カエレ!!
0627デフォルトの名無しさんNGNG
>>625
なんか、低レベルな煽りだね・・・
リアルで中学生?
0628デフォルトの名無しさんNGNG
(・∀・)ジサクジエーン
0629デフォルトの名無しさんNGNG
必死すぎ。
0630デフォルトの名無しさんNGNG
はオマエ>>629
0631デフォルトの名無しさんNGNG
624 名前: デフォルトの名無しさん [sage] 投稿日: 04/05/23 22:13
625 名前: デフォルトの名無しさん 投稿日: 04/05/23 22:15

627 名前: デフォルトの名無しさん [sage] 投稿日: 04/05/23 22:43
628 名前: デフォルトの名無しさん 投稿日: 04/05/23 22:46

629 名前: デフォルトの名無しさん [sage] 投稿日: 04/05/23 22:52
630 名前: デフォルトの名無しさん 投稿日: 04/05/23 22:55

0632デフォルトの名無しさんNGNG
>>623
あれがバックスラッシュに見える環境など存在しない。
お前の狂った脳内を除いてはな。
0633デフォルトの名無しさんNGNG
>>631
ワラタ、全部即レスw
0634デフォルトの名無しさんNGNG
>>632
プ
0635デフォルトの名無しさんNGNG
>>632
おまえまさにム板の恥だなw
0636デフォルトの名無しさんNGNG
なんだこれは。
0637デフォルトの名無しさんNGNG
フォントとは何か勉強して出直してきなホモ野郎
あ、キモいから出直さなくていい
0638デフォルトの名無しさんNGNG
粘着キモイ
0639デフォルトの名無しさんNGNG
>>637
ホモ、キモい、お前そればっかだな。
0640デフォルトの名無しさんNGNG
623に反応するような香具師
ネットヲタかホモ野郎のどっちかしかいねっつーの
0641デフォルトの名無しさんNGNG
これ以降放置でおながいします。
0642デフォルトの名無しさんNGNG
あれはバックスラッシュにみえないねえさすがに。
0643デフォルトの名無しさんNGNG
>>637
そのまえにお前は>>586を穴が開くほど見つめなおすことを勧めるよ。
0644デフォルトの名無しさんNGNG
見てどうするんだろー 頭悪すぎー
0645デフォルトの名無しさんNGNG
だから空白とか\とかどこがおもしろいんだよ
とりあえず染んでくれようぜぇ
0646デフォルトの名無しさんNGNG
>>644
お前は頭が悪いから仕方がないな。
文字コードを見れ。
0647デフォルトの名無しさんNGNG
文字コードみると何がかわるというんだろー

あ、わかった、そういうこと言って、自分のまぬけな失敗をごまかそうとしてるのかな?
ふふ。
0648デフォルトの名無しさんNGNG
ヘミ猫にはほど遠い。
0649デフォルトの名無しさんNGNG
これ以降放置でおながいします。
0650デフォルトの名無しさんNGNG
2バイト文字と1バイト文字
日本仕様と米英仕様
0651デフォルトの名無しさんNGNG
国内アスキーコードだと
0x5C == '\'
0x2F == '/'
0652デフォルトの名無しさんNGNG
グリフをどのような表示にするかを割り当てるのは個人の自由。
そして、意思疎通ができなくなるのものな。
0653デフォルトの名無しさんNGNG
>>651
ってことは、やはりバックスラッシュではないよね。
0654デフォルトの名無しさんNGNG
すごいバカがいる予感…
0655デフォルトの名無しさんNGNG
文字コードスレはここですか?
0656デフォルトの名無しさんNGNG
これ以降放置でおながいします。
0657今日のトリビアNGNG
>>651
とりあえず、0x5cが円記号になるのはASCIIではなくJIS X0201(ISO646準拠)とだけ
0658デフォルトの名無しさんNGNG
>>651
>国内アスキーコード
>国内アスキーコード
>国内アスキーコード
>国内アスキーコード
0659デフォルトの名無しさんNGNG
>>658
二番煎じ、カコワルイ
0660デフォルトの名無しさんNGNG
間違いを指摘されて逆切れ?w
0661デフォルトの名無しさんNGNG
最近は自動販売機で買える時代だからね。
0662デフォルトの名無しさんNGNG
X0201 だと 5/14 はチルダではなく上バーなんだが
そうなってるフォント少なくね?
0663デフォルトの名無しさんNGNG
>>660
言い訳がましいなぁ。
どのへんが「逆切れ」に見えるのかね。無理がありすぎ。
0664デフォルトの名無しさんNGNG
>>662
7/14な。
7/12なんかもそうだけど、昔はかなり曖昧だったからね。
漢字コードだって制定当時は異体字がごっちゃだったし。
5/12だけは形が全然違うからASCIIベースかISO646ベースかで
はっきり分かれてるみたいだけど。
0665デフォルトの名無しさんNGNG
#ifdef JAP
puts("Hello, world\n");
#elif FAGS
puts("Hello, world\n");
#endif
0666デフォルトの名無しさんNGNG
生貼り付けとみた
0667デフォルトの名無しさんNGNG
やーい突っ込めねえザマーミロ
0668デフォルトの名無しさんNGNG
マカーうざすぎ
0669デフォルトの名無しさんNGNG
ついに錯乱したか
煽り甲斐のあるおもちゃだなwww
0670デフォルトの名無しさんNGNG
なんか気持ち悪いやつが一名いますね。
0671ここがCスレだったころがなつかしいNGNG
       _,..-――-:..、    ⌒⌒
     /.:;;;;;;;;;;;;;;;;;;;;;::.\      ^^
    / .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  :::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::
   :::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::
     :::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::     ∧_∧
      ::::::::::::::::::::::::::::       ( ::;;;;;;;;:)
        ::::::::::::        /⌒`'''''''''''^ヽ
               /⌒ヾ/ / .,;;;;;;:/.:;|
-―'――ー'''‐'ー'''―‐'―''''\,./ / .::;;;;;;:/‐'| :;|'''ー'-''――'`'
 ,, ''''  `、 `´'、、,   '''_ソ / `:;;::::ノ,,, | :;| '''  、、,
    ,,,   ''  ,,   ''''' ξ_ノ丶ー'ー< ,ゝ__> '''''  ,,,,
 ,,     ,,,,     ''' ,   ::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::  ,,
            ,,,,,,,     :::::::::::::::::;;;;;;;;;;;;:::::::::      ''
,, '''''''      ,,,,       ,,    :::::::::::::;;;;;;;;::::::
0672デフォルトの名無しさんNGNG
プ
0673デフォルトの名無しさんNGNG
>>671
題して「落伍者の朝」
0674デフォルトの名無しさんNGNG
>>665
敢えて改行文字は釣りか?
0675デフォルトの名無しさんNGNG
昨日の647はついに負けを認めたのか。
0676デフォルトの名無しさんNGNG
内容的な批判は出尽くしたようだな
初めからあってなきが如しだがw
0677デフォルトの名無しさんNGNG
コンパイルはできるだろ。
0678デフォルトの名無しさんNGNG
> とりあえず、0x5cが円記号になるのはASCIIではなくJIS X0201(ISO646準拠)とだけ

ていうか、件のは0x5cじゃねーだろ どうみても。
0679デフォルトの名無しさんNGNG
えっと、
「2バイト文字の¥なんてものを使って、アフォか?
 1バイト文字のバックスラッシュに汁!」
って事では?
0680デフォルトの名無しさんNGNG
だーかーらー それは何を元に書かれたんだ? ってことだよ。
元ネタわからずに行ってるのか? おまえ
0681(´・ω・`)NGNG
#define THREE 3
void all(int[],int);

int main()
{

int array[3];
printf("first number ?\n");
scanf("%d",&array[0]);
printf("second number ?\n");
scanf("%d",&array[1]);
printf("third number ?\n");
scanf("%d",&array[2]);
all(array,THREE);
void all(int array_all[],int a)
{
int i;
for(i=0;i<a;i++){
printf("array[%d] = %d\n",i+1,array_all[i]);
}
}

return 0;

}

all ローカル関数の定義が正しくありません。 てでます。
どこがまちがっているのでしょうか?
0682デフォルトの名無しさんNGNG
>>681
main()の中でall()を定義しているのはネタか?
THREEなんてマクロを定義しているのはネタか?
scanf()使っているのはネタか?
0683デフォルトの名無しさんNGNG
で、おまえはどんな本を読んでそんなコードを書いたんだ? >>681
0684470NGNG
>>472
ありがとうございました!!
おかげさまで出来たのですが・・・・・
これで「交差点」なんて絶対む(ry

いい案ください。。お願いします
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=67&fi=no
0685(´・ω・`)NGNG
>>682
ありがとうございます。解けました。
まだ始めたばかりなのでいろいろ試している所なので
THREEだとか使ってみただけなんどす。 
0686デフォルトの名無しさんNGNG
#include <stdio.h>
#define THREE 3
int main()
{
int i, array[THREE];
static const char * const num_name[] = {
"first", "second", "third",
};
void all(const int *array_all, int a) {
for(i=0; i<a; i++){
printf("array[%d] = %d\n",i+1, array_all[i]);
}
}
for(i=0; i<THREE; i++) {
printf("%s number ? >", num_name[i]);
scanf("%d",&array[i]);
}
all(array,THREE);
return 0;
}
0687デフォルトの名無しさんNGNG
C言語だけで掲示板って作れますか?CGIも使わずにキャラクターベースで。
つまらない課題出されてまじで困ってます。
0688デフォルトの名無しさんNGNG
>>687
鼬外
そして、CGIとは何か?から勉強し直せ
0689デフォルトの名無しさんNGNG
関数の中で関数を実装できないと明示的に説明している入門書は少ない。
0690デフォルトの名無しさんNGNG
まさか関数の中で関数を定義しようとするアホがいるとは思わないからでは。
0691デフォルトの名無しさんNGNG
DやPascalその他、できる言語もあるからそういう思考経路もあるんだろうけどな。
0692デフォルトの名無しさんNGNG
俺の持ってる本には、関数の内部で関数を宣言することはできない、と書いてあった。
0693デフォルトの名無しさんNGNG
C言語でもgccだとできちゃうしな。
0694デフォルトの名無しさんNGNG
>>692
宣言はできるんでは(笑)
0695691NGNG
>>694
その通りです。定義することはできない、でした。
惚けてるな。。。
0696デフォルトの名無しさんNGNG
>>687
[1] ケイジバンヲヒョウジ
[2] ケイジバンニカキコミ
[3] シュウリョウ
[4] セツメイ
Input(1-4): _
とかローカルのテキストファイルを表示・追加するのを作ればいいだろ。
恐ろしく詰まらんが。
0697デフォルトの名無しさんNGNG
>>687
C++だろうが、金子はつくったよな。
0698デフォルトの名無しさんNGNG
>>688 焦るな。早いとオンナに嫌われるぜ。
要するにwebサーバすら使わない掲示板だろ?
キャラクターベースつーことはあれだ、CUI よ。scanf() よ。
DOSプロンプトで「氏ね」と煽るのよ。
中央マザーコンピューターにデーターが送信されて
なんかロボ子みたいのが「データー ヲ イッケン ジュシン シマシタ」とか言うのよ。
んでなんか発光ダイオードがテカってて、博士がそれを見て
「おおっ、これは……」とか言った途端にロボ子故障。
キーボードが爆発したりドアに高圧電流を流されたりして絶体絶命!
どうなる>>687! 頑張れ>>687!!

('A`)ノ ごめん。気がすんだ。
0699デフォルトの名無しさんNGNG
金子の妹の名前は















キンコ
0700デフォルトの名無しさんNGNG
gets(700);
0701正弦波NGNG
VC++でSINの正弦波を書くプログラム書いてください お願いします >_<
0702デフォルトの名無しさんNGNG
>>701
マルチ氏ね
0703デフォルトの名無しさんNGNG
>>701
#include <math.h>
main(){
int i;
for(i=0;i<=40;i++) printf("%*s\n",(int)(20*sin(i/10.0*3.1416)+22),"*");
}
0704デフォルトの名無しさんNGNG
>>703
stdio.hがないYO!
0705デフォルトの名無しさんNGNG
>>704
あったほうが良いし、書くべきだろう。
が、なくても良い。
それに対して、math.hのほうは無いと非常にまずい。
0706デフォルトの名無しさんNGNG
>>705
printfみたいな可変個引数の関数ってプロトタイプ宣言ないと規格上はだめじゃなかった?
0707デフォルトの名無しさんNGNG
>>706
そんなことない
0708デフォルトの名無しさんNGNG
以前プロトタイプが無いとprintfの出力がおかしくなる処理系があったような。
0709デフォルトの名無しさんNGNG
呼び出しの前に定義されてなかったらプロトタイプ宣言が無いとダメ。
>>705なくても良いって言ってるのは、>>705の環境ではコンパイラが
勝手にstdio.hをインクルードしてくれるから。

なのでは?
0710709NGNG
助詞が抜けてた。
>>>705なくても良いって...
>>705がなくても良いって...
0711(´・ω・`)NGNG
int length(char[]);
int main()
{
int array[] = "i was gey";

printf("length = %d\n",length(array));


return 0;

}
int length(char length_all[])
{
int i,sum = 0;
for(i=0;length_all[i]!='\0';i++)
{
sum++;
return sum;
}

}

i was gey が何文字か調べて返す関数を作ったのですが。
charとintの使いかたがおかしいのかエラーがでます。 どこが
違いますでしょうか?
0712(´・ω・`)NGNG
すいません事故解決しました。二箇所も間違えてたなんて・・・
0713デフォルトの名無しさんNGNG
次からはレスの頭に疑問点とか書いてね
下までスクロールさせてからまた上に戻るのはめんどいから
0714デフォルトの名無しさんNGNG
>>708
引数がレジスタ渡しになっているとそうなるな。

>>709
戻り値の問題。
0715デフォルトの名無しさんNGNG
同じwebページをwhile文とか使って繰り返しダウンロードするとして
Cなら1秒間に何回ダウンロードできますかね?perlではせいぜい3、4回
(毎秒300kbのADSLで実験、ファイルサイズが3kbでも100kbでも結果は同じ)
なんですが、Cならもっと早いですか?
0716デフォルトの名無しさんNGNG
>>715
そんなの理屈で回線速度に依存することがわかるだろ。
しかもサーバーに無用な負荷をかける迷惑行為だ。
0717デフォルトの名無しさんNGNG
>そんなの理屈で回線速度に依存することがわかるだろ。

同じ回線速度でCとPerlを比較してどっちがどれだけ早いか知りたいです。

>しかもサーバーに無用な負荷をかける迷惑行為だ。

そのページ刻々とデータが更新されるのでいたしかたないんです。
0718デフォルトの名無しさんNGNG
>>717
CとPerlよりも先に回線速度がボトルネックになるのでどっちも同じようなもんだろ。
それとは関係なく一般にはチューニングすればCの方が高速に動作する。

>そのページ刻々とデータが更新されるのでいたしかたないんです。
可能なら更新されたかどうかを先にチェックするようにしとけ。
つか板違い。
0719デフォルトの名無しさんNGNG
>そんなの理屈で回線速度に依存することがわかるだろ。

Perlの場合、回線速度はボトルネックにならないと思います。
3kのファイル1秒に4回ダウンロードしてもたかだか12kですから。
0720yanoNGNG
これから言語を覚えたいのですが、みなさんは最初なにから始めましたか?
初心者入門としてオススメを教えてください!
0721デフォルトの名無しさんNGNG
>>719
はいはい。
Cで書き換えて100倍高速になる可能性は誰にも否定しないから試してみたら。

>>720
なぜCスレで聞く?
0722yanoNGNG
Cを知ってる人は大体の言語を知っているのかとゆう先入観があったもので・・・。
0723デフォルトの名無しさんNGNG
>Cで書き換えて100倍高速になる可能性は誰にも否定しないから

なんじゃそりゃ。誰かテストした人いませんか〜〜〜
0724デフォルトの名無しさんNGNG
>>722
目的は?
0725デフォルトの名無しさんNGNG
人生で最初に覚えたのは日本語…
とか言えばいいのか?
0726デフォルトの名無しさんNGNG
>>723
だから一般論としては>>716,718で終わってんの。
それでゴネるなら実際に試してみろって話だよ。
ボトルネックがどこにあるかなんて>>715だけじゃ分からないんだよ。
0727yanoNGNG
>>724
とくに強い目的があるわけじゃないけど・・・。
プログラミングとかオープンソースのプロジェクトとかに加わってみたいって
ゆうのが一番の目的かもしれないです!!
0728デフォルトの名無しさんNGNG
>>727
今すぐ出来るぞ。
働いて金を振り込め。
これで君もプロジェクトの一員だ!
0729デフォルトの名無しさんNGNG
>>727
プロジェクトに参加したいならマニュアル作成がまじおすすめ。
日本語と少しの英語があればすぐ始められるYO!
0730デフォルトの名無しさんNGNG
>>727
ならここ見て決めたら。
http://sourceforge.net/softwaremap/trove_list.php

プラットフォームは商用アプリに見放されて
アプリ作り放題なLinuxがお勧め。
0731デフォルトの名無しさんNGNG
ここだった・・・
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160
0732yanoNGNG
返事ありがとうございます!サイトにも行ってみました!!(わからなかったけど・・・。
やっぱりLinuxでアプリ作るにしてもCを最初に覚えるのがいいのでしょうか?
初心者にもできるでしょうか?
0733デフォルトの名無しさんNGNG
>>732
どっか行けよ。
みんなも構うなよ
0734デフォルトの名無しさんNGNG
Linuxを覚えてからヤレと。
0735デフォルトの名無しさんNGNG
自分でやりゃわかるようなことょきくのは厨房。
厨房は英単語でも覚えてきな。
0736デフォルトの名無しさんNGNG
>>700

> gets(700);

getsつかうなよ ぼけ
0737デフォルトの名無しさんNGNG
> > printfみたいな可変個引数の関数ってプロトタイプ宣言ないと規格上はだめじゃなかった?
> そんなことない

そのとおり (いちおう)。

> 以前プロトタイプが無いとprintfの出力がおかしくなる処理系があったような。

LSI-Cだ。で、あれもいちおう規格を満たしている。
つまり、「そのとおり」は「いちおう」でしかない。
つまり「ふつう平気」なだけ。
0738デフォルトの名無しさんNGNG
LSI-Cはパラメータをレジスタ渡し。
0739デフォルトの名無しさんNGNG
配列を使って・・・
人数を決めた後、人数分の身長を入力して
最高値・最小値・平均値を計算するプログラムってどうなるんですか?
0740デフォルトの名無しさんNGNG
mallocでもしたら?
0741デフォルトの名無しさんNGNG
C言語でWindowsを再起動させるためにはどうすればいいんですか?
0742デフォルトの名無しさんNGNG
>>736
わー、すごいねー
0743デフォルトの名無しさんNGNG

for(i=1;i<3;i++) {
b[i]=0.0;
for(j=0;j<10;j++)
b[i]=b[i]+(a[i][j]-h[i])*(a[j][i]-h[i])/10;

hh[j]=sqrt(b[j]);
}

printf("入力されたデータと個人の合計点/科目ごとの平均点");
fprintf(fp_out,"入力されたデータと個人の合計点/科目ごとの平均点");
fprintf(fp_out, "/科目ごとの平均点\n");
printf("学籍番号 英語 数学 合計\n");
fprintf(fp_out, "学籍番号 英語 数学 合計\n");
for(i=0;i<10;i++) {
printf("%-8d %6d %6d %6d\n",a[i][0],a[i][1],a[i][2],a[i][3]);
fprintf(fp_out, "%-8d %6d %6d %6d\n",a[i][0],a[i][1],a[i][2],a[i][3]);
}
printf("平均点 %8.1f %6.1f\n",h[i],h[2]);
fprintf(fp_out, "平均点 %8.1f %6.1f %6.1f\n",h[i],h[2],h[3]);
printf("分散 %10.1f %6.1f\n", b[1], b[2]);
fprintf(fp_out, "分散 %10.1f %6.1f\n", b[1], b[2]);
printf("標準偏差 %6.1f %6.1f\n",hh[1],hh[2]);
fprintf(fp_out, "標準偏差 %6.1f %6.1f\n", hh[1],hh[2]);

fclose(fp_in);
fclose(fp_out);

return 0;
}昔学校で作ったやつがローカルに残っていたから利用してみ
0744デフォルトの名無しさんNGNG
#include <stdio.h>
#include <math.h>

int main(void)
{
FILE *fp_in, *fp_out;
int a[11][4], i, j;
float b[4], h[4], hh[4];
fp_in = fopen("a:\\score.txt", "r"); //ドライブAから読み込み
fp_out = fopen("a:\\33333", "w"); //ガクセキバンゴ

printf("\n\n学籍番号 名前\n\n");
fprintf(fp_out,"33333 名前\n\n");

printf("10人分のデータを学籍番号 英語 数学の順でフロッピーから入力します\n");
for(i=0;i<10;i++)
fscanf(fp_in, "%d %d %d", &a[i][0], &a[i][1], &a[i][2]);

for(i=0;i<10;i++)
a[i][3]=a[i][1]+a[i][2];

for(j=1;j<4;j++) {
a[10][j]=0;
for(i=0;i<10;i++)
a[10][j]=a[10][j]+a[i][j];
}

h[1]=a[10][1]/10.0;
h[2]=a[10][2]/10.0;
h[3]=a[10][3]/10.0;

こっちが先
0745デフォルトの名無しさんNGNG
むしろ配列を「使わないで」やれよ。
最大値、最小値は簡単だが、

平均値は難しいぞ (誤差がたまらないようにやるには)
0746デフォルトの名無しさんNGNG
>>743-744
何に対しての書き込み?
0747デフォルトの名無しさんNGNG
>>741
激しくスレ違い
0748デフォルトの名無しさんNGNG
>>741
こちらでどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1084697545/l50
0749デフォルトの名無しさんNGNG
Cで、関数に色々渡してメインをできるだけ軽くしたいけど、関数内でswitchとかifとか使いたくない。混乱する。
こんな俺にお勧めの本は無い?
0750デフォルトの名無しさんNGNG
☆★☆★ 日本語プログラミング言語『ひまわり』 ☆★☆★

日本語で『こんにちはと、言う。』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【『http://www.xxxx.xx/』を、『index.htm』へ、HTTPダウンロード。】
とすれば自動的にダウンロードできる優れ物です!!

↓日本語プログラミング言語『ひまわり』
http://hima.chu.jp/index.htm
↓日本語プログラミング言語『ひまわり』スレッド
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50
0751デフォルトの名無しさんNGNG
>>749
関数ポインタのことか?
0752デフォルトの名無しさんNGNG
>>749
ISBN 4901465538 とか
ISBN 4062115506 など
0753デフォルトの名無しさんNGNG
memalign使ってるソースをMSC(VC)に移植する方法に、常套手段みたいなのありますか?

malloc.hを自分で作って、インクルードパス指定して流してやればいいかと思ってたんですけど、
MSCのほうにもmemalignを宣言していないmalloc.hがあるようなので、
ソースファイルの変更は防げないんじゃないかと思ってます。
0754デフォルトの名無しさんNGNG
C言語の初心者本に載ってたサンプルコードをいれて、
コンパイル→ビルド→実行したんですが、
VC++6.0にsleng関数ってなんだよゴルァって怒られて、動きません・・・。
ソースは一字一句間違いなく入力していると思うのですが。
どなたか原因をご教授願えれば幸いです。
当方の環境はVC++6.0です。



#include "stdio.h"

main()
{
int n;
int sleng
char astr[50];

while(1){
scanf("%s",astr);
n = sleng(astr);
printf("length --> %d\n", n);
}
}

sleng(s)
char *s;
{
int n=0;
while(*s++) n++;
return(n);
}
0755デフォルトの名無しさんNGNG
素因数分解をするプログラムを作ってみましたが、うまく動いてくれませんのです。
http://www.nanoelectronics.jp/kaitai/quantumcom/3.htm
http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95
ここらへんのサイトを参考に作ってみたんですが、どこがいけないんでしょうか?

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

int gcd(int m,int n);

int main(void)
{
 int a,n,x,f,r,tmp;

 printf("素因数分解したい数を入力してください:"); 
 scanf("%d",&n);

 //1.nより小さいxを適当に選ぶ
 x=rand()%n;

 //2.xとnの最大公約数fを計算する
 f=gcd(n,x);

 if(f!=1){
  printf("素因数は %d です\n",f);
  exit(0);
 }

------- つずく (なぜか変換できない)-------
0756デフォルトの名無しさんNGNG
 //3.x^rをnで割ったとき、その余りが1となる最小の整数rを探す
 tmp=x;
 if(x%n==1) r=1;
 else{
  r=2;
  for(;;){
   x=x*tmp;
   r=r++;
   if(x%n==1) break;
  }
  x=tmp;
 }
 //4. x^(r/2)-1 とnの最大公約数、もしくは x^(r/2)+1 とnの最大公約数の
 // いずれかが1以外の数字なら、それがnの素因数である
 for(a=2;a<(r/2);a++) x=x*tmp;
 if((gcd(x-1,n))!=1) printf("素因数は %d です\n",gcd(x-1,n));
 if((gcd(x+1,n))!=1) printf("素因数は %d です\n",gcd(x+1,n));
 return 0; 
}
//ユークリッドの互除法により
//二つの引数の最大公約数を求める関数
int gcd(int m,int n)
{
 if(n==0) return n;
 while(1){
  if(!(m%n)){
   m=n;
   n=m%n;
  }else{
   return n;
  }}}
0757デフォルトの名無しさんNGNG
>>754
どうせなら、ワーニングやエラーも一字一句間違いなく書けばいいのに。
0758デフォルトの名無しさんNGNG
>>755
おまいもだ。どううまくいってないんだ?話にならんな
0759デフォルトの名無しさんNGNG
>>755
int sleng  -->  int sleng(char*);
それにしてもお前さんが使ってる本は恐ろしく古い書き方をしてるな。

>>757
同意。でもワーニングじゃなくてウォーニング。
0760デフォルトの名無しさんNGNG
K&Rの書き方でエラーやうぉーにんぐは出るのかな?VCって。
プロトタイプ宣言がらみじゃないのん?
0761755NGNG
すいません、動作結果書き忘れてました。
例えば 15 の素因数を求めると 10 が、19 だと 16 が出てきました。
あと、今気づきましたが 20 以上を入れるとエラーダイアログが出て強制終了されてしまいます。
どこを直せばいいんでしょうか?

>>759
独習Cで勉強中です。上のプログラムはオリジナルなんですが、古いんですか・・・
0762760NGNG
そうか。逝って来る。
0763759NGNG
>>761
ごめん。>>755じゃなくて>>754だった。
0764デフォルトの名無しさんNGNG
>>759
ありがとうございます。
会社から渡されたのが、昭和60年発行のはじめての"C"って本なんですよ。
自前で何冊か買ったものの、参考にしてはいいが、こっちベースにやれ!と言われたもので。

古い書き方、今では使わない言い回し(?)ってのもあるんですね。
勉強になりました。
もしかしたら、また何度かお世話になるかもしれないです。
0765764NGNG
今は第4版にまでなってるんですね。
手元にあるのは初版の第12刷ですよ。

逆に言えばそれだけ優れた本、ってことなんですかね?
ボロボロだけど、愛着もってこの本で勉強していきたいと思いますw
0766764NGNG
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1264-X

これですw
0767デフォルトの名無しさんNGNG
xのy乗
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/pow.3.html
0768デフォルトの名無しさんNGNG
>>755
gcd()が間違っとるな。

if(temp=(m%n)){
m=n;
n=temp;
}else{
0769デフォルトの名無しさんNGNG
>>764
悪いことは言わん、その本で勉強しろなんていう会社は辞めて私の勤める会社にうわなにをするやあsd
0770デフォルトの名無しさんNGNG
> ワーニング

わーにんぐ...

> ------- つずく (なぜか変換できない)-------

つずく...
0771デフォルトの名無しさんNGNG
>>768
空白空けろ ぼけ
0772デフォルトの名無しさんNGNG
シングルクォートで括る文字定数で
'\x81\x40' みたいに2バイト書くことは標準規格でゆるされていますか?
その場合、どっちの順に書けばいいんでしょうか? (整数的に0x8140になるためには)
0773デフォルトの名無しさんNGNG
マクロの2重定義防止の仕方は知っているのですが、
構造体の方の仕方を教えてください。
0774デフォルトの名無しさんNGNG
>>754
49頁に載ってるけど
それと微妙に違う。

main関数内でのプロトタイプ宣言が
int n, Sleng(char *);
になってて

Sleng関数は、ふつうに
int Sleng(char *s)
{
........
}
になってる。



サンプルコードがたくさん載っている。

しかし、ポインタ/文字列がらみで
意地悪な書き方がしてあって
???と思うような
むつかしいのが多い。

115頁に載ってる"Sins関数"
というのが未だに???だ。

0775デフォルトの名無しさんNGNG
>>772
常駐マカー死ね
0776デフォルトの名無しさんNGNG
うちにMacはないですよ。
0777デフォルトの名無しさんNGNG
\を\と書く奴はマカー(safari厨)
0778デフォルトの名無しさんNGNG
>>772
駄目だった気が。
gcc ではできるけど、VCでは無理だし。

>>773
構造体の2重定義って?
0779デフォルトの名無しさんNGNG
あと~を〜と書く奴もマカー
0780773NGNG
>>778
マクロと同じヘッダーファイルに構造体があって、
マクロは2重定義チェックをしているのに、
構造体の方はしなくてもいいのかなと思ったのですが。
0781デフォルトの名無しさんNGNG
>>780
ヘッダファイル自体を多重読み込み防止処理しる!
0782デフォルトの名無しさんNGNG
>>780
標準のヘッダファイルみて勉強しようという心がけはないのか?
その程度じゃダメだな。
stdio.hとかstdlib.hとか、片っ端から読めよ。
0783デフォルトの名無しさんNGNG
土方的経験至上主義者ウザ
0784デフォルトの名無しさんNGNG
>>783
努力がいやなら死ね。
0785デフォルトの名無しさんNGNG
>>783
土方的な回答求めるような奴には,土方的回答示すのが道理だろ。
スマートに規格書示しても,ウザがられるのがオチ。
0786デフォルトの名無しさんNGNG
規格書なんて関係ないだろ。
0787デフォルトの名無しさんNGNG
>>785
>スマートに規格書示しても
ぜひ示してください。
0788デフォルトの名無しさんNGNG
>>782-787 うぜえ
0789デフォルトの名無しさんNGNG
>>788
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
0790デフォルトの名無しさんNGNG
他人のバグ潰すフリして、
標準関数のヘッダファイルをグチャグチャにいじって
さらにあらたなバグが出るように仕組むのはどうですか?
0791デフォルトの名無しさんNGNG
#undef NULL
#define NULL (void *)0x81815963
0792デフォルトの名無しさんNGNG
#define if if((rand()%256)!=0) if
0793デフォルトの名無しさんNGNG
#define for( for (printf("空白あけろよ ぼけ\n"),
0794デフォルトの名無しさんNGNG
#define printf if (0); else { int *p = 0; *p = 0; }
0795デフォルトの名無しさんNGNG
#define int double
#defint double int
0796デフォルトの名無しさんNGNG
まぁ死ねや
0797デフォルトの名無しさんNGNG
>>787
質問がなしでどうしろと?
まぁ,晒しとくか。
http://std.dkuug.dk/jtc1/sc22/wg14/www/standards
0798デフォルトの名無しさんNGNG
>>798
英語なんて読めるわけないじゃんバーカバーカ
0799デフォルトの名無しさんNGNG
つーかインクルードガードの話だろ。企画とか関係ないし。アホだね。
0800デフォルトの名無しさんNGNG
>>798
そんなに自分を責めなくても...
0801デフォルトの名無しさんNGNG
ソフトウェアキーボードのようなソフトを作ろうと思ってます。
ソフトウェアキーボードが出力した「ABC」という文字列を、他のアプリには、
さもキーボードからの入力のように標準入力からの入力で受けとってもらいたいのです。で、私の頭の中では、ソフトウェアキーボードから標準入力に出力(?)するような
イメージなのですが、どのようにして良いのか分かりません。
お手数ですが、どなたか教えていただけますか?

OSはLinux
コンパイラはGCC
C言語経験は1ヶ月です。

0802デフォルトの名無しさんNGNG
>801
どのようにして良いのかすらわからん奴が、そんなもの作ろうとするな。
0803773NGNG
>>781-782
できました。ありがとうございました。
ヘッダーファイルの先頭にそのファイル名に近い(_HOGE_H_ 等)マクロを置いて、
ヘッダーからヘッダーをインクルする時のみ、以下のように書くとできました。
#ifndef _HOGE_H_
#include "hoge.h"
#endif
0804デフォルトの名無しさんNGNG
勘違いしているよかーん
0805デフォルトの名無しさんNGNG
>>803
「インクルードガード」でググれ。
っていうアドバイスが手っ取り早いかね。
0806デフォルトの名無しさんNGNG
>>803
二回わろた。
0807デフォルトの名無しさんNGNG
>>803
惜しいな。まあもう少しで分かるだろうからがんばって調べてみな。ググったほうが早いと思うが。
0808デフォルトの名無しさんNGNG
っていうか、標準ヘッダーでもないかぎり、
多重インクルードをガードしなきゃいけないようなはめになるほうがおかしい。
逆にいえば、ガードすると、インクルード関係を把握しないまま、「とにかく多めにしときゃいい」
的にだんだんぐしゃぐしゃになって把握できないような、スパゲdティーどころではないさわぎの
ものが出来上がる可能性大。
実際そういうのをいくつもみてくてる。
0809デフォルトの名無しさんNGNG
>>808
はあ?
0810デフォルトの名無しさんNGNG
>>808
a.hに依存するb.hと、同じくa.hに依存するc.h。
さて、とあるソースではb.hとc.hをインクルードしなきゃいけない。
お前さんは、この状態をおかしいと言うのか?
0811773NGNG
違っているのか・・。

>>805
調べてみます。

>>808
前はその方法でした。
ただ、ソースファイルでインクルードする順番が違うと、
ヘッダーファイルの方にエラーが出たのでめんどくなりました。
0812デフォルトの名無しさんNGNG
>>811
がんがれ。なお、808はスルーしろ。
0813デフォルトの名無しさんNGNG
> a.hに依存するb.hと、同じくa.hに依存するc.h。
> さて、とあるソースではb.hとc.hをインクルードしなきゃいけない。

そもそもそれが設計ミス。そんないいかげんな構成のでも、とりあえずコンパイルできるように
しちゃえってのが、横着すぎー
0814773NGNG
>>813
前はマクロとか構造体を少ないヘッダーにまとめていたのですが、
変更するとたくさんのソースがコンパイルし直されて時間がかかるので、
たくさんのヘッダーに小分けにするようにしたら直面しました。
どういう風に小分けにするといいか勉強します。
0815デフォルトの名無しさんNGNG
バックスラッシュ人間はマカーというよりもウニ厨に多そうな感じ。
0816デフォルトの名無しさんNGNG
とどのつまり、813は変態だということが分かった。
0817デフォルトの名無しさんNGNG
>>813
それを設計ミスと言われちゃ、矛盾するぞ?
おまえはスパゲティがやなんだろ?
それはスパゲティにならないようにヘッダファイルをまとめとくようなもんだおるが。
0818デフォルトの名無しさんNGNG
cygwinで、
scanfで一度EOFを読み込むと
そのプロセスではscanfが何もしなくなるます。
なぜ?
0819デフォルトの名無しさんNGNG
>>818
EOFのままだから
0820デフォルトの名無しさんNGNG
>>813は学生なんだろ
0821デフォルトの名無しさんNGNG
まぁ813を見る限り、奴に解らせるのは無理、無駄。荒れるだけ。
他の奴が気をつけてくれれば、それでいいよ。
0822デフォルトの名無しさんNGNG
そんなことより>>818に答えて。
0823デフォルトの名無しさんNGNG
漏れもヘッダファイルの #ifndef 〜 でぐちゃぐちゃになったプロジェクトにたずさわったことがあるぞ。
ただし、多重インクルードそのものが問題というより、こっちのほうが楽だからそうしよう。
という安易さが諸悪の根源だったような気がする。
あとどうしたか覚えてないけど、途中からRCSでファイルの管理をやりだして、
ファイルの頭になんだかつけなくちゃいけなくなったときにすごい困ったような覚えがある。
0824818NGNG
EOFのままって?
EOFのままだとなぜscanfできない?
EOFじゃなくすにはどうすれば?
0825753NGNG
何でスルーされてるんだろう。鬱だ。
0826デフォルトの名無しさんNGNG
>>753
好きにしろよ。
0827753NGNG
>>826
うん。そうしよう。
0828デフォルトの名無しさんNGNG
> それを設計ミスと言われちゃ、矛盾するぞ?
> おまえはスパゲティがやなんだろ?
> それはスパゲティにならないようにヘッダファイルをまとめとくようなもんだおるが。

いいえ「スパゲッティーでもコンパイルできるようにするため」にやるものですよ。
0829デフォルトの名無しさんNGNG
a.c で c.h をインクルード
b.c で c.h をインクルード
c.h で d.h をインクルード
c.h で e.h をインクルード
d.h で f.h をインクルード
d.h で c.h をインクルード

ふつうにコンパイルしたら、コンパイルが無限時間かかるか、賢いコンパイラーなら
「ファイルの参照関係がループしています」でコンパイルを打ちきってしまって、
コンパイルしてくれませんが、
2重インクルード防止の#defineと#ifをつけておけばコンパイルできます!
どうだ! すごいだろう!
0830デフォルトの名無しさんNGNG
>>824
おまいはファイル末尾まで読んだ後で、何を読み込んだら満足するんだ?
0831デフォルトの名無しさんNGNG
EOFという文字列がでてきたら、それ以上先を読めません!

(って思ってるのかも)
0832デフォルトの名無しさんNGNG
>>824=818
EOF は、それ以降入力がないことを示すものだ。
入力がないのに入力しようとするな。
0833デフォルトの名無しさんNGNG
質問

ある.ファイルで、int hoge;のようにグローバルとして定義した変数の値を、
別のファイルで扱うとき、わざわざfoo = get_hoge();のようにして、
値を取った方がよいというのはなぜでしょうか?
単に、foo = hoge;としてもよいように思うのですが。
0834デフォルトの名無しさんNGNG
混乱するから
0835デフォルトの名無しさんNGNG
>>833
オブジェクト指向宗派の戯言。
こんな思想がまかり通るからデバッグし辛いのなんのって…
この手のやつってデバッガでウォッチ対象に設定できないことが多々あるんで。
0836デフォルトの名無しさんNGNG
>>833
オブジェクト指向宗派の戯言。
こんな思想がまかり通るからデバッグし辛いのなんのって…
この手のやつってデバッガでウォッチ対象に設定できないことが多々あるんで。
0837質問です。NGNG
floatの実数値を任意の小数点以下で切捨てにしたいんです。 変数を使って。
それで、printf("%.*f",mm,yy); ってやったんです。 mmが切捨てる小数点で、
yyがfloatの値なんですけど、できないんですよ。
どうすればいいんですか?
0838デフォルトの名無しさんNGNG
test
0839デフォルトの名無しさんNGNG
学部2年生です。

グラフが連結であるかどうかを調べるプログラムが
作れなくて困っています。

どなたかソースを持っている方いないでしょうか?

よろしくお願いします。
0840デフォルトの名無しさんNGNG
>>839
その根性が気に入らん。
0841デフォルトの名無しさんNGNG
>>839 Cはほとんどわかんないけど、javaでそれをやれと言われたら
バッファに格納していって、途切れてなかったら連結って判定するけどね。
アルゴリズムわかればできんじゃない? てか、Cにバッファがあるのかもわからん
次元だけどね。 ちなみにおれも2年
0842デフォルトの名無しさんNGNG
>>835
変数のスコープと関数のスコープを別に定義できるんだったら、
そういうほうほうもありかもしれないね。でもCでは無理
0843デフォルトの名無しさんNGNG
グラフで「つながっているかどうか」
「循環路がないかどうか」
「最短路」はどれか、
なんていう基本は、
void先生の本を買えば身に付きますね。(ど忘れしてもすぐコードを思い出せる程度には)
0844デフォルトの名無しさんNGNG
プログラマ適性・低、プログラミング未経験者だったオレが
なぜか中途で中小ITに採用されて、今会社で本渡されて独学でC勉強してます。
文字型とか配列はなんとか理解、してる“つもり”なんですが、
先のほうのページちょろちょろ見てると、構造体とかポインタとかさっぱり理解できない。
しかも今までのところも文法的なことは理解してるんだけど、
サンプルプログラム見ても、ちょっと複雑なのは???ばっかり・・・。
なぜそうなる、ってロジック組む(読む)のが苦手っぽいです。

正直適性ないのかも、って思ってるんだけど、
正直こんな俺どうなんでしょう・・・。なんかもう自信なくしちゃって・・・。
試用期間で、まだまだ迷惑かからないうち(勉強だけして給料もらうわけだから)に辞めたいとも思ってます。
ホントは開発側じゃなくて、パソコンを使う方、総務や営業事務なんかが合ってるような気がするんですよね。

あと1ヶ月、渡された入門本を終えるまではとりあえず頑張ってみて、
そこでもうだめぽと悟ったら辞めようと思っています。
まだVBなら取っつきやすそうだったりするんですが、会社ではVBを使った案件はないとのこと。
C言語って、簡単じゃないですよね?
プログラミングの基礎すらわかってないヤツに、アドバイスとか、
オススメな勉強法なんかあったら教えてくれませんか?(´・ω・`)
素直にもう辞めたら?でもいいですし、漏れと同じ境遇だった人なんかいればアドバイス頂ければ幸いです。
0845デフォルトの名無しさんNGNG
先輩に教われ
本に載ってるようなことは聞くな
0846デフォルトの名無しさんNGNG
>>845
先輩がいないんですよ。
会社本社(という名の雑居ビル3階ワンフロア・小学校の教室大くらい)
には事務のおばちゃんと経理のおっちゃん、あと社長しかいない・・・。

ちょっと古めパソコンとデスクがが10数台分あるんだけど、
誰一人として座ってない。
社員20人程度は、全員客先に派遣されてるらしい。

なんもわからない事務のおばちゃんにC言語の本渡されて、
「これ1ヶ月で覚えてねー、終わったら実際にプログラム組んでもらう課題出すから。」とのこと。
ちらっと新人研修と書かれたファイル見て、中にあった課題見たら、
いったい今勉強してる文法をどうやって並べれば作れるの?って感じ・・・(´・ω・`)

学校の講義みたいな、大手がやるような集合研修とかだったらまだ理解できたのかな?(´・ω・`)
0847デフォルトの名無しさんNGNG
>>846
プログラマ板に行ってよ(´・ω・`)
0848デフォルトの名無しさんNGNG
互換でない型変換(関数 main() )

ってエラーが出るんですけど
どんなことすると、このエラー出るか教えてチョンマゲ

「互換でない型変換をした時だよ」ってレスは無しで(´・ω・`)
0849デフォルトの名無しさんNGNG
mainも一つの関数である。

これが最大の理由でありヒントでもある…ってとこ?
0850デフォルトの名無しさんNGNG
>>848
そのエラーが出た箇所を貼れ。それが答えだ。

>>849
main関数内で起きたというだけかと。
0851848NGNG
エラーが出てるところは

keisan(*a, *b, x);

mainでdouble a[n], double b[n]に数値を5個ずつ入れて
xでforループをまわして、その中でkeisanで計算する予定なんですが
エラーが出てます。
プログラム苦手でどう説明したらいいかも分からない状況で・・・

0852デフォルトの名無しさんNGNG
名前を入力して、電話番号を印字するプログラムを作りたいです。

構造体省略

int main(void)
{
int n,i;
char namae[10];
printf("氏名      電話番号 年齢 給料 誕生日 住所 性別\n");
for(n=0; n<10; n++){
printf("%s %s %d %d %s %s %s\n",pv[n].name,pv[n].tel,pv[n].age,pv[n].salary,
pv[n].birth,pv[n].address,pv[n].gender);
}
printf("\n名前を入力してください\n");
scanf("%s",namae);
for(pv[i]=0; pv[i].name==namae; i++) /*←この行でエラーが出ます*/
{
printf("%d\n",pv[n].age);
}
return 0;
}

なんだかよくわからなくなってきました。手直しお願いします。
0853デフォルトの名無しさんNGNG
>>851
keisan(a, b, x);
0854デフォルトの名無しさんNGNG
>>852
for(pv[i]=0; !strcmp(pv[i].name,namae); i++)
エラーが出るのなら、こうしても駄目だろうがな。
0855デフォルトの名無しさんNGNG
>>854
ありがとうございます。
二項演算子 '=' : 型 'const int' の右オペランドを扱う演算子は定義されていません。(または変換できません)
というエラーが出ました。
0856デフォルトの名無しさんNGNG
>>844
マジレス。
適性なさそうだから辞めておいたら?

パソコンってブラックボックスだからね。
GUIでExcelいじってネットやってる分には意識しないだろうが、
論理的かつ数学的な世界なのよ。

システム運用とか鯖監視とかなら、
この業界でも仕事ありそうだけどな。
やりがいがあるかどうかは別として。

総務や営業事務か。
パソコンを使って、社内の業務を効率化!みたいなのがやりたいのかな。
まぁガンガレ。

総務で社内システム担当になったとき、
もし俺らに外注で仕事出すときがあったら、
納期は多めにとってくれ、よな?w
0857848NGNG
>853
試してみました。見事エラーなくなりました。
ありがとうございます

でも、今度は計算のアルゴリズムがおかしいようです・・・
何とか自分でやってみます
0858854NGNG
>>855
あー、構造体に整数を入れようとしているじゃないか。

pv[i]=0←ここ
i=0だろ
0859デフォルトの名無しさんNGNG
>>858
ありがとうございます。
何度も申し訳ないです。
エラーは出ないんですが、実行して名前を入力しても年齢が表示されません。
0860デフォルトの名無しさんNGNG
pv[n].age

n じゃなくて i
0861デフォルトの名無しさんNGNG
VC6のアプリケーションウィザードでデフォルトで
プロジェクト作ったあと、

メインフレームクラスやチャイルドフレームクラスの
プリクリエイト関数の中で、

cs.style |= WS_MAXIMIZE;

とやっても画面が最大化された状態で実行ができません。

cs.style |= WS_MINIMIZE;

の場合はタイトルバーだけの最小化された状態で実行OKでした。

WS_MAXIMIZEの場合は、何が問題あるのでしょうか?
教えてください。
0862デフォルトの名無しさんNGNG
質問です。
nという正の整数が入った変数があるとして

1,2,6,...,n!の数列を出力したいのですが
どういう計算になるのでしょうか?
0863デフォルトの名無しさんNGNG
>>862
2重のループ
0864デフォルトの名無しさんNGNG
> for(pv[i]=0; !strcmp(pv[i].name,namae); i++)

空白あけろ ぼけ
0865デフォルトの名無しさんNGNG
int factorial(int n)
{
 if (n <= 1) {
  return 1;
 }
 return n * factorial(n - 1);
}
0866デフォルトの名無しさんNGNG
質問です。
(a-b)>0 と a>b との違いについてですが、
オーバーフローが発生する値の時、前者は挙動未定義で、
後者は正しく動くと思いますが、それ以外に違いはありますか?
0867デフォルトの名無しさんNGNG
pv[i].sage
0868デフォルトの名無しさんNGNG
> オーバーフローが発生する値の時、前者は挙動未定義で、
> 後者は正しく動くと思いますが、

aやbが変数ではなく、その型であふれるような定数の場合のことか?
そうでなくて変数なら、前者も後者もオーヴァーフローは発生しないぞ。

アンダーフローのことか?
0869デフォルトの名無しさんNGNG
>>833
グローバルを生で晒すと書き換えられるのを嫌って、
変数をファイルスコープに絞り、値の取得は関数を使うようにしている
書き換えも許すなら、グローバルにしても同じこと。
0870デフォルトの名無しさんNGNG
>>868
条件が足りてませんでした。a,b共に符号付き整数型変数(int)を想定しています。

int a = INT_MIN;
int b = 1;
if ((a-b) > 0) printf("(a-b) > 0 true\n");
if (a > b) printf("a > b true\n");
0871デフォルトの名無しさんNGNG
>>866
オーバーフローで未定義の動作って時点で
genericな話としてはすでに結論が出ちまってる

だから議論を続けられるとしたら処理系依存ありってことで・・・

* (a-b)>0
mov a,r1
mov b,r2
sub r2,r1

* a>b
mov a,r1
mov b,r2
cmp r2,r1

おまえさんとこの汗では
subtractとcompareはどう違うんだ?
0872デフォルトの名無しさんNGNG
>>842
static int hoge;
0873デフォルトの名無しさんNGNG
>>871
movl $-2147483648, -4(%ebp)
movl $1, -8(%ebp)
movl -8(%ebp), %edx
movl -4(%ebp), %eax
subl %edx, %eax
testl %eax, %eax
jle L15
subl $12, %esp
pushl $LC0
call _printf
addl $16, %esp
L15:
movl -4(%ebp), %eax
cmpl -8(%ebp), %eax
jle L16
subl $12, %esp
pushl $LC1
call _printf
addl $16, %esp
L16:

Win32のgcc3.2.3(mingw)で、こうです。
オーバーフローを考えなければ特に違いはなさそうですが。。
0874デフォルトの名無しさんNGNG
rand関数で0〜65535を発生させるにはどうしたいいのでしょうか?
rand関数を複数回呼び出すまではわかったのですが…。
0875デフォルトの名無しさんNGNG
>>874
rand を複数回呼び出しても0〜65535の範囲にはならんぞ。
正規乱数にでもしたいの?

普通、[0, N) 間での範囲の乱数を作りたければ
rand() / (1.0 + RND_MAX) * N
とする。
これを int にキャストすれば0〜N-1の整数乱数が得られる。
0876874NGNG
返答ありがとうございます。
r=rand() / (1.0 + RAND_MAX) * 65535;
として10億回試行したんですが
0〜65533
しか抽選できませんでした。
long型を最後にint型にしているのですが、これがいけないのでしょうか?
0877874NGNG
すいません、0〜N-1だから
r=rand() / (1.0 + RAND_MAX) * 65536;
ですね。これだと、0〜65534でした。
0878デフォルトの名無しさんNGNG
VC++ってRAND_MAXが0x7fffだねw
0879マネージャNGNG
すみません恐縮ですが教えてください。実務で困っています。
私はPGじゃないのでさっぱりわからなくてお手上げです。
文字列"[aaaaa.bbbbbb.cccccc.ddddddd.eee]"があるのですが
一番最後(右端)のピリオドを探し出し、それ依然の文字のみ取り出す形で
結果"[aaaaa.bbbbbb.cccccc.ddddddd]"にしたいのですが
方法がわかりません。どなたか教えていただけないでしょうか
お願いします。
0880デフォルトの名無しさんNGNG
strrchr?
0881デフォルトの名無しさんNGNG
{
  char moji[] = "aaaaa.bbbbbb.cccccc.ddddddd.eee";
  *strrchr(moji, '.') = '\0';
}
0882デフォルトの名無しさんNGNG
for(int i=strlen(str);i>0;i--)
 if(str[i-1]=='.'){
  str[i]=0;
  str[i-1]=str[strlen(str)];
  break;
 }
}
0883デフォルトの名無しさんNGNG
まちがえた。
for(int i=strlen(str);i>0;i--)
 if(str[i-1]=='.'){
  str[i-1]=str[strlen(str)+1];
  str[i]=0;
  break;
 }
}
0884マネージャNGNG
皆様さりがとうございます。C言語って難しいですね。
どれを使用させていただけばよろしいでしょう
0885マネージャNGNG
>>883を試してみたのですが
"[aaaaa.bbbbbb.cccccc.ddddddd.]"
と最後のピリオドが残ってしまいました。
"[aaaaa.bbbbbb.cccccc.ddddddd]"にするには
どこでマイナス1すればよろしいでしょうか?
0886マネージャNGNG
行けました
str[i]=0; を str[i-1]=0;
にしたら期待していた値が変数にはいりました。
しかし難しいですね
ループ内で何が行われてるか分からず
最後のstr[i]=0; にいきなりほしい結果が入るので
まさにキツネにつままれた感じでした。マジックですね!!

どうもありがとうございました。
0887デフォルトの名無しさんNGNG
{
  char moji[] = "aaaaa.bbbbbb.cccccc.ddddddd.eee";
  strrchr(moji, '.')[-1] = '\0';
}
0888デフォルトの名無しさんNGNG
>>887
strrchrの戻り値をチェックしろよ。
0889デフォルトの名無しさんNGNG
「与えられた文字列より、その文字列の副文字列を列挙するプログラム」がわからない
0890デフォルトの名無しさんNGNG
漏れも判らない
0891デフォルトの名無しさんNGNG
>>890
まじですか?
0892デフォルトの名無しさんNGNG
勝手な推測だが、講義の流れがあった上でその問題じゃないのか
0893デフォルトの名無しさんNGNG
「副文字列」の定義がわからない
0894デフォルトの名無しさんNGNG
少なくともC言語の話じゃないな。
0895デフォルトの名無しさんNGNG
副文字列
文字列をA B C としたら
A AB ABC
B BC
C 
0896デフォルトの名無しさんNGNG
そんなの超能力者以外にはわかりません。日本語もおかしいし。
0897デフォルトの名無しさんNGNG
ACが含まれていないことを考えると、単なる組み合わせでもないわけだ。
0898デフォルトの名無しさんNGNG
>>895 の通りなら

  char *hoge;
  size_t len, width, from;

  len = strlen(hoge);
  for (width=1; width<=len; width++)
    for (from=0; from<=(len - width); from++)
      printf("%.*s\n", width, hoge + from);

つか宿題スレ向きだな。
0899デフォルトの名無しさんNGNG
>895の言っていることが微塵も理解できないのですが。
0900デフォルトの名無しさんNGNG
>>895はACもだろ
A B C Dの場合なら
A AB AC AD ABD ABC ACD ABCD
B BC BD BCD 
C CD
D
0901デフォルトの名無しさんNGNG
>>899
「長さ L からなる文字列の、M 文字目から N 文字を抜き出す」じゃないの?
>>900
それ順列。
0902901NGNG
違う組み合わせだ。俺って莫迦。
0903デフォルトの名無しさんNGNG
久々に宇宙語を見た。
0904デフォルトの名無しさんNGNG
配列の要素を交換する関数なんですが、
�@と�Aが違うのはどう理解すればいいんでしょうか?
�@に*が、�Aに[]がないのはどうしてですか?

void swap(int[]�@,int,int);
int main()
{
int array[] = {1,2,3,4,5},i;
printf("before\n");
for(i=0;i<5;i++)
printf("array[%d] = %d\n",i,array[i]);
swap(array,2,3);
printf("after\n");
for(i=0;i<5;i++)
printf("array[%d] = %d\n",i,array[i]);
return 0;
}
void swap(int *a�A,int num1,int num2)
{
int tmp;
tmp = *(a+num1);
*(a+num1) = *(a+num2);
*(a+num2) = tmp;
}



0905デフォルトの名無しさんNGNG
プログラマなら○+数字を使うな。
0906デフォルトの名無しさんNGNG
>>904
void swap(int [], int, int);
という宣言は、
void swap(int *, int, int);
と書いても同じ。
ついでに言えば、
void swap(int array[], int index1, int index2);
と書いても同意だ。

私なら*(a+num1)と書かずにa[num1]と書くが、
それはまた別の話か。

>>905
プログラマじゃなくても読み手の環境を特定できない状況で使って欲しくないね。
0907デフォルトの名無しさんNGNG
>>904
まずは http://www.kouno.jp/home/c_faq/c6.html を読め。それから質問しろ。
0908デフォルトの名無しさんNGNG
今はHTMLが多少理解できるくらいなんだけど、
C言語とかのプログラミング言語って習得できる?

なんか就職試験でプログラマ適性試験ってあるくらいだから、
向き不向きってあるんですかね?

C言語なんかのに向いてる人ってどんな人ですか?
0909デフォルトの名無しさんNGNG
プログラム覚えるのにそんな向き不向きはないと思う。
頑張れば誰だって覚えられるさ。

ただ、それを仕事にするのは向き不向きがあると思うが。
0910デフォルトの名無しさんNGNG
一日中(時には徹夜で)、モニタに向かってコードをいじったり、バグを探したりすることに絶えられるかどうか。
これが一番大事な適正です。
0911デフォルトの名無しさんNGNG
言語自体はむずかしいものでもないしな。一つひとつは。
0912デフォルトの名無しさんNGNG
>>908
スレ違いに気付かないようじゃどうしようもないな。
PG 以前に、大人として。
0913デフォルトの名無しさんNGNG
>>912
たぶん学生だと思うが?

文脈から読めないようじゃお前もダメだな。








あ、俺もか。
0914デフォルトの名無しさんNGNG
C言語に限らず、言語はある程度の適性必要だと思うが?

覚えてできるもんじゃない。
そもそも理解できない人も多いと思う。
まぁそれは努力に比例するんだろうが。

誰でもできるっていうなら、
俺も今からでも頑張れば野球選手になれるってことだよなw

でも、それはしない。

>>908
それはなぜだと思う?
0915デフォルトの名無しさんNGNG
20過ぎたら大人ですよ。
0916デフォルトの名無しさんNGNG
>>915
最後にあ、俺もか。って書いてあるじゃんw
0917デフォルトの名無しさんNGNG
まあ、Cは大人になってからってことか。
0918デフォルトの名無しさんNGNG
プログラマーを20で目指し始めるって遅いかな?
0919デフォルトの名無しさんNGNG
プログラマ板でやりやがれ、お前ら。
0920671NGNG
また>>671コピペしちゃうぞ
0921デフォルトの名無しさんNGNG
>>918
会社入って初めてプログラミングに触れるSEもいますよ、いっぱい。
0922ここはマ板じゃありませんNGNG
    ______
   /∴∵∴∵∴\
   /∴/∴∵\∴∵丶
  /∴<・>∴∵<・>∴∵|  
  |∵/ ●    \∴| tanasinn
  |/三 ,/   三 |∴|
  |: (___|____/ |:/
   \  \_/  /∴\  
    \____/∴∵∴|      ●  
     ━(〒)━\∴∵∴|     <  
     |       |∴∵∴|    /  
 
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   :::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::
     :::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::     ∧_∧ !?
      ::::::::::::::::::::::::::::     Σ( ::;;;;;;;;:)
        ::::::::::::        /⌒`'''''''''''^ヽ
               /⌒ヾ/ / .,;;;;;;:/.:;|
-―'――ー'''‐'ー'''―‐'―''''\,./ / .::;;;;;;:/‐'| :;|'''ー'-''――'`'
 ,, ''''  `、 `´'、、,   '''_ソ / `:;;::::ノ,,, | :;| '''  、、,
    ,,,   ''  ,,   ''''' ξ_ノ丶ー'ー< ,ゝ__> '''''  ,,,,
0923ここはマ板じゃありませんNGNG
    ______
   /∴∵∴∵∴\
   /∴/∴∵\∴∵丶
  /∴<・>∴∵<・>∴∵|  
  |∵/ ●    \∴| tanasinn
  |/三 ,/   三 |∴|
  |: (___|____/ |:/
   \  \_/  /∴\  
    \____/∴∵∴|      ●  
     ━(〒)━\∴∵∴|     <  
     |       |∴∵∴|    /  
 
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   :::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::
     :::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::     ∧_∧ !?
      ::::::::::::::::::::::::::::     Σ( ::;;;;;;;;:)
        ::::::::::::        /⌒`'''''''''''^ヽ
               /⌒ヾ/ / .,;;;;;;:/.:;|
-―'――ー'''‐'ー'''―‐'―''''\,./ / .::;;;;;;:/‐'| :;|'''ー'-''――'`'
 ,, ''''  `、 `´'、、,   '''_ソ / `:;;::::ノ,,, | :;| '''  、、,
    ,,,   ''  ,,   ''''' ξ_ノ丶ー'ー< ,ゝ__> '''''  ,,,,
0924デフォルトの名無しさんNGNG
>>921
SEってPGスキルない香具師だと思ってたyo (w
0925デフォルトの名無しさんNGNG
intsでエラーが出るのですが、
{}の内容をどうすれば直るでしょうか。

#include <stdio.h>
int main(void)
{
int *ints[] = {{1,2,3}, {4,5,6}};
char *chars[] = {"hoge", "foo"};
return 0;
}
0926デフォルトの名無しさんNGNG
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
0927デフォルトの名無しさんNGNG
>>925
{}の内容の方を変えたいのか?
0928デフォルトの名無しさんNGNG
int [][こっちはサイズ指定汁]={{1,2,3},{4,5,6}};
0929デフォルトの名無しさんNGNG
>>926
書かれなきゃわからんのか?
0930925NGNG
>>926
VC何ですが。
warning C4047: 'initializing' : 間接参照のレベルが 'int *' と 'const int ' で異なっています。
error C2078: 初期化子の数が多すぎます。
warning C4047: 'initializing' : 間接参照のレベルが 'int *' と 'const int ' で異なっています。

>>927>>928
何か本を見ていた所charの方が載っていたので、
intでもできるかなと実験してみた所エラーになりました。
0931925NGNG
>>926
VC何ですが。
warning C4047: 'initializing' : 間接参照のレベルが 'int *' と 'const int ' で異なっています。
error C2078: 初期化子の数が多すぎます。
warning C4047: 'initializing' : 間接参照のレベルが 'int *' と 'const int ' で異なっています。

>>927>>928
何か本を見ていた所charの方が載っていたので、
intでもできるかなと実験してみた所エラーになりました。
0932デフォルトの名無しさんNGNG
今日はいたるところでこの現象が起こっていますな。
0933デフォルトの名無しさんNGNG
今日はいたるところでこの現象が起こっていますな。
0934デフォルトの名無しさんNGNG
char *s="abc";
ってのは
char s[]={'a','b','c','\0'};

ちなみに int n[]={1,2,3,4}; とは書ける
0935デフォルトの名無しさんNGNG
くすっとわろた。
0936デフォルトの名無しさんNGNG
>>934
嘘は教えるな。
0937デフォルトの名無しさんNGNG
嘘を教えるのはやめようや。
0938デフォルトの名無しさんNGNG
安心しろオレは騙されない
0939デフォルトの名無しさんNGNG
嘘と教えるのはやめようや。
0940デフォルトの名無しさんNGNG
嘘に教えるには騙される
0941デフォルトの名無しさんNGNG
上のは書き換えだめぽよ。
0942デフォルトの名無しさんNGNG
書き換えは環境によるんぢゃ?
0943デフォルトの名無しさんNGNG
環境によるからだめぽなんだよ!
0944デフォルトの名無しさんNGNG
だめぽは書き換えによる
0945デフォルトの名無しさんNGNG
for文で
for(i=0;i<=7;i++)を
繰り返し行いたいのです。
つまり、iは0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4・・・
としたいのです。
そこで以下の分を作ったのですが
気になっているのはgotoを用いたことです。
下の文と同じ意味を持つ文をgotoを使わずに組むことはできますか?
また、この場合はgotoを使ってもいいのでしょうか?

while(1)[
    for(i=0;i<=7;i++){
        何らかの処理
        if(条件式==128){
           goto nukedashi;
        }
 
0946デフォルトの名無しさんNGNG
すいません、途中で書き込んでしまいました。
続きの文を載せます。

           goto nukedashi;
        }
    }
}
nukedashi:

なんですが・・・どうでしょうか?
0947デフォルトの名無しさんNGNG
>>934
char *s="abc";
ってなんだ?w
0948デフォルトの名無しさんNGNG
>>945
break;すりゃ良いだろ
0949デフォルトの名無しさんNGNG
会社の研修の課題でgoto文使うなゴルァって怒られた(´・ω・`)
参考書にも載ってるのに、なんで使っちゃだめなの?
0950デフォルトの名無しさんNGNG
>>945
そのケースでgotoを避ける奴は例外なく低脳
0951デフォルトの名無しさんNGNG
いや、breakにするとfor文だけ抜けて
while(1)に吸収され、またfor文を行うことになってしまいます。
かといって、for文の}の下にbreakをつけると
8回ごとしかfor文を抜け出てこないので
for文を任意の回数実行させたい時に困ってしまいます。
0952デフォルトの名無しさんNGNG
スレ一覧をgotoで検索するといい
0953デフォルトの名無しさんNGNG
>>949
お前の書いたソース見なきゃ答えられない。
0954デフォルトの名無しさんNGNG
>>950さん
では、この場合は使ってもいいということですか?

>>949さん
goto文を使うとプログラムが読みにくくなるそうです。
スパゲッティ プログラム goto
でググってみると色々見つかります。
0955デフォルトの名無しさんNGNG
駄目だから環境によるんです。
0956デフォルトの名無しさんNGNG
while(flag == 0){
  for(i=0;i<=7;i++){
        何らかの処理
        if(条件式==128){
           flag = 1;
         break;
        }
}
flagを使えばまあ一応書けるが。
0957デフォルトの名無しさんNGNG
>>945
gotoを使って読みにくくなる規模であれば、関数にして 途中でreturnすればよい。
そう大きくなくとも、後々を考えて関数化しておくと都合が良い場合もあるだろう。
>>956のような手はお勧めしない。
0958デフォルトの名無しさんNGNG
>>956さん>>957さん
ありがとうございました。
私個人としては、この場合のgotoは
スパゲッティにならないのでいいと思っていました。
>>956さんの方法もメモしておきます。
私のプログラムは全然大きくないので
とりあえず私の方式で行くことにします。
0959デフォルトの名無しさんNGNG
>>956
for(i=0;;i=(i+1)&7){
 なんらかの処理
 if(条件式==128){
  break;
 }
}

こんなんでどうよ?
0960デフォルトの名無しさんNGNG
関数に包んで return したくなるねぇ
0961デフォルトの名無しさんNGNG
いくつかの構造体を引数に取るAPIのテストをしようと思ってます。
その構造体に読み込ませるテストデータをファイルで用意しといて、
再婚パイルしなくてすむようにしたいです。そういう場合、
例えば
struct T1 {
char str[10];
int a;
int b;
};
のような構造体に読み込ませるデータは
"Hello, world"
1
2
とか書いておいて順番にロードしていくような
イメージでいるんですが、何かもうちょっとうまい
方法ってありますかね?皆さんはこういう場合
どういう風にテストデータを読み込ませてますか?
0962デフォルトの名無しさんNGNG
文字列に空白が無いなら

文字列 1 2
:
ってデータに汁かな
0963デフォルトの名無しさんNGNG
先頭に保存数とかいれておいて読むときはループで回す。当然バイナリな。
0964デフォルトの名無しさんNGNG
#include <stdio.h>

void StrnCpy(char *szDest, char *szSrc) {
szDest = (char*)malloc(strlen(szSrc)*sizeof(char));
strcpy(szDest, szSrc);
printf("StrnCpy内: %s\n", szDest);
}

int main(void) {
char *szPtr, *szSrc = "hoge";
StrnCpy(szPtr,szSrc);
printf("StrnCpy外: %s", szPtr);
return 0;
}

というようなコードを書いたんですが、出力はこうなります。
> StrnCpy内: hoge
> StrnCpy外: (null)
StrnCpy関数内部で割り当てたメモリは関数外部には持ち出せないようなのですが、これを回避するにはどうすれば
良いのでしょうか?ポインタを返すにはstaticとすると思いますが、この場合staticなローカル変数を宣言、初期化して
アドレスを第一引数(szDest)にコピーしても結果は変わりませんでした。どうか解決法をお願いします。
0965デフォルトの名無しさんNGNG
ぽいんたのぽいんた
0966964NGNG
少し訂正です。strlenは終端\0抜きの文字数を返すはずなので
szDest = (char*)malloc(strlen(szSrc)*sizeof(char)+1);
とする必要がありそうですね。あと、この場合はUnicode利用時に発生する
文字数←→バイト数問題は放置の方向でお願いします。
0967デフォルトの名無しさんNGNG
>964 だからポインタのポインタ使えって
0968964NGNG
>>965さん
ポインタのポインタを使って手抜き実装してみたところ見事にぬるぽで落ちたのでいろいろ調べてがんばってみます。
ありがとうございます。
0969デフォルトの名無しさんNGNG
void StrnCpy(char **szDest, char *szSrc) {
*szDest = (char*)malloc(strlen(szSrc)*sizeof(char));
strcpy(*szDest, szSrc);
printf("StrnCpy内: %s\n", *szDest);
}

char *szPtr, *szSrc = "hoge";
StrnCpy(&szPtr,szSrc);
0970964NGNG
うまく行きました。
http://black.sakura.ne.jp/~third/programming/c/c25.html
このあたりの解説を読んでコードを書いているうちに>>969さんの書き込みに気付いてちょっとカンニングしてしまいましたが。
Cに対する理解が深まった気がします。本当にありがとうございました。
0971デフォルトの名無しさんNGNG
#include <stdio.h>

- void StrnCpy(char *szDest, char *szSrc)
+ char *StrnCpy(char *szDest, char *szSrc)
{
szDest = (char*)malloc(strlen(szSrc)*sizeof(char));
strcpy(szDest, szSrc);
printf("StrnCpy内: %s\n", szDest);
+ return szDest;
}

int main(void)
{
char *szPtr, *szSrc = "hoge";
- StrnCpy(szPtr,szSrc);
+ szPtr=StrnCpy(szPtr,szSrc);
printf("StrnCpy外: %s", szPtr);
return 0;
}

0972デフォルトの名無しさんNGNG
以下のようなプログラムで、mapDataをポインタで返し
mainのmapを変更するとmapDataが変更されるようにしたいのですができません。
1次元配列ならできたのですが、2次元でのやり方を教えてください。

int *[5]GetMap(void)
{
static mapData[5][5];
return map;
}
int main(void)
{
int *map[5] = GetMap();
return 0;
}
0973デフォルトの名無しさんNGNG
>>972
なんか凄いソースだな。

それはさておき、無理に高次元配列に拘らなくてもええやん。
1次元配列を使ってあとは自前でシミュレートすれば。
0974デフォルトの名無しさんNGNG
typedef int (*m)[5];
m GetMap(void);

int (*map)[5]=GetMap();
0975デフォルトの名無しさんNGNG
>>972

int (*GetMap(void))[5]
{
    static int mapData[5][5];
    
    return mapData;
}
int main(void)
{
    int (*map)[5] = GetMap();
    
    return map[0][0];
}
0976デフォルトの名無しさんNGNG
>>945

int main(void)
{
    int i, j;
    
    for (j = 0; ; j++) {
        i = j & 7;
        何らかの処理;
        if(条件式 == 128){
            break;
        }
    }
}

128ならループの外で判断できそうだが。
0977デフォルトの名無しさんNGNG
空白あけろ
0978デフォルトの名無しさんNGNG
for (i = 0; なんらかの処理, 条件式 != 128; i = (i + 1) & 7) {
  ;
0979ボブNGNG
DSPの実験でスルー動作のプログラミングを作成したのですが
スルー動作とは解りやすくいうと何ですか?詳しく教えて下さい。
お願いします。
0980デフォルトの名無しさんNGNG
さて次の話題
0981972NGNG
ありがとうございます。

>>973
今まではそのやり方でやっていました。
1次元にして[y*MAP_SIZE_X+x]みたいな感じにして。

>>974>>975
どちらもできました。
まだ、この文法が分からないので、参考にさせてもらい勉強します。
0982945NGNG
>>959さん>>976さん
ありがとうございます。
実行速度はn%8よりn&7のほうが速いのですね。
勉強になりました。
四則演算と同じ計算をビット演算で行える時は
ビット演算を使いたいと思います。
あと、なるべくgotoは使わずに
>>959さん>>976さんの方法を使ってみたいと思います。
それでは、しつれいします。
0983デフォルトの名無しさんNGNG
まあgotoも使い方によっちゃ悪くない。同じ(パラメータのみ多少異なる)エラー処理をいくつも
書くのも、それだけのために他関数に飛ばしてソースを追いにくくするのも馬鹿らしい場合なんかには
積極的に使ってもいいんじゃないかと@Microsoft
0984デフォルトの名無しさんNGNG
Cでgotoを使わない理由を考察するスレ goto loop3;
http://pc5.2ch.net/test/read.cgi/prog/1072018444/
0985デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1085465098/342-348
0986デフォルトの名無しさんNGNG
ttp://www.sikaku.gr.jp/nj/index4.html
C言語プログラミング能力認定試験(3級)を受けようと
思っていますが、どのくらいの難しさでしょうか?
自分は「独習C」で勉強した程度です、アドバイスお願いします。
0987デフォルトの名無しさんNGNG
>>986
俺が知っているものと同じなら、Cの歴史も勉強しておけ。
0988986NGNG
>>986
アドバイスありがとうございます。
Cの歴史についての勉強も頑張ってみます。
0989デフォルトの名無しさんNGNG
新スレ立ててくるぞおめーら。
0990デフォルトの名無しさんNGNG
>989乙。

C言語なら俺に聞け! Part 81
http://pc5.2ch.net/test/read.cgi/tech/1085806791/
0991デフォルトの名無しさんNGNG
質問です。
for(m_hoge=1;m_hoge<m_hoge2;m_hoge++)
のようにメンバ変数をforに入れるより
int hoge2=m_hoge2;
for(int i=1;i<hoge2;i++)
とした方が高速化するといわれ、実際にやってみたら高速化したんですが
これはどのような理由ででしょうか?
新たに変数を作ってコピー回数が増えて逆に遅くなるんじゃないか?と思ったのですが・・・

初歩的な質問ですみません。
0992デフォルトの名無しさんNGNG
>>991
そのm_hogeというのは実際はa.m_hogeみたいな形か?
それなら比較するたびに構造体の中からメンバーを取り出す手間が省けるから速くなったんじゃないの?
0993デフォルトの名無しさんNGNG
>>991
http://www.emit.jp/prog/prog_opt0.html
ここに同じような最適化の例がある。
0994デフォルトの名無しさんNGNG
レジスタにおかれるかどうかってことか?
0995デフォルトの名無しさんNGNG
アセンブルリストを見ろ。
---終了---
0996デフォルトの名無しさんNGNG
>>995
氏ね
0997デフォルトの名無しさんNGNG
>>991
コンパイラが賢ければどちらも同じになる。
メンバ変数ということはC++でスレ違いだが、コンパイラがforの内側の処理でそれが
変更される可能性があると思ってしまうと、毎回メモリアクセスになってしまう。
0998デフォルトの名無しさんNGNG
999get
0999デフォルトの名無しさんNGNG
999gets
1000デフォルトの名無しさんNGNG
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。