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

C言語なら、オレに聞け! 47

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

コンパイラを探しているなら >>2 を見よ。

上記を逸した場合の結果は激しく未定義とする。ウヒ

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

前スレ
http://pc3.2ch.net/test/read.cgi/tech/1039328710/
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/

【ライセンスや機能などに問題あり】
Microsot 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
0003デフォルトの名無しさんNGNG
このスレは冗談で作られたニセスレです。ageないようにお願いします。

本物は↓こちら
C言語のことは俺に聞け<46>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50
0004過去スレNGNG
46 http://pc3.2ch.net/test/read.cgi/tech/1039328710/
45 http://pc3.2ch.net/test/read.cgi/tech/1038405432/ (待機中)
44 http://pc3.2ch.net/test/read.cgi/tech/1037796472/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037281411/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037134356/ (待機中)
42 http://pc3.2ch.net/test/read.cgi/tech/1037101156/ (待機中)
41 http://pc3.2ch.net/test/read.cgi/tech/1036876790/ (待機中)
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/ (待機中)
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/ (待機中)
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ (待機中)
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ (待機中)
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ (待機中)
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ (待機中)
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ (待機中)
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ (待機中)
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/ (待機中)
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/ (待機中)
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/ (待機中)
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/ (待機中)
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/ (待機中)
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/ (待機中)
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
0005過去スレNGNG
23 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0006デフォルトの名無しさんNGNG
0007デフォルトの名無しさんNGNG
からageすんな
00081NGNG
重複スレすまそ。

削除依頼すんのでこちらには書かないように。
0009デフォルトの名無しさんNGNG
から
0010デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
float a,b,c;
printf("a=");scanf("%2.1f",&a);
printf("b=");scanf("%2.1f",&b);
c=a+b;
printf("a+b=%3.1f",c);
return 0;
}

このようなプログラムを書いてみたんですが
実行すると
"a=b=a+b=0.00"
と表示されてしまいます。
どこが間違ってるんでしょうか?
0011デフォルトの名無しさんNGNG
>>10
こちらは削除依頼済みなので
C言語なら私に聞けでお願いします。
0012デフォルトの名無しさんNGNG
>>11
嘘つくな。出てねーぞ。
こっちの方が早いんだからこっちが本スレだろ。
0013デフォルトの名無しさんNGNG
>>12
早ければ本スレというわけでもない。歴史が証明している。
0014デフォルトの名無しさんNGNG
>>12 = 1
本当だ。このスレはもうすぐ消える。あきらめろ。
0015デフォルトの名無しさんNGNG
このスレは終わっているな。
しねしね団がくる日も近い。
0016デフォルトの名無しさんNGNG
0017デフォルトの名無しさんNGNG
>>11
>>14

tech:プログラム技術[スレッド削除]
http://qb.2ch.net/test/read.cgi/saku/1027372992/

これ見ろバカども
0018デフォルトの名無しさんNGNG
>>17 = 1
なんか必死だね
0019デフォルトの名無しさんNGNG
.jpgのファイルを読み込んで画像サイズと大きさを表示するには
どんな感じでやればいいですか?
0020デフォルトの名無しさんNGNG
あぽーなかんじーでおねがーい。
0021デフォルトの名無しさんNGNG
ウェブ上で得ろ写真とそれ以外を判定する方法はないでしょうか?
得ろ写真収集ソフトを作りたいのですが。
0022デフォルトの名無しさんNGNG
>>21
〜KB以下の小さい画像は無視するとか。
あと、スレ違い。他逝け。
0023デフォルトの名無しさんNGNG
#include <stdio.h>

int main(void)
{
char c[] = "*";

switch(*c){
case '*':
printf("*だな\n");
case '"':
printf("*でないわ\n");
case '\\':
printf("\\だわ\n");
}
return 0;
}

をbccまたはlsiでコンパイルして実行すると

*だな
*でないわ
\だわ

と出ます。
漏れの予想では

*だな

と表示されるはずなのですが、何がおかしいのでしょうか?
0024デフォルトの名無しさんNGNG
>>21
肌色が多い奴だけ DL するとか ?
002523NGNG
あ、ごめんなさい。何かがおかしいのは漏れですた。
スレ汚してごめんよ。
0026デフォルトの名無しさんNGNG
>>23
一応書いて置く罠。breakが・・・・
0027905NGNG
全くわからないんで教えて下さい。お願いします。
問題は
正の整数の掛け算を行う関数kakezan1とkakezan2がある。(ただし、結果が16ビット以下の数値を取り扱う)また
kakeza1とkakeza2の違いは赤字で書いた一行のみである。

1.片方の関数の結果は間違っている。両者を比較して、その理由を説明しなさい。
2.1の説明を踏まえて間違っている結果を示した関数を修正しなさい。修正できるのはそれぞれの関数で一行のみとし、
赤
字のところは変えてはならない。また、1での解答に沿ったものでなければならない。
です。kakezan1が間違っているようですが何故が違うのか解りません。お願いします。
002827NGNG
include <stdio.h>

long kakezan1(long x, long y, int n)
{
long a,b,c,d,e,e1,e2;
int n2;

if( (x>>n)!=0 || (y>>n)!=0) {
n<<=1;
}

if(n==2) {
e=x & y;
} else {
n2=n>>1;
a=x >> n2;
b=x- (a<<n2);
c=y >> n2;
d=y- (c<<n2);
e1=kakezan1(a,c,n2);
e2=kakezan1(b,d,n2);
e=(e1<< n)+( ( kakezan1(a+b , c+d,n2) - e1-e2 ) << n2)+ e2;
}
return e;
}
002927NGNG
ong kakezan2(long x, long y, int n)
{
long a,b,c,d,e,e1,e2;
int n2;

if(n==2) {
e=x * y;
} else {
n2=n>>1;
a=x >> n2;
b=x- (a<<n2);
c=y >> n2;
d=y- (c<<n2);
e1=kakezan2(a,c,n2);
e2=kakezan2(b,d,n2);
e=(e1<< n)+( ( kakezan2(a+b , c+d,n2) - e1-e2 ) << n2)+ e2;
}
return e;
}
003027NGNG
main() {
int i;
long a,b,c;


scanf("%d %d",&a,&b);
c=kakezan1(a,b,16);
printf("==1== %ld %ld %ld \n",a,b,c);
c=kakezan2(a,b,16);
printf("==2== %ld %ld %ld \n",a,b,c);


}
0031デフォルトの名無しさんNGNG
新手の荒らしだね。
003227NGNG
荒らしじゃないんです。ほんとお願いします。
003327NGNG
宿題、書籍 は専門の別スレがあるのでそこへ行け。 とありまりた。
ほんとすいませんでした。
0034デフォルトの名無しさんNGNG
mktimeはlocaltimeの逆みたいですが
gmtimeの逆ってないんでしょうか?
0035デフォルトの名無しさんNGNG
>>34
時刻に関する関数はその3つしかないと思うけど。
0036デフォルトの名無しさんNGNG
>>34
time_t t;
struct tm *tp;
t=time(NULL);
tp=gmtime(&t);
t-=mktime(tp);
これで残ったtの値を適当に使うがよろしい
0037デフォルトの名無しさんNGNG
以下3つのプログラムはWinのものですが、適当な例が思い付かなかっただけ
なのでスレ違いとか言わないで下さい。
で、どのプログラムが行儀が良いですか?
どれが一般的ですか?

パターンA
void getpath_a(char * path){
char p[MAX_PATH];
GetPrivateProfileString("section","key","",p,sizeof(p),INIPATH);
lstrcpy(path,p);
}

パターンB
void getpath_b(char * path,size_t size){
GetPrivateProfileString("section","key","",path,size,INIPATH);
}

パターンC
void getpath_c(char * path){
GetPrivateProfileString("section","key","",path,MAX_PATH,INIPATH);
}

私的にはAパターンを今まで採用してきましたが。
0038デフォルトの名無しさんNGNG
>>37
Aだとpathのサイズがpのサイズに満たない時危なくない?
Cも同様。MAX_PATH分用意してるとは限らない。
やっぱBじゃないかな。
0039デフォルトの名無しさんNGNG
プログラムの行儀の良さを語らせたら世界一だよ、このスレは。(字余り)
0040デフォルトの名無しさんNGNG
つーか、Aは最後にlstrcpyするのに一時バッファを用意するのは
無意味というか、無駄なだけだと思うのだが。
004137NGNG
>>38-40
やっぱりそうですよね。
元々の発想としては、呼び出し時にいちいち変数のサイズ指定するのをやめて
短く済ませようというのがありました。
もちろん、渡されるpathのサイズはMAX_PATHあるという前提での話です。

この前提条件を守ってやるならば、パターンC’で許されますか?
それとも他の方法? ハナっから許されない?

パターンC’
void getpath_c(char * path){
GetPrivateProfileString("section","key","",path,sizeof(path)*MAX_PATH,INIPATH);
}
004237NGNG
>41 なぜC’としたかというと、単にsizeof(path)*MAX_PATHの方が
多少行儀が良いかと思いまして。
0043デフォルトの名無しさんNGNG
>>42
sizseof(path)の値ってどういう値になるか分かってる?
0044デフォルトの名無しさんNGNG
>>42
pathはポインタなので、sizeof(path)はポインタのサイズ
そのコードでやりたい事は、おそらくsizeof(*path)
更に言うと、Cではchar型のサイズは必ず1
と言っても、こっちの方は書き方のスタイルによる問題なので
あまり気にする必要はありませんが…
0045デフォルトの名無しさんNGNG
それならいっそのことマクロにするとか
004637NGNG
>>43-44
あ、間違いですね。
sizeof(*path)とすべきでしたね。前のままではアドレスサイズでした。

C’で許されるなら、これで行こうと思います。
レスありがとうございました。
0047デフォルトの名無しさんNGNG
つーか、漏れは C で GetPrivateProfileString() をわざわざラップした事は無い。
C++ なら、std::string を返させる為にそうする事はある。
0048デフォルトの名無しさんNGNG
つーか、ちょっと待った。

> sizeof(*path)

おいおいおいおい。
それって sizeof(char) と同義だぞ。
0049名無しさん@XEmacsNGNG
そりゃそーだが.....
0050デフォルトの名無しさんNGNG
おいおいおいおいおい。
引数の型がたとえunicodeであろうとsizeof(*path)という記述で済むだろって話だろ?
違うのか?ちょっと出てこい粉等>>48,37
0051デフォルトの名無しさんNGNG
> sizeof(*path)という記述

for(; ; ); に陥りますた
0052デフォルトの名無しさんNGNG
> 引数の型がたとえunicode

(´-`) ??
0053名無しさん@XEmacsNGNG
むしろ
void f(void){ f();} に陥りますた、と言うべきだな
0054デフォルトの名無しさんNGNG
それはコンパイラに最適化されて結局 51 と一緒かも知れない
0055名無しさん@XEmacsNGNG
じゃこうか
int f(int n) { n + f(n-1); }
つかどうでもいいわな。スレ汚しスマソ
005650NGNG
>51,53-54の意味は分からんが、

LPSTR path;
sizeof(*path) == 1

LPWSTR path;
sizeof(*path) == 2

つーことで、引数の型が変わってもsizeofの中身は変えずに済むだろって話。
と、>37の言いたいことはそうなんじゃないのか?
0057デフォルトの名無しさんNGNG
> LPSTR
> LPWSTR

どうせならさあ、ほら、もっとこう・・・
0058ビル・ジョブスNGNG
>>1
元祖のスレタイがいいね!エライ!
0059デフォルトの名無しさんNGNG
>>55
最後に自分を呼び出すタイプの再帰は、大体コンパイラにループに最適化されるよ。
0060303NGNG
>>59
たぶん 55 の気持ちは、
int f(int n) { return n + f(n-1); }
だと思うが、これを幻視再帰とみなし、ループにするのは
よっぽど上等なオプティマイザです。

最後の演算は加算だから、ループにするのはちょっと厄介。
0061デフォルトの名無しさんNGNG
>>56
おいおい、W版ではバッファのバイト数でなく文字数を指定するのだが。
だからUnicodeであってもこの場合の sizeofは余計なんだよ。
0062名無し@沢村NGNG
4バイトの整数値_int32から1バイトの配列BYTE[4]に値をコピーしたいんだが、
int32から1バイト目、2バイト目、3バイト目…と値を分けてきり出すにはどうしたらいいですか?
0063名無しさん@XEmacsNGNG
マルチですか?( ̄ー ̄)ニヤリッ
0064名無し@沢村NGNG
>>63
いや、あちらに書いたらこちらに書けって書かれたもんだから…。
0065デフォルトの名無しさんNGNG
>>62
& と >>
0066名無しさん@XEmacsNGNG
コピーするだけなら
memcpy(BYTE, &int32, 4);
でいけるはずだけどねー
0067デフォルトの名無しさんNGNG
激しく処理系依存で
i = *(int *)b;
0068xxxNGNG
-------変態・MTTどこでも-------

---●●●変態痴女を紹介致します。●●●---

例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・

フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・

アナルSEXおねだり娘・オマ〇コ弄られマン汁グチョグチョ女・

SM牝豚・緊縛・浣腸・スカトロ・等・・・刺激を求めています。

●●●学生・OL・主婦・モデル・牝豚・女王様・オカマ等・多数!●●●

 090-8002-8356番   
下のカタカナを小文字に変換してください。
  http://www.エムティーティー.jp/i

-



006967NGNG
あ、逆だった。
007067NGNG
激しく処理系依存で
*(int *)b = i;
0071名無し@沢村NGNG
>>65
_int32 Buffer1;
BYTE Buffer2[4];
Buffer2[0]=(Buffer1 & 0xFF000000) >> 24 ;
Buffer2[1]=(Buffer1 & 0x00FF0000) >> 16 ;
Buffer2[2]=(Buffer1 & 0x0000FF00) >> 8 ;
Buffer2[3]=(Buffer1 & 0x000000FF) ;
でいいのですか?
0072名無し@沢村NGNG
>>66
memcpyというのは初耳です。
第一引数がコピー先、第二引数がコピー元、第三引数がコピーするバイト数なのですか?
第一引数が配列であってもいいのですか?早速調べてみます♪

0073名無しさん@XEmacsNGNG
Buffer2[0] = (BYTE) (Buffer >> 24) & 0xff;
Buffer2[1] = (BYTE) (Buffer >> 16) & 0xff;
Buffer2[2] = (BYTE) (Buffer >> 8) & 0xff;
Buffer2[3] = (BYTE) (Buffer >> 0) & 0xff;
こうじゃないのかなぁ
0074名無し@沢村NGNG
Buffer2[4]は1バイトだから、定数値が切り捨てられると思うが、右が切り捨てられるのかな?左が切り捨てられるのかな?
どっちだろう?
右が切り捨てられるなら、
Buffer2[0]=(Buffer1 & 0xFF000000) ;
Buffer2[1]=(Buffer1 & 0x00FF0000) << 8 ;
Buffer2[2]=(Buffer1 & 0x0000FF00) << 16 ;
Buffer2[3]=(Buffer1 & 0x000000FF) << 24;
と逆になるが…。
どっちですか?
0075デフォルトの名無しさんNGNG
>>71
> Buffer2[0]=(Buffer1 & 0xFF000000) >> 24 ;
はシフトの前にunsignedにキャストした方がいい。

>>72
インテル系のCPUではバイト並びが逆になる。

>>73
それもunsignedにキャストした方がいい。
0076スティーブNGNG
プログラムに興味を持ってる人はwww.ITmonitorClub.comに登録して下さい!
アンケトーにお答え頂いた方には2−5千円の謝礼進呈。
007775NGNG
ごめん。やっぱり 73はキャストしなくてもいい。
0078名無し@沢村NGNG
>>73
わかりました。先にシフト演算してからビット演算するればいいのですね。
なにぶんプログラムはド素人なもので、細かいところまでは…てへへっ♪
それから右にシフトしたということは、1バイトに代入すると、やはり右が切り捨てられると考えていいのですね?
0079名無し@沢村NGNG
あ…違った左が切り捨てられると考えていいのですね?
0080名無し@沢村NGNG
>>75
unsigned intはバイト数が処理系依存と読んだことがあるので、わざわざ4バイト固定の_int32を使ったのですが…。
unsigned intを使っても問題ありませんか?
0081デフォルトの名無しさんNGNG
言ってる意味がよくわからんが、
 0x12345678
を 8ビットの unsigned charに代入すれば
 0x78
になる
0082デフォルトの名無しさんNGNG
>>79
レジスタの仕組みも勉強したほうが良いかもしれません。
0083名無し@沢村NGNG
>>77
なあんだ、キャストしなくてもいいんですか…。
0084デフォルトの名無しさんNGNG
union 使ったら?
0085名無し@沢村NGNG
>>81
>0x12345678
>を 8ビットの unsigned charに代入すれば
> 0x78
>になる

あ、やっぱり左が切り捨てられるでいいんだ♪ありがとうございました♪
0086デフォルトの名無しさんNGNG
>>83
ん?73はキャストをしてるような・・・
0087デフォルトの名無しさんNGNG
>>80
> unsigned intはバイト数が処理系依存と読んだことがあるので、
> わざわざ4バイト固定の_int32を使ったのですが…。

unsigned int と signed int のサイズは同じ。
singed int でもサイズは処理系依存。

負数の右シフトで、空きビットにゼロが入るかどうかが
処理系依存なのでキャストした方がいいと書いたのだが、
>>71でも(BYTEが8ビットなら)キャストしなくても
結局切り捨てられて同じになるね。ごめん、逝くわ。
0088デフォルトの名無しさんNGNG
>>86
ああ,確かにしてる
BYTE→int→BYTEのな


アフォキャストって言っていい?
0089名無しさん@XEmacsNGNG
ダレがアフォじゃコラ!
。。。でこの場合ってマスクいらないのかな?
Buffer2[0] = Buffer1 >> 24;
みたいな。
うちの環境だとどうやらいけてるみたいだけど、なんというか
規格上OKなのかどうか聞きたいんだけど。
0090デフォルトの名無しさんNGNG
Buffer2[0] = BYTE(Buffer1 >> 24 & 0x000000ff);
0091デフォルトの名無しさんNGNG
>>89
マスクはいらないかも・・・
Buffer2[0] = (BYTE)(Buffer1 >> 24);
0092デフォルトの名無しさんNGNG
暇なやしの質問場所だな。
0093デフォルトの名無しさんNGNG
Buffer2[i] = ((BYTE*)&Buffer1)[i];
?
0094デフォルトの名無しさんNGNG
>>90
そのBYTEはマクロか?
0095名無しさん@XEmacsNGNG
C++ でしょ
0096デフォルトの名無しさんNGNG
ここはCスレだ
009790NGNG
悪かったよ・・・
イジメないでくれよ・・・
0098デフォルトの名無しさんNGNG
>>89
_int32とは何かが明らかにされていないので本当は何とも言えないが
おそらく__int32のミスプリであろうと仮定すると
BYTEはunsigned charのtypedefと推定できる
以後、この前提で議論する

BYTEにキャストした後で&0xffしてるんだから代入の右辺はint型で
代入式はBYTE←intの形になっている
ここで右辺がBYTE型に暗黙の型変換をされるわけだが
型変換した結果の値は型変換前のint値を
BYTE型で表現できる最大数+1で割った剰りとなる
つまり&0xffはしなくてもよいことになる
0099名無し@沢村NGNG
>>94
マクロかどうかは知らんよ。
ただちらっと見たら、BYTE型というのがあってサイズは1バイトと書いてあっただけだよ。
0100デフォルトの名無しさんNGNG
>>98
charが9ビットなら &0xffの有無で結果が違ってくるな
0101名無し@沢村NGNG
>>98
あらっ、ホントだ。
_int32ではなく、__int32だったよ。
エラーが出なかったので、ミスプリのまま使っていたよ。
010298NGNG
>>100
おいおい前提を見落とさないでくれよ
0103デフォルトの名無しさんNGNG
構造体にデータを格納したいのですが、そのデータがいくつ必要になるか不明なのです。
10個の時もあれば、10000個の時もあるので

struct data {
 int xxx;
 char yyy[256];
};
struct data info[10000];

みたいなのは容量の無駄なのでやりたくありません。
そもそも10000個で収まるかどうかも不確定なので。
データによって、その必要な数だけ構造体を確保する方法ありませんか?
0104デフォルトの名無しさんNGNG
>>103
malloc関数・・・
0105デフォルトの名無しさんNGNG
>>103
リストって知ってるかい。
0106デフォルトの名無しさんNGNG
>>103
C99限定ならば
int foo(int size)
{
  struct data info[size];
  // なんか処理をする
}
と言う方法はある。
普通は
int foo(int size)
{
  struct data *info;
  info = malloc(sizeof(*info) * size);
  // なんか処理をする
  free(info);
}
かな?
0107100NGNG
>>102
前提にはcharが8ビットとは書かれてないが...それとも
__int32が32ビットであることが規格で決まってるのか?

でもまあ単なる揚げ足取りだから、どっちにしても気にしないでくれ。
010898NGNG
>>107
すまそ,漏れのミスだ
あの前提では__int32がある処理系がVCだけになっていた(鬱出汁脳
0109デフォルトの名無しさんNGNG
>>107
__int32なんてものは規格にはない罠。
0110名無し@沢村NGNG
>>107
charは1バイトだから8ビットだよ。intやunsigned intはシステムに依存するよ。
__int32は4バイトだから32ビットだよ。これは規格で決まっているよ。ホントだよ。
0111デフォルトの名無しさんNGNG
>>110
何も知らん初心者はすっこんでろ
0112デフォルトの名無しさんNGNG
>>110
その規格ってのは MS-VC99 か?
0113103NGNG
>>104
mallocで確保すると、それぞれの構造体に直接アクセスできますか?
その方法がわからないんですけど。

>>105
知ってます。
リスト構造でmallocで確保すると、最初からたどらないと目的の構造体に
アクセスできないのでちょっと。
info[no].xxxみたいにインデックスの数値で目的の構造体に直接アクセスしたいんです。

>>106
その普通の方法というのを最初に試したのですが、各構造体に直接アクセスする方法が
よく分からないんですけど、できますか?
0114デフォルトの名無しさんNGNG
  struct data *info;
  info = malloc(sizeof(*info) * size);
  info[0].xxx = 0;
  strcpy(info[0].yyy, "hoge");
0115デフォルトの名無しさんNGNG
>>110
ソースは?
「本に書いてあった」とか言うなよ。
0116デフォルトの名無しさんNGNG
>>110
1byte=9bitsのマシンが実在するのを知らないのは許してやろう
だが,規格で決まっているかどうか調べもせずに言うのはいかん
0117名無し@沢村NGNG
>>103>>106
struct data {
 int xxx;
 char yyy[256];
};
struct data *info;
info=(struct data *)malloc(sizeof(struct data ));
…
…
…
free(info);

のほうが馬鹿でもわかりやすいよ。

0118名無し@沢村NGNG
>>115
VC++のヘルプで検索してら書いてあったんだよ。4.0だけどね…。ビンボー素人なもんで…。
0119デフォルトの名無しさんNGNG
>>117
だから,調べもせずに言うなってば!
0120デフォルトの名無しさんNGNG
int 型と unsigned int 型のサイズは、システム ワードのサイズになります。
つまり、MS-DOS と 16 ビット バージョンの Windows では 2 バイト (short
型および unsigned short 型と同サイズ) になり、32 ビットのオペレーティ
ング システムでは 4 ビットになります。

MSDNって素敵…。
0121デフォルトの名無しさんNGNG
>>120
マジかよ
最新バージョンでか?
0122名無し@沢村NGNG
>>113
>mallocで確保すると、それぞれの構造体に直接アクセスできますか?
>その方法がわからないんですけど。

普通にinfo->char[5]とか、info->xxx[73]とかすればいいが、何か…??
0123デフォルトの名無しさんNGNG
>>118
お前にとっての規格は「VC++のヘルプ」なのかと小
0124デフォルトの名無しさんNGNG
>>122
info->char[5]がコンパイルできるかどうか調べたかと3.6キロ秒ほど問いつめ...たくない
もういやだ,こいつ
0125デフォルトの名無しさんNGNG
>>124
ネタに付き合うお前すげぇよ
0126名無し@沢村NGNG
>>124
すまん、プリミスだ。info->char[5]ではなく、info->yyy[5]だったな。
0127デフォルトの名無しさんNGNG
>>124
冬休みだからな...学生はいいよな
0128名無し@沢村NGNG
>>113
>mallocで確保すると、それぞれの構造体に直接アクセスできますか?
>その方法がわからないんですけど。

ってお前まさかそれでプログラマーじゃないだろうな?
俺はド素人だぜ。プログラマーはド素人には教えてもらわないよな。普通…。
0129デフォルトの名無しさんNGNG
ド素人が偉そうにネタ回答すんな。
0130103NGNG
>>114
その方法だと、結局その変数sizeでサイズが分かってないと駄目ですよね?
サイズが分からない段階で確保していく方法はないでしょうか?
0131名無し@沢村NGNG
>>130
お前、俺のレスちゃんと読んだか?

struct data {
 int xxx;
 char yyy[256];
};
struct data *info;
info=(struct data *)malloc(sizeof(struct data ));
…
…
…
free(info);

で確保しろ。
でアクセスは普通にinfo->yyy[5]とか、info->xxx[73]な。
0132デフォルトの名無しさんNGNG
>>131
お前って・・・
0133デフォルトの名無しさんNGNG
>>131
お前、・・・
0134デフォルトの名無しさんNGNG
なんで名無し@沢村がこのスレに馴染んでんの?別にイイケドサ…
0135デフォルトの名無しさんNGNG
>>131
ネタもいい加減にしろよ。
氏ね。
0136デフォルトの名無しさんNGNG
>>131
いいかげんにネタ回答はやめろ。天然か?
それにしても聞く時と答える時ですごい豹変ぶりだな。
0137デフォルトの名無しさんNGNG
Buffer1 は符号付き整数ですから、Buffer1 が負の値だったときに
Buffer1>>24 は処理系依存になります。だから、
(unsigned int)Buffer1>>24
とすべきです。

[#5] The result of E1 >> E2 is E1 right-shifted E2 bit
positions. If E1 has an unsigned type or if E1 has a signed
type and a nonnegative value, the value of the result is the
integral part of the quotient of E1 divided by the quantity,
2 raised to the power E2. If E1 has a signed type and a
negative value, the resulting value is implementation-
defined.
0138デフォルトの名無しさんNGNG
ややこしくなるからお前は黙ってろ > 名無し@沢村
0139デフォルトの名無しさんNGNG
沢村くん・・・
103からレスを読み返してみたまえ。
0140デフォルトの名無しさんNGNG
>>130
リスト構造というものを勉強することを勧める。

沢村のネタ回答はほっとこう。無視無視。
0141デフォルトの名無しさんNGNG
↓沢村の「釣れた」の予感
0142デフォルトの名無しさんNGNG
>>130
いくつか分からんものを確保しようがないと思うが?
途中で追加されてサイズが変わるとかならrealloc()汁。
0143142NGNG
>>141
正直、すまんかった
0144デフォルトの名無しさんNGNG
>>137
誤爆か?
>>87を読め
0145103NGNG
>>140
リスト構造は一応知ってるつもりなんですけど、目的のデータに
到達するまでに最初から追っていかなくては駄目ですよね?
目的のデータに直接アクセスしたいんですよ。

>>142
やはり無理ですか。
10000個データがあったとしても、1個ずつ読み込んで処理できるんなら
その時にカウントしていけばいいんですけど、10000個分が全部まとまった
状態でしかそのデータを読み込めないんです。
だから、最初からその分の領域を確保しなければならないので困ってます。

うーん、もう少し頑張ってみます。
0146デフォルトの名無しさんNGNG
>>144
いや、ちがう。符号付き整数で値が負の時に、
右シフトすると、空きビットうんぬんではなく、
全部のビットが変になる可能性がある。
符号付き数の内部表現が1の補数である処理系を考えてみると
よい。
0147デフォルトの名無しさんNGNG
>>145
>目的のデータに直接アクセスしたいんですよ。
n番目のアイテムを返す関数一個作って直接アクセスっぽく…
ダメ?w
0148名無し@沢村NGNG
(unsigned int)Buffer1 >> 24とするより、最初からBuffer1をunsigned intにしておいたほうが手っといばやいんでそうしました。
どうやらunsigned intはMS_DOSとwindous3.1以外は4バイトのようですね。安心しました♪
0149142NGNG
>>145
「直接アクセス」っていうか「ランダムアクセス」したいってことだな。

後半はよく意味が分からんのだが、もうちっと説明してみ?
0150デフォルトの名無しさんNGNG
>>145
142も言っているが、reallocじゃダメなの?
0151名無し@沢村NGNG
>>145
>10000個分が全部まとまった
状態でしかそのデータを読み込めないんです

読み込んだ後、カウントできないの?
0152デフォルトの名無しさんNGNG
>>151
貴様に発言権はない
0153デフォルトの名無しさんNGNG
>>145
ポインターのポインターを使用するしか・・・
0154デフォルトの名無しさんNGNG
>>146
なるほど。言ってる意味はわかったが、
果たしてその解釈で合ってるかな。

E1>>E2 は、E1 を E2 ビット分右にシフトし、それを結果とする。
E1 が符号無し整数型をもつ場合、又は E1 が符号付き整数で非負の値をもつ場合、
結果の値は、E1 を 2 の E2 乗で割った商の整数部分とする。
E1 が符号付き整数型で負の値をもつ場合、結果の値は、処理系定義とする。

ビット並びで見た場合、空きビット以外の部分は保証されていると思うが。
0155154NGNG
>>154 は
JIS X3010 (ISO/IEC9899:1990) からの引用ね。
0156デフォルトの名無しさんNGNG
>>152
みんな仲良くしようよ
0157デフォルトの名無しさんNGNG
>>145
>>10000個分が全部まとまった
>>状態でしかそのデータを読み込めないんです。

この辺が何を言いたいのか理解できないんだが。
malloc()、realloc()で確保した領域は構造体の配列と同じようにアクセスできるけど、それじゃだめか?


>>153
なぜ?
0158デフォルトの名無しさんNGNG
何にしろ、個数が分からん限りmallocで確保するのは絶対に不可能。
ループで回してる中で1個づつ追加していきたいならreallocでできるでそ?
100個でも10000000個でもreallocしていけば。

しかしreallocの時間的コストってどんなもんだろうな。
10000000回もreallocするのなんか抵抗あるが。
0159名無し@沢村NGNG
>>152
刀あげるから…!!
0160デフォルトの名無しさんNGNG
>>159
>>152
0161デフォルトの名無しさんNGNG
>>154 たしかにそうだ。私が間違えていた。すまん。
bit ならびは新しく入る部分以外は保存される。

わたしが漠然と思っていたことがやっと分かった。
マスク (&0xff) せずに、
buffer2[0] = buffer >> 24;
とした場合ははダメで、
buffer2[0] = (buffer >> 24) & 0xff; /* CHAR_BITS==8 の場合 */
ならOK ってことだ。
つまり、&0xff なら、左のビットが捨てられるだけだが、
前者のようにマスクせず int を BYTE に代入したら、
(BYTE が 8 bit の符号無し整数だとして)
256を法としてbufferと合同な最小の整数が buffer2[0]に入るから、
負数の内部表現によって結果が異ってしまう。

このスレではみんな &0xff としてるので、問題ないわけだ。
私がわるかった。重ねがさね済まん。
0162124NGNG
>>127
うるせーここんとこ仕事ヒマなんだよ
放っとけ
0163デフォルトの名無しさんNGNG
#include <limits.h>
&(unsiged(1<<CHAR_BIT)-1)
多分これで処理系に関係なく1バイトのみの値を取る事が出来る
と言っても、こんなガイキチみちたコードなんて書かずに
素直に、処理系依存のコードにした方が、かなりまし
0164デフォルトの名無しさんNGNG
>>163
そんなガイキチみちたコードなんて書かずに
素直に、UCHAR_MAXと書いたほうがまし
0165さっぱりNGNG
すいません。C言語の初心者です。
課題で出されたCがわからなくてこまってます。
課題は2つの行列AとBを加算するプログラム(matadd.c 未完成)をディスクに保存する。

入力用データファイル matadd.dat をディスクに保存する。

ソースプログラムをコンパイルし,実行する。
実行時に次のように入力のリダイレクトを行い,データファイルからデータを読み込ませる。

matadd < matadd.dat


表示された結果とソースプログラム内容を観察し,どのような手順で2次元配列を入力・出力しているか,理解する。

次に,C=A+B を計算し,Cの各要素を行列らしく出力する部分を追加して完成させる。
上と同様に実行して動作確認ができたら,ソースプログラムを提出する。
0166163NGNG
書くの忘れてた…
これ、>>89-100辺りに出てたマスクの話
(マスクが必要か必要無いかの話は別問題として)
0167デフォルトの名無しさんNGNG
>>165
>>1よめ厨房。

>ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
0168デフォルトの名無しさんNGNG
>>164
UCHAR_MAXって(unsigned)0-1になる事が規格で保証されてたっけ?
0169デフォルトの名無しさんNGNG
>>103
struct data {
 int xxx;
 char yyy[256];
};
char dummy=0;
struct data *info;
info=(struct data *)malloc(sizeof(struct data )*kazu);
…
dummy = (info+index)->yyy[xxx];//info[index]->yyy[xxx]; と同じアクセス方法。indexはkazuを超えない事。
…
free(info);

ダイレクトにアクセスできますぜ。
ただ、確保された領域の外には手を出さない事。(事故でも)
ソースは、131から流用を改変。thx.
0170デフォルトの名無しさんNGNG
>>169 ここCのスレなんだから、せめてこれ位に…
typedef struct {
 int xxx;
 char yyy[256];
} data;
0171デフォルトの名無しさんNGNG
>>103
構造体のメンバを表す時の.や->の意味とポインタの概念を理解出来れば
>>169の(info+index)->yyy[xxx]をinfo[index].yyy[xxx]と
置き換えられるようになる事が理解出来るので、頑張っ勉強して下さい
0172171NGNG
「頑張って」のが「て」が抜けた…
0173デフォルトの名無しさんNGNG
>>168
不安なら(unsigned)0-1って書けば?
>>163よりはマシだと思われ
0174デフォルトの名無しさんNGNG
>>168
保証もなにも、普通違う値だろ。

~(~0u<<CHAR_BITS)
0175デフォルトの名無しさんNGNG
>>173
(unsigned char)0-1の書き間違えだと思うが
それが8ビットの場合255になってくれる処理系を俺は見た事がない
0176175NGNG
誰も書かないようなので自分で突っ込みを入れると
(unsigned char)(-1)
なら動くが、たまに動かない物もあるので注意
0177175NGNG
さらに書くと、>>176で動く場合
ただ単にキャストすればマスクの必要はない
0178デフォルトの名無しさんNGNG
このスレ的に処理系の規格準拠は前提にしていいの?
0179デフォルトの名無しさんNGNG
処理系の規格準拠って何ぞや?
0180デフォルトの名無しさんNGNG
コンパイラが ANSI なり ISO なりの規格に準拠してるかって事だろ。
C 言語の前に日本語は大丈夫か?
0181デフォルトの名無しさんNGNG
> (info+index)->yyy[xxx];

イヤな書き方するな。
0182デフォルトの名無しさんNGNG
>>145
> 10000個データがあったとしても、1個ずつ読み込んで処理できるんなら
> その時にカウントしていけばいいんですけど、10000個分が全部まとまった
> 状態でしかそのデータを読み込めないんです。
> だから、最初からその分の領域を確保しなければならないので困ってます。
C++のVectorの実装を参考にしてみろ。
まず、適当な大きさでmallocし、追加するたびに上限値を超えていないかのチェックを行う。
上限値を超えていた場合、上限値を増やしてreallocする。
こんな感じの実装の仕方だったはず。
0183デフォルトの名無しさんNGNG
> C++のVectorの実装を参考にしてみろ。

この一行がものすごく余計な気がする
0184デフォルトの名無しさんNGNG
>>175
整数演算がオーバーフローした場合の結果は未定義だが
符号なし整数はオーバーフローしない
よって(unsigned char)0から1を減じた結果が
UCHAR_MAXとなることを処理系は保証すべき

符号付き整数-1を,より少ないビット数の符号なし整数unsigned charに変換する場合
変換後の値は,UCHAR_MAX+1で割った非負の剰りであると規定されているから
UCHAR_MAX==255の処理系では(unsigned char)-1==255となるべき

>>181
イヤじゃない書き方って
info[index].yyy[xxx]
のことか?
漏れ的にはポインタに[]はあんまり使いたくない
仮引数*hogeをhoge[]と書くのも気持ち悪い
0185デフォルトの名無しさんNGNG
> 符号なし整数はオーバーフローしない

そんな事が決まっていたっけ?

> UCHAR_MAX==255の処理系では(unsigned char)-1==255となるべき

unsigned char に変換する前の -1 の全ビットが立っている保証はあったっけ?

> info[index].yyy[xxx]
> のことか?

そう。

> 漏れ的にはポインタに[]はあんまり使いたくない

ならこう書け。
(info + index)->yyy + xxx

> 仮引数*hogeをhoge[]と書くのも気持ち悪い

int main(int argc, char **argv)
と書く人ですか?
まあいいけど。
0186デフォルトの名無しさんNGNG
> (info + index)->yyy + xxx

こうね。
*((info + index)->yyy + xxx)
0187デフォルトの名無しさんNGNG
>>185
> そんな事が決まっていたっけ?
少なくともJIS X 3010-1993では決まっていますが何か?
JIS X 3010-1993(ISO/IEC 9899:1990)
6.1.2.5 型 4段落目の中程から引用
  符号無しオペランドを含む計算は、決してオーバフローしない。
  すなわち、格納する符号無し整数型で表現できない結果が、その符号無し整数で
  表現しうる最大値より1だけ大きい数を法とする剰余とする。
0188デフォルトの名無しさんNGNG
>>185
> > 符号なし整数はオーバーフローしない
> そんな事が決まっていたっけ?
オーバーフローしたときの動作が決まってたはず。

> > UCHAR_MAX==255の処理系では(unsigned char)-1==255となるべき
> unsigned char に変換する前の -1 の全ビットが立っている保証はあったっけ?
ない。
0189デフォルトの名無しさんNGNG
>>187
ありがとう。
C99 では 6.2.5 Types の項 9 だね。
でも、訊いただけだから、何かと訊き返されても困るけど。
0190デフォルトの名無しさんNGNG
> > UCHAR_MAX==255の処理系では(unsigned char)-1==255となるべき
> unsigned char に変換する前の -1 の全ビットが立っている保証はあったっけ?

訊き方がまずかったかも。
符号付整数の負数を符号無し整数にキャストした時、どの負数がどの正数値に対応
すべきという規定はあったっけ?
0191デフォルトの名無しさんNGNG
>>185

-1のビットパターンには関係がない
-1を256で割った非負の剰りが255なだけ
0192184NGNG
ん,(unsigned char)0から1を減ずることはできないな
(unsigned char)0-1と書いても格上げが入るから
((int)(unsigned char)0)-((int)1)になるだけだ
0193デフォルトの名無しさんNGNG
なるほど
0194デフォルトの名無しさんNGNG
>>192
inf i = 0;
i--;
と言いたいわけか?
0195194NGNG
寝言言ってる。
unsigned char c = 0;
c--;
0196デフォルトの名無しさんNGNG
んー、あれ、ちょっと待てよ。
(unsigned char)0-(unsigned char)1
は、ずっと unsigned char のままで演算されないか?
0197デフォルトの名無しさんNGNG
C の事はここでは訊いてはいけないって本当ですか?
0198デフォルトの名無しさんNGNG
>>196
(unsigned char)((unsigned char)0-(unsigned char)1)
なら、そう実装しても構わない。
0199デフォルトの名無しさんNGNG
>>196
unsigned char c;
printf("%u\n", sizeof(c));
printf("%u\n", sizeof(c - c));
0200デフォルトの名無しさんNGNG
>>169
そもそも103はそのkazuってのがその時点で不明だから悩んでるんじゃないか?
話がループしてるぞ。
0201デフォルトの名無しさんNGNG
ディレクトリに対して読み込みモードでfopenすると成功するんですけど、
それから読み込みを行うのは安全ですか?
0202デフォルトの名無しさんNGNG
>>200
それについてはrealloc()が5回くらい出てるんだが、読んでないのか?
0203デフォルトの名無しさんNGNG
>>201
読めることは読めるだろうけど、得られたデータには何の保証もない。
0204デフォルトの名無しさんNGNG
>>203
安全ならそれでいいんです。
じゃあ大丈夫だってことですか?
0205デフォルトの名無しさんNGNG
>>204
何を安全とするか、何を大丈夫とするか、によって答えは変わる。
0206デフォルトの名無しさんNGNG
>>205
プログラムが異常終了したりしないかとか。
0207デフォルトの名無しさんNGNG
>>201
普通opendirじゃないの。ディレクトリもファイルの一種。
0208デフォルトの名無しさんNGNG
>>206
システムや処理系次第だろうな。
真っ当なシステムなら、openできた以上以上終了ってことは多分ないと思うが、
もちろん保証の限りではない。

POSIXなシステムでは、ディレクトリに対するfopen()は書き込みじゃなけりゃ
成功するように見える。
ttp://www.opengroup.org/onlinepubs/007908799/xsh/fopen.html
[EISDIR]
  The named file is a directory and mode requires write access.

ちなみにLinuxでは即EOFになった。
0209デフォルトの名無しさんNGNG
MAC だとフォルダ開けてしまい、読もうとした瞬間あぼーんされたりすると聞いた事あるが。
0210184NGNG
>>186
ワラタ
*((*(info + index)).yyy + xxx)

[]や->も使えば可読性が上がる場面では漏れも使ってるけどよ
たとえば冒頭の例のように*をちゃんと追うのは大事な基本だと思うから
ポインタで間接参照しているところはありのまま書いておきたいって
気持ちがあるわけよ

char s[2];
s[1] = '\0'; なんかだと
*(&s[0] + 1) = '\0'; がありのままだが
配列の実体に直接アクセスしているところはそう見せたい
extern char s[];
s[1] = '\0';
のような場面が脳裏をよぎるんだ

*argv[]も漏れの周りがそうしてるから合わせてるさ
あんまり使いたくないってのは
必ずしも本音と建て前が一致しないことがあるってことで
絶対使わないって意味じゃない
0211デフォルトの名無しさんNGNG
210 の言いたい事もわからないでもないけど、結局シンタックスシュガーを許容
できない頑固者としか思えないよ。
シンタックスシュガーが何の為にあるのか考えた方がいい。
もちろん、自分しか読まないようなソースであれば、その限りじゃないけど。
0212184NGNG
シンタックスシュガーは逆効果に気をつけて使うべきだろ
マクロをあんまり使いたくないのと同じだよ
0213デフォルトの名無しさんNGNG
(゚Д゚)ハァ?
0214184NGNG
[]や->は1重間接の*を隠すだけだろ
2重間接になってる所では却って邪魔になることがあると言いたい
0215デフォルトの名無しさんNGNG
何が邪魔になるのかよくわからないから例を挙げてはくれないか?
0216デフォルトの名無しさんNGNG
(*p)[n] = &(*q)->r;
*(*p + n) = &(**q).r;
まあ気分の問題ちゃそれまでなんだけどよ

>もちろん、自分しか読まないようなソースであれば、その限りじゃないけど。
こんなこと言われるのは心外だったりする
0217216=184NGNG
失礼,名乗るのを忘れた
0218デフォルトの名無しさんNGNG
主観満載な事を“使うべき”なんて言われてもねぇ
0219デフォルトの名無しさんNGNG
>>216
後者の方がよっぽどワケワカランに見えるけど?
0220デフォルトの名無しさんNGNG
>>202
ハァ? 頭悪すぎ。
169の内容と何も関係ないだろ。
0221デフォルトの名無しさんNGNG
>>218
可読性を主観以外の何だと言う気だ?
よもや自分だけ違うなんて言い出すまいな
それから漏れは「べき」と言ったか?
0222デフォルトの名無しさんNGNG
>>221
あんたが 「べき」 と言ったかどうかは知らないが、212 にはそう書いてある。
0223デフォルトの名無しさんNGNG
>>222
ああ,そいつは悪かった
確かに漏れが言った
逆効果なんかありえないと言う訳にもいかんが

>>219
漏れが組んでいる相手がそう言ったら当然考えるさ
人に読ませることを考えてないような言われ方が心外だと言っている
0224223=184NGNG
いかん,また名乗るのを忘れた
0225デフォルトの名無しさんNGNG
ポインタ(dat = *pointer)と配列(dat = dim[0])ってどっちがアクセス高速ですか?
0226デフォルトの名無しさんNGNG
>>225
実測しる
それしかない
0227デフォルトの名無しさんNGNG
まあ、お前ら落ち着けよ。
とりあえず、他人が読んで分かりやすいのが良いに決まってるんだが
その他人が読みやすいってのが、個人個人で違うから主観だって話でそ?
チームで開発してれば、その大多数が読みやすい形で書くのがベストであって
つまり、一番使ってるやつが多い形に合わせるのが自然だな。
自分のスタイルと変えて書くほうは大変だが。
0228デフォルトの名無しさんNGNG
>>225
ちなみに、VC6 は最適化レベルに関わらず、どちらも同じコードを吐く。
0229184NGNG
>>227
そうだな
人に例を要求しておいて自分は何も出さないまま煽るだけの
抽象論を相手に漏れも大人げなさすぎたよ
0230デフォルトの名無しさんNGNG
(*p)[n] = &(*q)->r;
*(*p + n) = &(**q).r;

この例を取って主観で言うけど、漏れは 1 つの塊に * が 2 つ以上あるのは
読みにくいと思う。
184 の主論は 「隠れた処理があるのはわかりづらい」 という事だと思うんだけど、
漏れは 「わかりきった処理は隠蔽された方が読みやすい」 と思う。
i < 0? -i: i と書くより abs(i) と書いた方が読みやすいのと同じ話じゃないかな。
0231184NGNG
**くらいでピーピー泣くなって
0232230NGNG
229 が、否定側も例を出してくれという話に読めたから書いたんだけど、
その反応がそれかい。
別に、読めないとは言ってないよ。
0233デフォルトの名無しさんNGNG
(*p)[n] で書けば済む話なのにわざわざ *(*p + n) とする理由が 231 なのかと
0234184NGNG
>>230で使っているのは漏れが出した例だ
わかりきった処理というが**を使っている場面では
*と**を使い分けるから下手な隠し方はない方がマシだと思う
0235184NGNG
>>233
逆だよ**に抵抗があるような足手まといに迎合して
わざわざ(*p)[n]と書きたくないと言っている
0236デフォルトの名無しさんNGNG
俺的には *(*p + n) つー表記の方が“態々”な感じだなぁ。
まぁ好きにしろや。
0237デフォルトの名無しさんNGNG
>>235
230 の最後の行もあんたが出した例か?

というか、184 が何故 [] や -> を 「わかりにくい」 としているの理由が分から
ないけど。
特に [] は、ポインタに対して配列的なアクセスをするという事を明示する。
*(p + n) も慣用句として覚えればそれほど見にくいわけではないけど、慣用句より
言語レベルの演算子である p[n] の方がずっと見やすいはずだという考えは間違いか?
0238デフォルトの名無しさんNGNG
> *と**を使い分けるから下手な隠し方はない方がマシだと思う

そんな事が必要な設計は間違っていると思う。
0239184NGNG
>>236
結局,主観って所でしか反論できなかったな

「C使いは**くらい使えろ」
これも主観で逃げとけや
0240236NGNG
>>239
反論してるように読めたか?
まぁ好きにしろや。
0241デフォルトの名無しさんNGNG
おまえらC#でもやっとけ
0242184NGNG
>>237よ,それは>>214で既出だ
だからabsが浮いたまでのこと

>>238よ,それは>231で既出だ(藁
0243184NGNG
>>236
すまん>>230と間違えたらしい,悪かった
0244デフォルトの名無しさんNGNG
>>242
> >>237よ,それは>>214で既出だ
[] や -> を使うとき、1重間接の * が隠れている事を意識する必要は無い。

> >>238よ,それは>231で既出だ(藁
238 が言いたい事が分かってないだろ。
と**を使い分ける、なんて事はすべきではない。
0245244NGNG
訂正。

> と**を使い分ける、なんて事はすべきではない。
*と**を使い分ける、なんて事はすべきではない。
0246デフォルトの名無しさんNGNG
もちつけ
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
0247デフォルトの名無しさんNGNG
  ___   ガスッ
 |___ミ      ギビシッ
   .||  ヾ ミ 、      グシャッ
   ∩_∧/ヾヽ
   | ,| ゚∀゚). .|  |;,      ゲシッ
  / ⌒二⊃=|  |∵.
 .O   ノ %`ー‐'⊂⌒ヽ  ゴショッ
   ) ) ) )~ ̄ ̄()__   )
  ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_(
0248184NGNG
>>244
だからよ,配列とポインタは違うんだちゅーのに
なんでそんなに同じと思いたがるかよ
char(*p)[Q];とchar **p;が同じだと思いこむアフォを量産し
char s[1];にextern char *s;で参照に逝くアフォを量産する
ある意味必要悪を何でそんなに必死に擁護せにゃならんのだ
初心者時代から*をなるべく[]と書こうとしていたツケが
*は読みにくいって後遺症になって回ってきてるだけだろ
0249デフォルトの名無しさんNGNG
>>248
そんな事言われても、配列に対して *(p + n) というアクセスもできるんですが・・・。
0250184NGNG
疲れた
そろそろ落ちたいので
反論したい者は手短に頼む
0251デフォルトの名無しさんNGNG
>>184 の可読性の基準は自分が読みやすいかどうかなんですか?
0252デフォルトの名無しさんNGNG
> char(*p)[Q];とchar **p;が同じだと思いこむアフォを量産し
> char s[1];にextern char *s;で参照に逝くアフォを量産する

関係無い話を持ってくるなよ。
メモリ領域がどう確保されているかと、*(p + n) と p[n] のどちらが見やすいかは
全く別の話。
0253デフォルトの名無しさんNGNG
[] は配列演算子ではなく添字演算子であり、立派なポインタ演算なんだが、
どうしてこれを使うだけで配列とポインタの混同という話になるんだ?
0254184NGNG
>>252
いいや,関係ある
初心者時代から*をなるべく[]と書こうとしていたツケが
*は読みにくいって後遺症になって回ってきてるだけだろ

ループのようだな
0255デフォルトの名無しさんNGNG
で、なぜ * を [] と書いてはダメなの?
0256184NGNG
>>255
goto 248;
0257デフォルトの名無しさんNGNG
単に、タイプ数が少ない方が嬉しい。
0258デフォルトの名無しさんNGNG
まあ、184 の世界では [] 禁止と言う事で終了しとこう。
0259デフォルトの名無しさんNGNG
「ポインタと配列は違う」という議論があるのは当然だけど、
184 は頭が硬すぎというか、一緒に仕事をしたくないと思う。
0260184NGNG
>>258
あんたには言いたいことが伝わらなかったようだが
漏れももう繰り返すのはやめる
0261デフォルトの名無しさんNGNG
頭が硬いというかアフォだね
0262236NGNG
うーん、俺今まで文字列へのポインタを char * と書いてた…
これ全部 char (*)[] に変更するのはホネだなぁ。
0263デフォルトの名無しさんNGNG
>>260
あんたがどうフォローしようが、248 を撤回しない限り 258 の結論は変わらないよ。
248 を、「[] を使ってはいけない」 以外にどう受け取れというんだ?
0264デフォルトの名無しさんNGNG
>>262
待て待て待て待て。
char ** ならともかく、あるいは文字列の先頭へのポインタならともかく、
文字列へのポインタが char * とはどういう事だ?
0265デフォルトの名無しさんNGNG
ああ、分かったぞ
>>184 は * と [] を使い分けることで
漏れは配列とポインタの違いがちゃんと分かってるぜ!がっはっは!
ということを誇示したい訳か

  真 性 D Q N で す な (ワラ
0266デフォルトの名無しさんNGNG
そこまでは言わないが、とりあえず 259 に一票入れとく。
0267デフォルトの名無しさんNGNG
intの変数をcharって言うか文字列に変換したいんですけど
どうすれば良いですか?

int a=123;
として、これを”123”という文字列に変換したいのですが。
0268名無し@沢村NGNG
>>267
↑ま、まさかプログラマーだったりして…
0269 ◆F52DmOxJlc NGNG
>>267
itoa();




と、マジレスする前にボケてみる。
0270名無し@沢村NGNG
>>265
ヌヒよ、おれは**となる理解できんが、*と[]くらいはわかるぞ。
つまりだな、
int Count[64];も、
int *Count;
もまったく同じく、Count=(int*)malloc(size);というふうに扱えるということだ。
だから配列とポインタは同じといわれていると思うのよ。
どうかな?俺は中級者といえるかい?
0271デフォルトの名無しさんNGNG
>>270
全然言えない。

272 :名無し@沢村 :02/12/19 20:59

釣れた(藁

273 :デフォルトの名無しさん :02/12/19 21:02

ぎゃー、釣られたー。
0272デフォルトの名無しさんNGNG
うむ
0273能無し@沢村NGNG
攣れた(藁
0274名無し@沢村NGNG
>>271
ヌヒよ、ふふふ俺はもっと高度な2次元配列も扱えるぞ。
int Count[10][64];の場合は、
Count[10]=(int*)malloc(size);というふうにできるということだ。
これはかなり高度だぞ。
0275名無し@沢村NGNG
↑これは、
int *Count[10];
Count[10]=(int*)malloc(size);というふうにもできるということだ。
0276デフォルトの名無しさんNGNG
先生!沢村に反応してもいいんですか?
無視するんですか?でも、反応してほしがってますよ。
いいんですね?後悔しても知りませんよ?
公開なんていってませんよ、だれがチャックを開けるって。
もう先生たらエッティ♥ セクハラで訴えちゃうぞ〜♪
でも先生ならいいかも(あはぁん
もう反応していいかなんて未定義です、NULLです
ヌルポ。
0277デフォルトの名無しさんNGNG
ゆっとくけど、レスするヤツが悪いよ。
0278デフォルトの名無しさんNGNG
レスしてー(;´Д`)ハァハァ[
でも、荒れるー。つー(以下略)
0279デフォルトの名無しさんNGNG
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>276

0280デフォルトの名無しさんNGNG
つまらんネタレスばかりしやがってウザイんだよ!!ええっ!?
      ∧_∧          _ _     .'  , .. .∧_∧
     ( ´_ゝ`)   _ .- ― .= ̄  ̄`:, .∴ '     (    ) ←>名無し@沢村
    /     '' ̄      __ ヽ´=', ・,‘ r⌒> _/ /
   / /\   / ̄\-―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒\
 _| ̄ ̄ \ /  ヽ \_               |  /  ノ |
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)              , ー'  /´ヾ_ノ
  ||\            \          / ,  ノ
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄          / / /
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||          / / ,'
  ||  ||           ||       /  /|  |
                       !、_/ /   〉
                           |_/
0281デフォルトの名無しさんNGNG
つーか 276、コピペったって貼るたびに殴られるのはやーよ。
せめて最後の一行はカットして。
0282デフォルトの名無しさんNGNG
ぶぁっはははははーーーっ!!
このスレにはまだ沢村の相手をする奴がいたのか!?
ぶぁっはははははーーーっ!!
ぶぁっはははははーーーっ!!
0283デフォルトの名無しさんNGNG
>>282==沢村
0284デフォルトの名無しさんNGNG
お前ら!!
もょもとって知ってるか?
0285デフォルトの名無しさんNGNG
何を嬉しそうに。
0286デフォルトの名無しさんNGNG
>>198
(unsigned char)((unsigned char)0-(unsigned char)1)
にしても、コンパイラは定数部分をint型にして演算する事が多いので
(規格でもint型だったような気もするけど、間違ってるかも…)
(unsigned char)(-1)
と同じ結果になる
0287デフォルトの名無しさんNGNG
C言語でテトリス作りたいんだけどlocateとかgraphic関数とか使えないから
面倒臭いんだよ。なんとかしてくれ
0288デフォルトの名無しさんNGNG
面倒臭いなら諦めれば?
0289286NGNG
頼むよ
簡単なサンプルでいいからうpしてくれよ
0290デフォルトの名無しさんNGNG
ここはプログラム作ってスレではない。


ここはと言うより、そういうスレは無いんだよ厨房ちゃん
0291286NGNG
いや、だから全部作れってわけじゃ無いんだよ
グラフィック関数使った奴はもう出来たんだけど
テキストオンリーのやつがどうしてもわからないんだ
スクロールとか辺り判定とか
0292デフォルトの名無しさんNGNG
とんでもねぇ奴もいたもんだなw
0293デフォルトの名無しさんNGNG
どう弁解しようと 287 + 289 は 「全部作れ」 以外の何物でもない
0294デフォルトの名無しさんNGNG
出された課題が自分の手に負えないから何とかしろと言うならまだ分かる (でもスレ違い
だけど) が、自分で作りたいというのに人に作ってもらってどうするつもりなんだ?
0295デフォルトの名無しさんNGNG
ちなみに、ぶっちゃけた話、C 標準ではテキストテトリスは作れない。
標準出力は 「ストリーム」 であり 「画面」 ではないからだ。
0296デフォルトの名無しさんNGNG
プリンターにプリントアウトしながら
テキストテトリスをやるのが本物の漢だ
0297291NGNG
>>293
いや、あんたがどう誤解しようと全部作れとは言ってないわけで
その作り方が知りたいだけですよ。その辺の小学生じゃないんだから
ソース教えてもらったからって丸パクリするわけじゃないし
0298291NGNG
>>295
あ、そうなの?じゃいいや
悪いね
0299デフォルトの名無しさんNGNG
>>297
誰かこいつ頃せ
0300デフォルトの名無しさんNGNG
291より過剰に反応してるヤツの方がウザイ。教えるか無視するか
どっちかにしとけ。
0301デフォルトの名無しさんNGNG
>>300
ここは教えて君マンセーなスレだったのか?
0302デフォルトの名無しさんNGNG
虫四郎
0303SタソファソNGNG
C言語じゃなくてJavaScriptならいいの知ってたのに・・・
0304デフォルトの名無しさんNGNG
ちぃ言語きぼんぬ
0305デフォルトの名無しさんNGNG
>>284
知ってる!!
0306デフォルトの名無しさんNGNG
何を嬉しそうに。
0307236NGNG
>>264
文字列 ≡ char[] なんだが…
少しだけ >>184 の気持ちが判った気がする。
0308デフォルトの名無しさんNGNG
教えてください
X2乗+y2乗+z2乗→最小

6x+3y+4z=61
をc言語でやるとどうなりますか??
0309デフォルトの名無しさんNGNG
>>308
…?
よく判らんけど、アルゴリズムを訊いてるの?
0310デフォルトの名無しさんNGNG
>>269
結局誰もマジレスしなかったね。
0311デフォルトの名無しさんNGNG
>>308
マルチだし、意味もわからない。
0312デフォルトの名無しさんNGNG
すみません
>308はちょっと頭がおかしいのです。
あの計算をするプログラムを聞いているのだと思います
0313デフォルトの名無しさんNGNG
もしかして、
308==312では?
0314デフォルトの名無しさんNGNG
モチロンソウヨ
0315デフォルトの名無しさんNGNG
>>313
まあ、どっちでもヨいんではないかと。
>>312もいみわかんないし。・・・ドノケイサンナンダロウ・・・
0316デフォルトの名無しさんNGNG
オリジナルのMassageBoxの出し方を教えてください。
0317デフォルトの名無しさんNGNG
void MessageBox(const char* message)
{
 int c;
 printf("オリジナルのMessageBox: %s\nHit Enter", message);
 while ((c = getc()) != EOF && c != '\n');
}
0318デフォルトの名無しさんNGNG
ソウアルカ・・・
ジツハ、ワタシモドレヲ
ケイサンシテイイカ
ワカラナイノヨ
0319デフォルトの名無しさんNGNG
すみません、
#include <conio>の、conioってなんですか?
0320デフォルトの名無しさんNGNG
conio.hじゃなくて?

コンソール I/O のことだと思う。
0321319NGNG
.hを付けると、エラーがでるのですが、
同じものなのでしょうか?
0322319NGNG
↑ getch() 使っていました。すみません。わかりました。
0323デフォルトの名無しさんNGNG
アルゴマンコ参上!
032460cm浮き上がるストレートNGNG
>>308
こんな感じですか?

>X2乗+y2乗+z2乗→最小
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1040370788&res=2

>6x+3y+4z=61
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1040370788&res=3
0325デフォルトの名無しさんNGNG
2ちゃんねる VS TIME・・・
その戦いの歴史は、まさに近代兵器の見本市だった
田代砲にはじまる数々のスクリプト兵器を経て、到達した97式アラファトマシンガン
これはまさに最終兵器として、猛威を振るった
だがしかし、ついにTIMEはこれらの兵器全てを完膚無きまでに無効とする
パプリカの設置に成功した
武器を奪われた我々に残されたもの ・・・それはチョップ
手動で一撃一撃叩き込むチョップ。地味で威力も極限まで小さなチョップ
ただそれだけと、なってしまった
だがしかし、チョップといえども決してバカには出来ないということを!
そしてこのような手段にまで出たTIMEを今一度
我が2ちゃんねらーの総意を込めたチョップを以て、叩き壊したい!
有志たちの参戦を、ひとりでも多くの戦士の挑戦を待つ!!!

「TIME」誌2002年の顔にアラファト議長を! 5
http://live.2ch.net/test/read.cgi/festival/1040349157/
0326デフォルトの名無しさんNGNG
K&Rサンプルソースを打ち込んでみたのですが、エラーの原因がわかりません。

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

#define MAXLINES 5000

char *lineptr[MAXLINES];

int readlines(char *lineptr[],int nlines);
void writelines(char *lineptr[],int nlines);
void qsort(void *lineptr[],int left,int right,int (*comp)(void *,void *));
int numcmp(char *,char *);

main(int argc,char *argv[]){
int nlines; /* 読み込まれた行の数 */
int numeric = 0; /* 数値ソートならが1 */

0327326NGNG
続きです

if(argc > 1 && strcmp(argv[1],"-n") == 0)
numeric = 1;
if((nlines = readlines(lineptr,MAXLINES)) >= 0){
qsort((void **) lineptr , 0 , nlines-1 , (int (*)(void *,void *))(numeric ? numcmp:strcmp) );<<ここでエラーらしい
writelines(lineptr,nlines);
return 0;
}else{
printf("input too big to sort\n");
return 1;
}
}

エラーメッセージは↓
20: 2 つのオペランドは同じ型に評価されなければならない(関数 main )

0328デフォルトの名無しさんNGNG
エラーメッセージを貼ってよ。
0329デフォルトの名無しさんNGNG
>>326
エラーメッセージがわからなければ原因がわかりません。
0330328NGNG
おっと。

0331デフォルトの名無しさんNGNG
ワラタ
0332デフォルトの名無しさんNGNG
続きがあるならあると言えw


0333デフォルトの名無しさんNGNG
>>327
そのものズバリだと思うが。
0334デフォルトの名無しさんNGNG
自分で解ってんじゃ
0335328NGNG
三項演算子の二番目と三番目の型が違うってことか?
0336デフォルトの名無しさんNGNG
>>324
それは恐らく違う、思うに問は
6x+3y+4z-61=0の条件の下でのx^2+y^2+z^2の最小値
0337デフォルトの名無しさんNGNG
セミコロンが全角とか…
0338デフォルトの名無しさんNGNG
ブラックジャックのプログラムを組んだらエラーは出ないけど点数の集計がおかしい
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define CMAX 52
struct input {
int num[CMAX];
int n;
} ;
int comp(void);
int getcard(struct input *inp);
void print(struct input *inp);
int calc(struct input *inp);
#define randmize() srand(time(NULL))
char *card[]={"0", "A", "2", "3", "4", "5", "6",
"7", "8", "9","10", "J", "Q", "K"};
int ncard[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
main()
{
int x, c, h;
char in[256];
struct input inp = {{0},0};
randmize();
printf("ブラックジャック\n");
c=comp();
x = getcard(&inp);
printf("'%s'を引きました。もう1枚引きますか?(y/n)\n", card[x]);

続くよ
0339デフォルトの名無しさんNGNG
while (inp.n < CMAX && scanf("%s", in) == 1) {
if (strcmp(in, "y") == 0) {
x = getcard(&inp);
printf("'%s'を引きました。もう1枚引きますか?(y/n)\n", card[x]);
print(&inp);
}
else if (strcmp(in, "n") == 0)
break;
else
printf("yかnのどちらかを入力してください\n");
}
h = calc(&inp);
printf("コンピュータは%d点です。あなたは%d点です。\n", c, h);
if ((c<=21 && h>21)|| (c<=21 && c>h) )
printf("コンピュータの勝ち!\n");
else if ((h<=21 && c>21) || (h<=21 && h>c))
printf("あなたの勝ち!\n");
else
printf("引き分け\n");

return 0;
}

int comp(void)
{
return rand()%8+16;
}

まだ
0340デフォルトの名無しさんNGNG
int numcmp(char *,char *);
これを
int numcmp(const char *, const char *);
にすればいいんんかな?
0341デフォルトの名無しさんNGNG
int getcard(struct input *inp)
{
int x;
x = rand() % 13 + 1;
inp->num[inp->n] = x;
(inp->n)++;
return x;
}
void print(struct input *inp)
{
int i;
printf("いままでに引いたカードは ");
for (i=0; i<inp->n; i++)
printf(" %s", card[inp->num[i]]);
printf(" です\n");
}
int calc(struct input *inp)
{
int i, n1=0, sum=0;
for (i=0; i<inp->n; i++) {
sum = sum + ncard[inp-<num[i]];
if (inp->num[i] == 1)
n1++;
}
while (n1-- > 0)
if (sum <= (21-10))
sum = sum + 10;
return sum;
} 終わり。なんで?
0342デフォルトの名無しさんNGNG
普通に動かないか?
無駄は多いが
0343デフォルトの名無しさんNGNG
何がどうおかしいのか書けよ
0344デフォルトの名無しさんNGNG
>>341
なんでって言われても。計算方法が違うんだろ。
0345デフォルトの名無しさんNGNG
sum = sum + ncard[inp-<num[i]];

[inp-<num[i]];
   ~~~~
これで集計が出たら神です
0346デフォルトの名無しさんNGNG
>sum = sum + ncard[inp-<num[i]];
ここを
sum=sum+ncard[inp->num[i]];
に書き直す

0347341NGNG
うぉ、早いな
やってみよう
0348デフォルトの名無しさんNGNG
スイマセン!!
C++Builderでホームページを作るにはどうしたらいいですか!?
0349デフォルトの名無しさんNGNG
あっ間違えました!
ボーランドっていうやつです!
0350デフォルトの名無しさんNGNG
>>348
#include <stdio.h>
int main()
{
printf("Content-Type:text/html\n\n")
/* ここからprintfの嵐 */

return 0;
}
0351デフォルトの名無しさんNGNG
>>348
int main()
{
    printf("<html>\n");
    printf("<body>\n");
    printf("</body>\n");
    printf("</html>\n");
0352デフォルトの名無しさんNGNG
ネタにマジレスが美しい。
0353デフォルトの名無しさんNGNG
使い古されたネタだな
0354デフォルトの名無しさんNGNG
「!」が多いと厨って感じ。
0355デフォルトの名無しさんNGNG
>>353
質問が?回答が?
0356デフォルトの名無しさんNGNG
>>355
質問
0357デフォルトの名無しさんNGNG
回答もだろ…w
0358デフォルトの名無しさんNGNG
暴乱怒はしらないけど、VC++ならHTMLエディタとしての機能があったような。
0359デフォルトの名無しさんNGNG
>>348いい加減ぼーらんど使うのやめればいいのに
0360デフォルトの名無しさんNGNG
>>350printf()関数セミコロンつけ忘れと思われ
0361350NGNG
(;_;)(;_;)(;_;)(;_;)(;_;)
0362デフォルトの名無しさんNGNG
もう>>350さんったらおっちょこちょいね♪
0363デフォルトの名無しさんNGNG
>>358
キーワードハイライトだけはやってくれるね。

ちなみにテンプレート
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Developer Studio">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=x-sjis">
<TITLE>ドキュメント タイトル</TITLE>
</HEAD>
<BODY>

<!-- ここに HTML を挿入してください -->

</BODY>
</HTML>
0364デフォルトの名無しさんNGNG
>>316
もしかしたら存在するかもしれない、と思ってググったら本当にあったよ!
http://members.jcom.home.ne.jp/warna-warni/AB-10.html
0365デフォルトの名無しさんNGNG
http://www.vector.co.jp/soft/data/writing/se001951.html

vectorってこんなものまで登録されるのね
0366 ◆F52DmOxJlc NGNG
>>364
ワロタ
0367名無し@沢村NGNG
>>348
C++Builder付属のテキストエディタでホームページのソースを書いて.html拡張子をつけて保存すればいいよ。
C++Builder付属のテキストエディタでなくてもテキストエディタなら何でもいいよ。メモ帳でもいいんだよ!ホントだよ!!
0368デフォルトの名無しさんNGNG
愚問ですがポインタに関することで
int a;
printf("%p",&a);
とするのと
int *a;
printf("%p",&a);
とするのでは違いはあるのでしょうか?できたら*や&の概念について
教えて欲しいです
厨房でスマソ
0369デフォルトの名無しさんNGNG
違いはないよ。どちらもaのポインタを見ている。

ただ、
int a;
と
int *a;
は全く型が違う!とだけ言っておこう。
0370デフォルトの名無しさんNGNG
ポインタは、初心者本にあるようなintに*や&をつけて試してるだけでは
おそらく理解できないよ。余計混乱するだけ。

構造体を動的に確保したり、リストを作ったりしてれば自然と分かる。
0371368NGNG
う〜ん やっぱりポインタは難しい
プログラム本格的に勉強するんだったら学校通った方が
いいんでしょうかね〜?
0372デフォルトの名無しさんNGNG
ランダムな数列
1,3,6,7,9....
を配列aに保存したいとして、
1. 配列を0で初期化して1,3,6,7,9番目の要素を1にセットする
2. 0番目の要素に1、1番目の要素に3、3番目の要素に6…と入れる

1.だとある数字が保存されているかどうかa[i]が1かどうかを調べれば分かるが、
 保存された数字をとりだしたいときは配列の先頭から調べなければならない
2.だと配列の先頭から保存された数字を簡単に取り出せるが、
 ある数字が保存されているかどうかは配列の先頭から調べなければならない

で、1.と2.の両方の配列を用意しようと思うのですが、もっと一般的な常套手段はありますか?

0373デフォルトの名無しさんNGNG
>>371
独学で十分だと思うが・・・
ちなみに、
*の付いた変数は、変数のアドレスを格納する変数。
&の付いた変数は、&の付いている変数自身のアドレス。
0374デフォルトの名無しさんNGNG
>>371
それはない。
0375デフォルトの名無しさんNGNG
ポインタを宣言するときの
int *a;
とポインタの参照先を表す
*a = ....
は混乱するな。
0376デフォルトの名無しさんNGNG
するか!
0377368NGNG
ん〜 やっぱりよくわからん
C言語勉強するんだったらどういう勉強方法が一番いいですか?
0378デフォルトの名無しさんNGNG
>>375
慣れてないとナ。
0379デフォルトの名無しさんNGNG
とにかく、くむ、くむ、くむ
ひたすら、くむ、くむ、くむ
はくまで、くむ、くむ、くむ
0380デフォルトの名無しさんNGNG
ポインタで挫折する奴が多いかも・・・
0381デフォルトの名無しさんNGNG
ポインタ完全制覇とかは?
読んでないけど。

で、例題を応用してなんか作ってみる。

0382デフォルトの名無しさんNGNG
>>377
試行錯誤

ポインタが最初の壁だよね。
0383368NGNG
なるほどw
んで
int a;
int *b;
を使ってaのアドレスをbに格納するには
どうしたらいいですか?
0384デフォルトの名無しさんNGNG
>>377
俺は、柴田望洋著の「秘伝C言語問答 ポインタ編」を読んで、
ポインタを理解したが・・・
0385デフォルトの名無しさんNGNG
>>372
1. を少しいじくって、要素に1をセットするのではなく、次の数字を入れる
ってぇのはどう?
0386デフォルトの名無しさんNGNG
>>383
bは変数のアドレスを格納する変数だから、
int *b = &a
&が付いている変数(a)は、その変数(a)のアドレスを意味する。
0387デフォルトの名無しさんNGNG
アセンブラからCに入ったから
ポインタでは挫折しなかった。

今考えたら幸せな人生だったな。
0388デフォルトの名無しさんNGNG
>>387
そういえば、ポインタで挫折する奴が多いんだよな。
0389368NGNG
ってことはbを宣言してからbにaを代入する式を書く場合は
int a;
int *b;
b=&a;
ってなカンジですか?
0390デフォルトの名無しさんNGNG
>>389
その通り!!
0391デフォルトの名無しさんNGNG
つーか、モノつくってりゃ、ポインタがナンタルカはわからなくても、使い方
は理解できるようになる。理解はその後でいいと思うけど。
0392368NGNG
このときに*b=&aにしちゃうとエラー出ますよね?
これってのはどういう事なんですか?
0393デフォルトの名無しさんNGNG
>>391
理解してからモノ作り始めた方が、挫折する確立が
低くなるのでは?(そうとも限らないかな??)
0394デフォルトの名無しさんNGNG
ポインタのどこが難しいのかが分からん。
凡人の考えが理解できない天才の悩み。
0395デフォルトの名無しさんNGNG
ポインタ=変数をグローバル変数みたいに扱う機能
ってことでいいんですか?
0396デフォルトの名無しさんNGNG
>>392
変数名の前に&をつけるとその変数のアドレスになる。
また、ポインタの前に*をつけるとそのポインタが指し示す変数(とは限らんが)の値になる。
で、君はなにをやろうとしたのかな?
0397デフォルトの名無しさんNGNG
>>395
違うかも・・・
0398デフォルトの名無しさんNGNG
>>395
ポインタ(pointer)は変数のアドレスを示す変数。
0399368NGNG
>>396
int *b;
って宣言したらそのまま*b自体を変数として
使わなきゃいけないのかぁと思いまして
0400デフォルトの名無しさんNGNG
俺はCの演習書の例題みたいなのやってたら自然に見についたなぁ。
いま思うとなんでこんなややこしいことすんなり頭に入ったんだろ?って
すごい不思議だ。
0401デフォルトの名無しさんNGNG
>>399
int*型(intのポインタ型)の変数bを宣言したといえば分かる?
0402デフォルトの名無しさんNGNG
ココは「ポインタを自然に理解した」ことを自慢するスレじゃないぞ...
0403デフォルトの名無しさんNGNG
>>392
初期化以外に*を変数に付けると、間接参照の意味になる。
例えば、
int a = 10 aに10を格納
int *b = &a bにaのアドレスを入れる
int c = *b bに格納されているアドレス(a)に間接的にアクセスし
       aに格納されている値をcに代入
したがって、cに格納される値は、aに格納されている値、10。
0404368NGNG
なるほど!
int型で*bを宣言するんじゃなくて
int*型でbを宣言するって事か!!
0405デフォルトの名無しさんNGNG
>>404
その通り!!
0406368NGNG
勉強になりました!!
なんとなくポインタの概念が分かったような気がします
0407デフォルトの名無しさんNGNG
気のせい
0408デフォルトの名無しさんNGNG
char* str;
char *str;
って何か違いあるのですか?

あと、ポインタってやっぱり必要なの?
0409デフォルトの名無しさんNGNG
char* str;
だろうと
char *str;
だろうと
char * str;
だろうと
char
*
str
;
だろうと同じこと。
あと、それなりのプログラム書こうと思ったらポインタは必須。
0410デフォルトの名無しさんNGNG
>>409
ありがとうございます。
0411名無し@沢村NGNG
>>404
>int型で*bを宣言するんじゃなくて
>int*型でbを宣言するって事か!!

それはいえる。*bをbのように扱うとintから(int *)への変換ができませんというエラーが出るのがその証拠だよ。
0412名無し@沢村NGNG
>>404
ただ、int(*b)とした場合はbはint型になるよ。
0413デフォルトの名無しさんNGNG
>>371
お前さんみたいなのがいるからうちは儲かるんだよ。
0414バカNGNG
くだんないことですいません。
スタックと配列の違いってなんですかね〜?
0415デフォルトの名無しさんNGNG
>intから(int *)への変換ができませんというエラーが出る
それはC++だろう

>int(*b)とした場合はbはint型になる
そんなわけがない
0416デフォルトの名無しさんNGNG
>>414
小麦と麺のような違い
0417デフォルトの名無しさんNGNG
>>414
何のことかよく分からんが
スタックはFirst In Last Outなデータ構造で
配列はランダムアクセスな奴じゃないか

それとも記憶クラスとかの話か
それだと比較対象が変な気がするが
0418デフォルトの名無しさんNGNG
>>417
普通、Last In First Outと言わないか?LIFO
0419デフォルトの名無しさんNGNG
>>418
俺もそのツッコミしようとしたが検索するとどっちも相当数引っかかるのでやめた。 
0420バカNGNG
どうもです。なんとなくわかりました
0421デフォルトの名無しさんNGNG
>>418
そうか ? FIFO と対比するために、おれも FILO と言うよ。
0422417NGNG
うーむおかしいな、ずっとFILOだと思っていたんだが
ちょっと見た手持ちの本もLIFOになってる。
俺は異世界に紛れ込んで来てしまったのか?
0423デフォルトの名無しさんNGNG
普通はLIFOだろ。うちの英和辞典には簿記用語としてだがFIFO⇔LIFOと書いてある。
0424デフォルトの名無しさんNGNG
LIFOだろ…
0425デフォルトの名無しさんNGNG
数式文字列を解析するロジックを教えてください。

answer = expr("1 + ( 2 + 3 * 4 )");

trace(answer == 15);

こんなかんじで・・とりあえず変数とか関数は結構です。
0426デフォルトの名無しさんNGNG
漏れ、最近まで、

スタックは頭から入って頭から出ていくんだから、FIFO。
キューは尻から入って頭から出ていくんだから、LIFO。

だと勘違いしてた。
0427417NGNG
うーむだめだ。ずいぶん前にPC98関係の何かで見たと思うのだが見つからない。
ハードウェアの本はFIFOがメインだし、
と思ったら80x86/80x87ファミリーテクニカルハンドブックという本に
「このようなスタック操作はLIFOまたはFILOと呼ばれています。」という記述を発見

終了
0428デフォルトの名無しさんNGNG
>>425
「四則演算 インタプリタ」で google すれ
セオリー通りに作るなら、
字句解析、再帰下降型構文解析、インタプリタ実行
の三段階。
0429デフォルトの名無しさんNGNG
お手軽なのは、逆ポーランド記法。
0430デフォルトの名無しさんNGNG
>>428
> 「四則演算 インタプリタ」で google すれ
>>429
> お手軽なのは、逆ポーランド記法。
おお そんなものがあるのですね
言葉すら知らなかった厨卒プログラマでした・・・
0431デフォルトの名無しさんNGNG
>>427
そこまで分かっていながら何を悩んでいるのだ。キミは間違ってないぞ。
終了してしまう前にこのへんでも眺めて整理すれ。

スタック == LIFO (FILO)
http://www.atmarkit.co.jp/icd/root/56/5783656.html

キュー == FIFO (LILO)
http://www.atmarkit.co.jp/icd/root/43/67542643.html
0432デフォルトの名無しさんNGNG
LInux LOader?
0433JPL ◆M2sbYPnTcE NGNG
#if 0はコメントになりえるか。
0434デフォルトの名無しさんNGNG
int RingNum(int base,int off,int min,int max)
{return((base+off-(max<min ? min^=max^=min^=max:min)<0 ?
(max-min+1)-(min-base-off)%(max-min+1):base+off-min)%
(max-min+1)+min);}
リングナンバーを無理矢理1行にしてみたっす(既出っぽくてすいません)
base:開始点off:移動距離ね
minmaxは大きさ比較してスワップ、offにmax-min+1以上入れても
だいじょぶっす・・・たぶん
バグありますかね?
0435434NGNG
return((base+off-((...?...)...?...:base+off-min)...;
を注目するとbase+offの所ら辺がもっと突っ込めるかな?
0436434NGNG
いやおかしいぞbaseもoffも消えたら定数じゃんか!?
0437デフォルトの名無しさんNGNG
リングナンバーって何ぞや?
0438434NGNG
return((base+off-(...)<0 ?
ああここで区切りだった
なんかもっと縮められないかな?

0439434NGNG
>>437
正式名称知らないっすけどmin=2,max=5だったら
base+off=
0,1,2,3,4,5,6,7,8,9,10,11,12,13,...だと
4,5,2,3,4,5,2,3,4,5, 2, 3, 4, 5,...ってかんじ
循環数ってゆうのかな?プログラム的にはよく使うでしょ
0440デフォルトの名無しさんNGNG
>>434
base+offの2つに分ける意味は?
int RingNum(int base_off,int min,int max); /* これでも同じでは? */
0441434NGNG
>>439
書き忘れたけど負の方もつながってるねんで

どうでもいいけど
マウスがいかれてキーボードだけで打つのってかなりしんどいんですが...
0442434NGNG
>>440
同じだけどbaseは現在位置offは移動距離とゆうのを
はっきりさせたいんすよ、まあ呼び出し元で
n=RingNum(base+off,min,max);とやってもいいんですが、
0443434NGNG
n=RingNum(base+off,min,max);の方が良く思えてきた...
じゃあこうです
int RingNum(int num,int min,int max)
{return((num-(max<min ? min^=max^=min^=max:min)<0 ?
(max-min+1)-(min-num)%(max-min+1):num-min)%
(max-min+1)+min);}
ああこの方が見通しいいですね
(num-MIN<0 ? VAL-(MIN-num)%VAL:num-MIN)%VAL+MIN;
//MAX,MIN:比較スワップ済み
//VAL=(MAX-MIN+1)
複数行で書いたのとほぼ同じになりますた
0444434NGNG
負の入った剰余ってちゃんと定義されてるのかな?
気持ち悪くて使わないのですが・・・
使っても問題無さそうでも気持ち悪いんすよ
0445デフォルトの名無しさんNGNG
>>444
ごちゃごちゃ抜かさんとコード書いて検証すれば良かろう。
0446デフォルトの名無しさんNGNG
あのAAを呼び寄せるスレですか?
0447デフォルトの名無しさんNGNG
#include <stdio.h>
#define N 0
int RingNum(int num,int min,int max){
return((num-(max<min ? min^=max^=min^=max:min)<0 ?
(max-min+1)-(min-num)%(max-min+1):num-min)%
(max-min+1)+min);
}

main(){
for(int i=-5; i<5; i++)
printf("%d",RingNum(N+i,2,5));
return 0;
}

で
3452345234
でした。
0448デフォルトの名無しさんNGNG
strstrの第二引数に空文字列を与えた場合に第一引数の値がそのまま返るというのは仕様で決められていますか?
0449デフォルトの名無しさんNGNG
はい
0450デフォルトの名無しさんNGNG
>>448
私へのレスですよね??
サンクスです。
0451デフォルトの名無しさんNGNG
>>60cm浮き上がるストレートサンクス
とりあえず。やってみます。
0452デフォルトの名無しさんNGNG
>>445
出来るに互換性のあると限るまいて

>>444
ISO9899に(a/b)*b+a%b==aとある
0453デフォルトの名無しさんNGNG
>>336
そうです。
それで、やるとどうなりますか??
オネガイシマス
0454デフォルトの名無しさんNGNG
C言語でwindowsで動くのGUIアプリを作りたいんですが
どのソフトを使えばいいんでしょうか?
0455デフォルトの名無しさんNGNG
>>453
他のスレで答え出てるぞ
0456デフォルトの名無しさんNGNG
数学板か・・・
0457デフォルトの名無しさんNGNG
>>454
Cのコンパイラ
0458デフォルトの名無しさんNGNG
>>454
実は無い。Windowsでは全ての言語はBASICにトランスレートしてからコンパイルされる。
0459名無し@沢村NGNG
>>441
>マウスがいかれてキーボードだけで打つのってかなりしんどいんですが...

マウスくらい買え!!
0460デフォルトの名無しさんNGNG
それはあなたがGUIに魂を惹かれたからです

偉い人にはエディタにマウスなんて入らないことがわからんのですよ

正直俺はキーボードだけでほとんどの作業をやります
0461デフォルトの名無しさんNGNG
最近、キーボードで文字を打つのがおっくうになってきた。
過去の遺産をコピペして自作リファクターかけてお終い
ってパターンで仕事が済むようになってきたからかな。
0462デフォルトの名無しさんNGNG
最近、
マウスまで手をのばすのが面倒になってきた・・・

お  い  ら  だ  け  で  す  か  ?
0463デフォルトの名無しさんNGNG
名無し@沢村 の発言

> 基本的に本は読まないポリシーだが、
> ちなみにそれはどこの出版社から出ているのですか?著者は誰ですか?いくらですか?


プログラマに向いてない今すぐやめろ。
0464デフォルトの名無しさんNGNG
>>463
いや、「人間に向いてない今すぐやめろ」にすべきだ。
0465デフォルトの名無しさんNGNG
>>462
漏れは前からそうです。
マウス使うぐらいなら、ノートのタッチパッド使います。
普段は、IBMのスペースセーバーキーボード。
0466 ◆F52DmOxJlc NGNG
>>462
>>465
同意。
0467デフォルトの名無しさんNGNG
最近はキーボードだけで操作ができないアプリは
(たとえそれがGUIでも)駄目なんじゃないかと思い始めました
0468デフォルトの名無しさんNGNG
じゃあWindowsなんかはエクスプローラからして
すでに駄目なソフトなわけだ。
0469デフォルトの名無しさんNGNG
>>468
具体的に、どの操作がキーボードでできないんだ ?
0470デフォルトの名無しさんNGNG
>>468
Win + e でエクスプローラを起動して
Tab , Shift + Tabで移動して
Shift + F10で右クリックできますが、何か?
0471デフォルトの名無しさんNGNG
>>470
俺はShift+F10じゃなくて変なボタン(jp106:Windowsボタンの横にある奴)使ってるよ。
ってかShift+F10なんて知らなかった。ありが�d
0472デフォルトの名無しさんNGNG
Windowsはそのほとんどの基本操作がキーボードで出来るように設定されているよね。
一方、Xなどはwmによってはマウス無しでは何もできない・・・
0473 ◆F52DmOxJlc NGNG
>>471
>変なボタン(jp106:Windowsボタンの横にある奴)
アプリケーションキー
0474デフォルトの名無しさんNGNG
>>473
ありが�d!このキーを説明する機会があったら恥をかかずに済みそうです。
0475デフォルトの名無しさんNGNG
>>470
マウスでCtrl押しながらクリックして
複数のファイルをちょんちょんと
飛び飛びに選択 ってのが
キーボードだとできない。
あとファイルの(見た目の)移動も。
0476デフォルトの名無しさんNGNG
>>475
できる。
0477デフォルトの名無しさんNGNG
>>475
移動する時にCtrl押しながら移動してごらん。
0478デフォルトの名無しさんNGNG
>>477
できないよ
0479デフォルトの名無しさんNGNG
>>478
んー。
1.Ctrl押しながら移動
2.Ctrl離してスペース
3.Ctrl押しながら移動

だよ。
0480デフォルトの名無しさんNGNG
winのキーボード操作がCと何の関係があるのか小…(略)
と言う訳で、これ以上は他の板でやって下さい
0481デフォルトの名無しさんNGNG
アハハw
0482デフォルトの名無しさんNGNG
ユーザー補助のマウス--テンキーを使うのはだめですか?
0483デフォルトの名無しさんNGNG
C言語でポリモーフィズムが出来ると聞いたのですが、
C++に移行せずにCに拘ってまで使う意味ってありますかね?
0484デフォルトの名無しさんNGNG
C++以上のポリモを実装するなら意味はある
0485デフォルトの名無しさんNGNG
>>434&&452
数学的に負の値が入った除算は
-5/2 = -3 余り1
が正しいらしいが(これを実装してる処理系がある)C99で
-5/2 = -2 余り-1
に統一されたようです

ちなみに
min^=max^=min^=max;
の結果は未定義なんじゃ…
0486デフォルトの名無しさんNGNG
>>485
それは結合規則が厳密に決まってるから
結果は常に一意だと何度も何度も何度も
何度も何度も何度も何度も何度も何度も
0487デフォルトの名無しさんNGNG
>>486
ではFAQの3.8は嘘だと
>直前の副作用完了点と次の副作用完了点までの間に、
>式の評価によってオブジェクトに格納された値を
>変更する回数は高々一度だけでなければならない。
>更に、変更前の値は、格納される値を決定するため
>だけにアクセスしなければならない。
0488デフォルトの名無しさんNGNG
>>483
Cでポリモというと
関数ポインタ,stdioあたりか
Win32のハンドルもかなり多相的

C++よりCがいいのは
ずばりプログラムが小さいときだ
言う人によって違うと思うが
漏れ的には1000行以下のとき
0489デフォルトの名無しさんNGNG
>>484、>>488
ありが�d
本格的に調べてみるっす
0490デフォルトの名無しさんNGNG
>>487
嘘
0491デフォルトの名無しさんNGNG
>>490
嘘って、これって規格の文章じゃないの?
Between the previous and next sequence point an object shall have
its stored value modified at most once by the evaluation of an expression.
Furthermore, the prior value shall be accessed only to determine the value to be stored.
0492菊地桃子NGNG
ここって、厨房ばっかりでほんっと
つかえない
0493デフォルトの名無しさんNGNG
>>492
意味のない書き込みをしているお前が一番使えない
0494デフォルトの名無しさんNGNG
ネタとして使ってやろうぜ〜〜〜〜〜
0495デフォルトの名無しさんNGNG
((きすつならすまそ.>>1にかかれている「ソース丸投げ」スレもわからんかった.すまそ))

バブルソートのコードについて質問です.
『独習C』には下記のようにかかれていました.
・・・・・・・・・・・・・・・・・・・

printf("数をいくつ入力しますか?");
scanf("%d", &count);
for(a=0; a<count; a++) scanf("%d", &item[a]);
for(a=1; a<count; ++a)
for(b=count-1; b>=a; --b) {
if(item[b-1] > item[b]) {
t = item[b-1];
item[b-1] = item[b];
item[b] = t;
}}
for(t=0; t<count; t++) printf("%d ", item[t]);
・・・・・・・・・・・・・・・・・・
しかし,私が考えたソートと表示の部分は,
for(a=0;a<count;a++){
for(b=0;b<count-1;b++){
if(item[b]>item[b+1]){
t=item[b+1];
item[b+1]=item[b];
item[b]=t;
}}}
for(a=0;a<count;a++)printf("%d",item[a]);
っとなりました.
独習の方は,forループの初期化の部分がややこしく感じるのですが,
一般的には私のほうがわかりにくいんでしょうか.
独習みたいにするメリットとかがあれば教えてください.
0496デフォルトの名無しさんNGNG
>>495
分かりにくいというより間違ってる。
0497デフォルトの名無しさんNGNG
え,どこがですか?

ちなみに,テキストファイルでうぷしますた.↑よりは見やすいです.
http://cgi.2chan.net/up/src/f8508.txt
http://cgi.2chan.net/up/src/f8509.txt
0498デフォルトの名無しさんNGNG
>>497
あなたの書いたコードは無駄な処理をしているので、お手本のものより2倍近く遅いです。
どこが無駄かはアルゴリズムをちゃんと理解してれば分かるので
自分で考えてね。
0499デフォルトの名無しさんNGNG
ああ,速さか.
そう言われるとそうですね.
お手本のほうが直線的な感じがします.
まだ,プログラミングをはじめたところなのでパフォーマンスの面までは
なかなか気を配ることが出来ませんでした.
いいコードを吸収してスマートなコーディングができるようになりたいものです.
ども.
0500デフォルトの名無しさんNGNG
500
0501デフォルトの名無しさんNGNG
static a;
は
static int a;
といっしょ?
0502デフォルトの名無しさんNGNG
>>501
ああ、いっしょさ。
0503デフォルトの名無しさんNGNG
>>502
さんくちゅ
0504デフォルトの名無しさんNGNG
N個の玉から成るネックレスが用意されている。
玉の色は赤、青、白のうちのどれかであって、ランドムにアレンジされている。
そのネックレスをある点で切って横に並べ、その点から右、左と2方向に渡って
違う色に出会うまで同じ色の玉を集めるものとする。
このときもっとも多くで何個の玉を集めることができるかを判断する
プログラムをお願いします。

例:brbrrrbbbrrrrrbrrbbrbbbbrrrrb(ただし、r:赤, b:青, w:白)と
構成されているネックレスならば、9番目の玉と10番目の玉の間、
24番目の玉と25番目の玉の間から切るとすれば、最大の8個の玉を
集められますね。
->brbrrr{bbb|rrrrr}brrbbr{bbbb|rrrr}b
ただし、白の玉に出会った場合、それは赤にも青にも
変われるものとします。
0505デフォルトの名無しさんNGNG
>>504
ランドム...。
0506デフォルトの名無しさんNGNG
まず、ランドムから検討していこう
俺を踏み台にしますか?
0507デフォルトの名無しさんNGNG
赤 マッシュ
青 オルテガ
白 ガイア
0508504NGNG
おっと大事な情報を書くのを忘れました。
3<=N<=350
Nはネックレスの玉の数。
0509デフォルトの名無しさんNGNG
>>506
エラー:1体足りません
0510504NGNG
>>505 randomをそのままローマ字読みしてしまった。
>>506 OK
0511504NGNG
入力ファイル:
1:玉の数。例:29
2:ネックレスを切って横に並べたもの。例:brbrrrbbbrrrrrbrrbbrbbbbrrrrb

出力ファイル:
1:最大でいくつ集められるか。例:8
0512504NGNG
問題文に間違いを発見したので訂正します。

そのネックレスをある点で切って横に並べ、その点から右、左と2方向に渡って
違う色に出会うまで同じ色の玉を集めるものとする。
↓↓↓↓
そのネックレスをある点で切って横に並べ、任意の点から右、左と2方向に渡って
違う色に出会うまで同じ色の玉を集めるものとする。
0513デフォルトの名無しさんNGNG
>>504
仕様が把握できない

白は特別なの?
何カ所で区切るの?
0514デフォルトの名無しさんNGNG
>>512
切る点と集め始める点は無関係なのか?
なんのために切るんだ?
0515デフォルトの名無しさんNGNG
宿題スレに逝けや
0516504NGNG
>>513
入力ファイルから情報を読み取って、出力ファイルに答えを書くプログラムですが、
例えば入力ファイルが次の場合、

29
wwwbb}rwrbrbrrbrbrwrwwrb{wrwrr|b

|から左に赤玉が5個(wrwrr)、右に青玉が6(bwwwbb)個ありますね。
wはrにもbにも変われるものだから、左の場合rとして数えられて右の場合bとして
数えられていますよね。このとき集められる玉の最大値は5 + 6 = 11個。
よって、出力ファイルには、

11

となればいい。

>何カ所で区切るの?
1ヶ所から区切る。ただ、>>504の例では2ヶ所のどちらから区切っても、
答えは8で同じだっただけです。
0517504NGNG
>>514
切る点はどこでもいいです。問題文が悪くてすみませんでした。
最大で何個集められるかの問題ですので、

wwwbb}rwrbrbrrbrbrwrwwrb{wrwrr|b

でも、

rwrbrbrrbrbrwrwwrb{wrwrr|bwwwbb}

のどちらの場合でも答えは11。
0518デフォルトの名無しさんNGNG
>>517
要するにリング状になったまま左右に数えるんだな。
それなら最初の文のほうがまだ分かりやすい。

「任意の点で切って、両端から連続する色を数える。ただし白を含んでも構わ
ない。」ってとこか?

bwwwbb}rwrbrbrrbrbrwrwwrb{wrwrr


0519504NGNG
>>518
>要するにリング状になったまま左右に数えるんだな。
その言い方の方が分かりやすいですね。
ただ、stringとして与えられているのでどっかで切られているだと。

>両端から連続する色を数える。
どんな形でネックレスのstringが与えられているか分からないので、
両端から数えると必ずしも答えにはならない。
0520デフォルトの名無しさんNGNG
>>519
> どんな形でネックレスのstringが与えられているか分からないので、
> 両端から数えると必ずしも答えにはならない。
だからそれを切り直すんだろ。
0521デフォルトの名無しさんNGNG
>>520
いやまて、8の字型のネックレスとかいうんじゃあるまいな?
0522504NGNG
>>520
そういう突込みをされるのではないかと思っていました。(笑
8の字型になることはないのでご心配なく。
0523デフォルトの名無しさんNGNG
>>522
じゃあはじめから厳密に定義しろよボケ。
0524デフォルトの名無しさんNGNG
というかはじめから宿題スレに逝けよボケ。
0525デフォルトの名無しさんNGNG
ボケボケ言うなよボケ。
0526デフォルトの名無しさんNGNG
ボケボケボケ
ボケボケボケボケ
ボケボケボケ
0527デフォルトの名無しさんNGNG
子供の喧嘩だな・・・
0528デフォルトの名無しさんNGNG
>>504
ほらよ、とりあえず版だ。

#include <windows.h>
#include <stdio.h>
#include <conio.h>

typedef struct {
 char Beads[351];
 int NumberOfBeads;
} Necklace;

static int NextPoint(const int NumberOfBeads, int Point, const int Step)
{
 Point += Step;
 if(Point < 0){
  return Point + NumberOfBeads;
 }
 if(NumberOfBeads <= Point){
  return Point - NumberOfBeads;
 }
 return Point;
}
0529デフォルトの名無しさんNGNG
>>528
続き...

static int GetContinuousBeads(const Necklace *Necklace, int Point, const int Step)
{
 int n;
 char OriginalColor;
 int OriginalPoint;

 OriginalPoint = NextPoint(Necklace->NumberOfBeads, Point, 0);
 OriginalColor = Necklace->Beads[OriginalPoint];
 for(Point = NextPoint(Necklace->NumberOfBeads, OriginalPoint, Step), n = 1;
  Point != OriginalPoint; Point = NextPoint(Necklace->NumberOfBeads, Point, Step), n++){
  char CurrentColor;

  CurrentColor = Necklace->Beads[Point];
  if(CurrentColor != 'w' && CurrentColor != OriginalColor){
   break;
  }
 }
 return n;
}
0530デフォルトの名無しさんNGNG
>>529
続き...

int main(void)
{
 Necklace Necklace;
 int i;
 int Maximum;
 int SplitPoint;

 if(fgets(Necklace.Beads, sizeof Necklace.Beads - 1, stdin) == NULL){
  fprintf(stderr, "入力できんかった、鬱だ...。\n");
  exit(1);
 }
 for(i = 0; Necklace.Beads[i] != '\n' && Necklace.Beads[i] != '\0'; i++){
  switch(Necklace.Beads[i]){
  case 'r':
  case 'b':
  case 'w':
   break;
  default:
   fprintf(stderr, "変な色 %c があるやん、ちゃんとせーや。\n", Necklace.Beads[i]);
   exit(1);
  }
 }
 Necklace.NumberOfBeads = i;
 if(Necklace.NumberOfBeads < 2){
  fprintf(stderr, "ビーズが少なすぎるぞ、なめとんかぁごらぁ。\n");
  exit(1);
 }
0531デフォルトの名無しさんNGNG
>>530
続き、これで終わり。

 Maximum = 0;
 for(i = 0; i < Necklace.NumberOfBeads; i++){
  int n;

  n = GetContinuousBeads(&Necklace, i, -1) + GetContinuousBeads(&Necklace, i + 1, 1);
  if(Maximum < n){
   Maximum = n;
   SplitPoint = i;
  }
 }
 for(i = 0; i < Necklace.NumberOfBeads; i++){
  printf("%c", Necklace.Beads[i]);
  if(i == SplitPoint){
   printf(" | ");
  }
 }
 printf(": %d個だ。\n", Maximum);
 _getch();
 return 0;
}

結果:
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
wwwbbrwrbrbrrbrbrwrwwrbwrwrr | b: 11個だ。
0532504NGNG
>>528
ご丁寧にありがとうございました。
0533デフォルトの名無しさんNGNG
>>528-531
長い + 処理系依存 = カコワルイ
の典型みたいなコードだな。こりゃ。
0534デフォルトの名無しさんNGNG
>>533
評論するのは楽だよな。と。
0535デフォルトの名無しさんNGNG
>>534
つーか、長いって言うのは半分意識的に書いてるからいいんだけど、処理系依存ってどこよ ? >>533

もしかして消し忘れの #include <windows.h> と、デバッグ用の _getch() のこと言ってんのか ?
0536504NGNG
>>528-531
俺はプログラムを書いて頂いただけで十分に感謝しています。
しかも動作のチェックまでしてくれているので、
なんの問題もなく享受することができて、満足です。
0537デフォルトの名無しさんNGNG
消し忘れか。
上手いいいわけだな。
0538デフォルトの名無しさんNGNG
#include <windows.h>
だってーギャハハ!!!!プーー!!!
ここ何のスレ?
C言語のスレ!
Windows のスレじゃないない!!
0539デフォルトの名無しさんNGNG
>>538
ワラタ。
0540デフォルトの名無しさんNGNG
>>537
これっていいわけ?
あんたの前じゃ、ちょっとした間違いも正すことができないな。
0541デフォルトの名無しさんNGNG
>>537-538
悪いけど、マジ消し忘れだよ。
ソースのどっからも参照してないでしょ ?
それとも、ソースすら読めない厨房なのか。
0542デフォルトの名無しさんNGNG
>>536
一つの動作ができるからといって、正しいプログラムとは限らんよ。
wwbrww とか与えると多分あんたの予想と違う結果となるよ。
作成時点からわかってたけど、そこは >>504 の宿題だ。(つーか、結構面倒と思う。)
0543デフォルトの名無しさんNGNG
人の書いたコードを理解もせず自分で書きもせず1行2行の
ロジックと関係ないミスをいちいち指摘してるやつってなんなの?
0544デフォルトの名無しさんNGNG
>>543
ただのガキだ。無視しとけ。
0545デフォルトの名無しさんNGNG
    ___
  _l≡_、_ |_
   (≡,_ノ` )y─┛~~  ガキか・・・負け犬に相応しいセリフだな…フッ
   <__ヽyゝ|  
   /_l:__|゚
   ´ lL lL
0546デフォルトの名無しさんNGNG
getch関数って覚えておいた方がいいですか?
あと,kbhit関数も
0547デフォルトの名無しさんNGNG
>>546
>>1
0548デフォルトの名無しさんNGNG
>>546
DOSでゲームとか作りたい場合は必須だぞ。
0549デフォルトの名無しさんNGNG
スレ違いの質問にレスするヤシは氏んでほしいな。
0550デフォルトの名無しさんNGNG
ヴィジュアルC++
#include <stdio.h>
int main(void)
{
int data1, data2;
char data;
scanf("%d", &data1);
scanf("%d", &data2);
scanf("%c", &data);

return 0;
}
これを行うと、scanf("%C"、&data);が実行されません。
・・・・・なんで?
0551デフォルトの名無しさんNGNG
>>549
C言語以外にgetchとかkbhitが存在するのならいざ知らず。
0552デフォルトの名無しさんNGNG
>>551
おまいは>>1も読めんのか。くたばれ
0553デフォルトの名無しさんNGNG
>>552
>>1にそってない質問の結果が未定義となっているので、
どんな解答もありでは?

例えそれが間違っていても質問した香具師が悪いんだし
0554デフォルトの名無しさんNGNG
>>548
ありがとう
0555デフォルトの名無しさんNGNG
>>553
あなたの頭が悪い理由は?
0556↑典型例( ´∀` )NGNG
 
0557デフォルトの名無しさんNGNG
冬休み突入で精鋭軍がやってきたな。
0558デフォルトの名無しさんNGNG
int main()
{
int c;
int flg=0;

while((c=getchar())!='n'){
if(c==' '){
if(flg<2) flg++;
}
else{
if(flg==2){
putchar(' ');
flg=0;
}
else{
flg=0;
putchar(c);
}
}
}
}

ふたつ以上の空白を1つにしようとしているんですが,変な動作をします
0559デフォルトの名無しさんNGNG
char型のポインタに、2バイト文字をセットするにはどうすればいいんでしょうか?
0560デフォルトの名無しさんNGNG
なぁ、

int flag = 0;

while((c=getchar())!='n')
{
if(c == ' ')
flag++;

if(flag >= 2)
{
putchar(c);
flag = 0;
}
}
0561デフォルトの名無しさんNGNG
>>559
?
char c="あ";
char *p;

p=&c;
0562デフォルトの名無しさんNGNG
>>561
>char c="あ";

普通に怒られるだろ。
0563デフォルトの名無しさんNGNG
char c[]="あ?";
0564デフォルトの名無しさんNGNG
>>560
プ
0565デフォルトの名無しさんNGNG
>>564
プ
0566デフォルトの名無しさんNGNG
>>565
プ
 
0567デフォルトの名無しさんNGNG
>>566
プ
  
0568デフォルトの名無しさんNGNG
>>567
プ
   
0569デフォルトの名無しさんNGNG
>>568
プ
                    
0570JPS ◆M0LaMzf5rY NGNG
>>558
#include <stdio.h>

int main(void)
{
int ch, space = 0;

while ((ch = getchar()) != EOF)
{
if (! space || ch != ' ')
putchar(ch);

space = (ch == ' ');
}
return 0;
}
0571デフォルトの名無しさんNGNG
>>570
プ
             
0572デフォルトの名無しさんNGNG
>>571
プ
                             
0573デフォルトの名無しさんNGNG
>>574
プ
0574デフォルトの名無しさんNGNG
>>1
プ
0575デフォルトの名無しさんNGNG
オナラの回数を競い合うスレですか?
0576デフォルトの名無しさんNGNG
> char型のポインタに、2バイト文字をセットするには
char *p = (char *) 'プ';
0577デフォルトの名無しさんNGNG
>>576
がっかり・・・
0578デフォルトの名無しさんNGNG
ヴィジュアルC++
#include <stdio.h>
int main(void)
{
int data1, data2;
char data;
scanf("%d", &data1);
scanf("%d", &data2);
scanf("%c", &data);

return 0;
}
これを行うと、scanf("%C"、&data);が実行されません。
これぐらい教えてくれよ!あんたら先輩なんだろ!
0579デフォルトの名無しさんNGNG
scanf()使ったらfflush(stdin)汁
0580デフォルトの名無しさんNGNG
>scanf("%C"、&data);
なんかどこにもねーだろが。
0581578NGNG
すいません・・・
scanf("%c", &data);が実行されないんです。
自分はとりあえず共用体や構造体等独習Cって本は全部さらさらっと終了させました
が、知り合いにこれを質問されてさっぱりです。
scanf("%d", &data1);
scanf("%d", &data2);
scanf("%c", &data);
の部分を
scanf("%d", &data1);
scanf("%d", &data2);
data = getchar();
scanf("%c", &data);
に変更するとできるんですよ。はてはて?
なんでdata = getchar();したかってのは勘てか、なんとかなく書いたらできました
0582デフォルトの名無しさんNGNG
>>581
宿題で無いなら、scanf() は使うな。
char buff[512]; fgets(buff, sizeof buff, stdin); sscanf(buff, "...", ...); にしとけ。
0583デフォルトの名無しさんNGNG
>>581
scanf"%c", &data)をscanf"%*c%c", &data);に変更
0584デフォルトの名無しさんNGNG
nannde '(' ga nuketeruno?
0585583NGNG
>>584
あれ?ゴメン・・・
0586名も無き英雄for北朝鮮NGNG
SharpDevelopの本とか出版してないの?
やさしく説明してるページあったら教えて
0587デフォルトの名無しさんNGNG
>>579
未規定動作。

>>581
何を期待してたのか知らんが、%cで改行を読んでるに300カノッサ。
scanf(" %c", &data);にしてみろ。
0588デフォルトの名無しさんNGNG
>>587
実規定坊はしね
0589名無しさん@3周年NGNG
char buf[1024];

fgets(buf, 1024, stdin);
sscanf(buf, "%d", &data);
0590デフォルトの名無しさんNGNG
typedef struct Person Person;
struct Person {
char name[NAMELEN];
int total;
};


Person*
lookup(char *name)
{
int i;

/* look for name in people table */
for(i=0; i<npeople; i++)
if(strcmp(name, people[i].name) == 0)
return &people[i];

assert(0);/* should have found name */
}

上記のソースについてですが、Person*とはlookup函数はポインタを返すということ?
Personはstruct Personっていう型を意味するのは分かるんですが、
struct Person型のポインタって何??って感じです。
あとassert(0);にたどり着く場合ってなんでしょうか?
0591デフォルトの名無しさんNGNG
>>590
>struct Person型のポインタって何??って感じです。
は勉強不足なので勉強し直してください。
リストのここに該当する情報があるよと呼び出し元にポインタで教えてるわけですな。

assertが出るのはなぜかリストに発見したい名前が無かったときに発生するのかと。
コメントにもそう書いてあるし。
0592デフォルトの名無しさんNGNG
mallocでメモリを確保したのですが、100000000サイズになると
NULLになります。これを直す方法をご存知の方はいますでしょうか?

n_array = (max-1) / 2;
array = (char *)malloc( n_array );

↑がソースの一部です。
0593デフォルトの名無しさんNGNG
>>592
>100000000サイズ

どうでもいいが妙な単位つくんな。
0594デフォルトの名無しさんNGNG
>>592
>↑がソースの一部です。
ふぅん。で?
0595デフォルトの名無しさんNGNG
>>592
メモリを増やす
スワップを増やす
ulimit -vを増やす
0596デフォルトの名無しさんNGNG
nバイトだけメモリを確保されたブロックを指すポインタを表示するには
malloc以外でどんな方法があるのでしょうか?
0597名無し@沢村NGNG
>>596
new

例:
char *Data;
Data=new char;

delete Data;
0598デフォルトの名無しさんNGNG
>>597
>Data=new char;
のcharって何?メモリのサイズであるnはどこに書けばいい?
0599名無し@沢村NGNG
>>598
ヌヒよ、サイズであるnは、
char *Data;
Data=new char[n];

delete Data[];

とそこに書けばいいぞ。
0600デフォルトの名無しさんNGNG
>>599
間違った答え晒してなにをえらそーに。
ついでにC言語、な。
0601デフォルトの名無しさんNGNG
>>599
ありがとうございました。
0602デフォルトの名無しさんNGNG
>>599
Your program exited with signal #6 (abort())
ってでるんだけど・・・・・・
0603名無し@沢村NGNG
>>600
ヌヒよ、callocというのもあるぞ。
callocはmalloc+zeromemoryをいっぺんにやってくれる関数だ。
char *Data;
Data=(char *)calloc(n,1);

free (Data);

ヌヒよ、俺はC言語の第一人者かもしれないぞ。
0604デフォルトの名無しさんNGNG
>>596
表示?
0605デフォルトの名無しさんNGNG
>>603
誰かこいつから座蒲団全部とっちゃってくれ。
0606596NGNG
実のところ、俺が組んだプログラムは2つの数が与えられて、
その2つの数の間にある回文(逆さに読んでも同じ)の
素数を出力させるんだけど、与えられる2つの数の一方が100000000と
なると、
Your program exited with signal #11 (segmentation violation
[maybe caused by accessing memory out of bounds, array indexing
out of bounds, using a bad pointer (failed open(), failed malloc),
or going over the maximum specified memory limit])
あきらかにmallocが原因だと思うんですけど、
mallocを棄てるとプログラム全体を組みなおさなくちゃならない。
newに変えても同じようなことになる。
どうかアドバイスお願いします。
0607デフォルトの名無しさんNGNG
>>606
マルチ
0608デフォルトの名無しさんNGNG
>>606
だからお前のシステムだとメモリに100MBも空きがなかったんだよ。
char単位じゃなくてbit単位のフラグにすれば1/8で済む。
いずれにしても、とんでもなく時間がかかるのは明らかなんで、
まずはもっと小さい値で試してみるべし。
いっとくけど、所用時間はmaxの2乗に比例するからな。
0609デフォルトの名無しさんNGNG
>>608
スワップ含めて100MB確保できない環境ってのも今時珍しいな。
0610デフォルトの名無しさんNGNG
>>609
だからulimitも書いてる
0611名無し@沢村NGNG
>>606
char *temp;
char Data[n];
temp=(char *)malloc(n/2);
strcpy(Data,temp)
free (temp);
temp=(char *)malloc(n/2);
strcat(Data,temp)
free (temp);
と2回にわけてDataにtempをコピーする。

0612606NGNG
最近買ったパソコンなんだけど可笑しいな★
みちゃいや〜ん★
0613デフォルトの名無しさんNGNG
>>606
それって宿題スレでわしが書いてやったプログラムでは。。。
0614デフォルトの名無しさんNGNG
>>613
ひどいよな。書いてやった苦労とかその他諸々無視だよ。
0615デフォルトの名無しさんNGNG
単なる徘徊者かな?
0616デフォルトの名無しさんNGNG
>>603
ところでヌヒってなんだ。

0617デフォルトの名無しさんNGNG
塗り薬
0618デフォルトの名無しさんNGNG
あー、痒いときのね。
0619デフォルトの名無しさんNGNG
それはメンソレータム!
0620デフォルトの名無しさんNGNG
めんそーれ、沖縄
0621デフォルトの名無しさんNGNG
ぬひ【奴婢】
下男と下女。律令化の賤民。
0622名無しさん@3周年NGNG
旭ヌヒ成
0623デフォルトの名無しさんNGNG
void SampleFunction(char *name){
strcpy(SampleString, name);
}
ソースの一部ですが、*nameは文字列(name[])として関数SampleFunctionで
宣言されているということはnameは式の中ではポインタのはず。
では、なぜ関数strcpyでは第2引数にこのname(&name[0])が渡されているのでしょうか?
関数strcpyは文字列しか引数に取らないはず。
0624デフォルトの名無しさんNGNG
>>623
strcpyのプロトタイプ宣言はこんなふうです。(manより)
char *strcpy(char *dest, const char *src);
0625デフォルトの名無しさんNGNG
>>623
何が疑問なのかサパーリ。
0626デフォルトの名無しさんNGNG
>>623
Cを理解できていませんね
0627デフォルトの名無しさんNGNG
> 関数strcpyは文字列しか引数に取らないはず。

間違い。
0628623NGNG
>>624
>char *strcpy(char *dest, const char *src);
destとsrcはポインタなのか文字列なのかよく分からない。
ポインタだったらsrcを確保しているメモリの先端のアドレスを
destを確保しているメモリの先端のアドレスにコピーするってこと?
ポインタって難しい……
0629デフォルトの名無しさんNGNG
>>628
C に文字列はありません。文字配列があるだけです。
0630デフォルトの名無しさんNGNG
?ヌル終端された文字配列を文字列(string)と言うんだと思うけど.......
0631623NGNG
strcpy(SampleString, name); って、
すでに文字列が代入されている配列を第2引数に書いてるってだけか、
ということを検索でわかりました。
0632629NGNG
じゃ補足 型として
0633623NGNG
ってことは、
char string[9999999999999];で宣言して、
scanf("%s", string);で文字列を読み込んで、
function(string);で関数function()を呼ぶと、このときの
引数stringは&string[0]じゃなくて、単に文字列(なんだかよく分からないが)を表すのですか?
0634デフォルトの名無しさんNGNG
ちったぁ勉強してから来いこのタコ
  ( ・∀・)   | |
 と    )    | | ガッ
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /
0635デフォルトの名無しさんNGNG
ほかにも疑問に思う場合があります。例えば、
scanf("%s%s", str1, str2);
のとき、str1とは文字列の先頭アドレスなのに、
printf("%s %s\n", str1, str2);
では、そのアドレスを出力している。

簡単にstr1[∞]という文字配列があったとして、
str1だけで文字列を表すのだと覚えてよいのだろうか?
0636知ったかぶりっこNGNG
文字列なら最後に'\0'がつくはず!
0637デフォルトの名無しさんNGNG
配列変数は以下の点を除いて、その先頭の要素を指すポインタと全く等価。
・ ポインタの指す先の領域は児童確保され、スコープを出ると自動破棄される
・ 単項 & 演算子のオペランドにした場合、データ型は配列へのポインタになる。
・ sizeof 演算子のオペランドにした場合、配列全体のサイズを返す
・ 配列変数は代入できない左辺値
0638デフォルトの名無しさんNGNG
みんなメリクリ
0639デフォルトの名無しさんNGNG
みんなカニミソワショーイ
0640デフォルトの名無しさんNGNG
めりくり〜!!
0641デフォルトの名無しさんNGNG
クリスマスは明日だろ
0642デフォルトの名無しさんNGNG
>>641
寒いです。
0643デフォルトの名無しさんNGNG
>>636
「ゼロ終端文字列」 ならそうだろうね。
0644デフォルトの名無しさんNGNG
すいません。教えてください。
簡単なコンパイラを作成しているのですが、
8進数とか16進数とかを表現する時に
それぞれ頭に0か0xをつけて表記しますよね?

この表記では0は表現できないのですか?
0645デフォルトの名無しさんNGNG
00
0x0
0646デフォルトの名無しさんNGNG
というか、0 は8進表記なのだが。
0647デフォルトの名無しさんNGNG
>>00
プ
0648デフォルトの名無しさんNGNG
a=(int*)malloc(100*sizeof(int));
free(a)
とかしたときにaの指すアドレスからどこまでを開放するかってのは
どうやって分かるの?
0649デフォルトの名無しさんNGNG
(^00^)プ
0650デフォルトの名無しさんNGNG
>>648
なんかその手前のアドレスでそう言う情報管理してたりするらしいぞ。
0651デフォルトの名無しさんNGNG
>>648
mallocの実装によるが…教科書通りなら、aの手前にサイズを持ってる。

0652644NGNG
>>646
すいません。よくわかりません。
どういうことでしょうか?
00 や 0x0 でいいのでしょうか。
0653デフォルトの名無しさんNGNG
>>650-651
マジッスカ?
カシコクナッタヨ
ありがとうゴザイマス。
0654デフォルトの名無しさんNGNG
ライブラリが管理してるんでしょ。
0655デフォルトの名無しさんNGNG
(^0x0^)プ
0656デフォルトの名無しさんNGNG
ん?
0657デフォルトの名無しさんNGNG
8 進/16 進表記がまともにわからない香具師がコンパイラを書くのか?
0658デフォルトの名無しさんNGNG
(^00^)プ
0659名無し@沢村NGNG
ときにヌヒ等よ。
「香具師」って何て読むの?
0660644NGNG
>>657
はい。まともにわからないのです。
お手数ですが教えてください。
0661デフォルトの名無しさんNGNG
>>642
0は8進数でも、16進数でも、10進数でも
同じ値を表すので問題ありません。
0662デフォルトの名無しさんNGNG
沢村警報がガンガンに鳴っています
0663名無し@沢村NGNG
なあヌヒ等よ。
「香具師」って何て読むよ?
0664デフォルトの名無しさんNGNG
沢村には何も教えるな!!


    沢 村 に は 何 も 教 え る な ! !

0665名無し@沢村NGNG
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?
「香具師」って何て読むよ? 「香具師」って何て読むよ? 「香具師」って何て読むよ?

0666デフォルトの名無しさんNGNG
              _
..            //.|
           //./.|.     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          //./ | |     | すんません。すぐ処分しますんで・・・・・。
        //./|/:.| .|     \_ __________________
        □/ / //| |.        |/
        | |/.;;;;//. | ||.
        | | ;;;;;;//  | |||   l⌒)=|ニ二フ
        | |.;;;//   | |.||   ∧.|.∧
.    ∧ ∧ | |.//.   | | ||.  ( ・∀・)
   ( ・A・).| |/.    | |. ||  |   )               ワイワイ  ガヤガヤ
 __(    ).| |___. | | || __.| | |____
    | | | | |.   //.| ̄ (__(__).   /.|          ∧_∧ ∧_∧ ∧ ∧
   (__)__)| |.  //  |.         //|         (´-`;)(@・ )(;´∀)(
        | |.//∧井∧イヤァァァ--- // .|        ∧∧  ∧ ∧. ∧_∧ ∧∧
       (..| |/ (;´Д`)←沢村  //.   |       (∀・ )(ー゜* )(   )(´∀`
     (⌒ .| |    / ̄ ⊂.⊃.  .//   /      ∧_∧ ∧ ∧ ∧ ∧. ∧_∧
..∧ ∧    ̄| |  /    └─┘//   /       <_`  )(´・ω )(д ゜` )(   )(
( ・A・)   | |/         //   /       ∧_∧ ∧ ∧  ∧_∧  ∧_∧ ∧
(    ).   ~~        //   /        (   )( ゜∀゜)(`   )(   )(゜д
. | | |            //   /        ∧_∧. ∧_∧ ∧_∧  ∧_∧  ∧_∧
(__)__).         //   /         (д- )(   )(*゜ー゜)(T дT )(∀` )
0667名無し@沢村NGNG
ヌヒ等よ、一生のお願い。
「香具師」って何て読むか教えて!!
0668デフォルトの名無しさんNGNG
ヤシですよo
0669デフォルトの名無しさんNGNG
>>668
スレ違い野郎の相手するなよ。
0670デフォルトの名無しさんNGNG
「香具師」 = 「かぐし」
0671デフォルトの名無しさんNGNG
こうぐしだろ
0672デフォルトの名無しさんNGNG
「香具師」は「せなか」と読みます。
0673名無し@沢村NGNG
>>667
ヌヒよ、「ヤシ」でいいのか、ヌヒよ?
実は俺は大字林第二版で検索して「コウグシ」「ヤシ」のうちのどちらかに違いないと思ってたんだよ。
「コウグシ」は香具を作る人、「ヤシ」はテキ屋のことなので、香具を作る人の「コウグシ」のほうが何かプログラマーに近いような気がして「コウグシ」と読む可能性大だと思っていたんだがなあ…。
俺の読みははずれて、「ヤシ」が正しかったみたいだな…。
何故プログラマーをテキ屋というのか理由は知らんがな…。
やはり質問してみるもんだな…。
0674デフォルトの名無しさんNGNG
>>673
プ
0675名無し@沢村NGNG
>>670>>672
嘘をつけ!!
大字林第二版には「コウグシ」「ヤシ」以外の意味は出てなかったぞ!!
>>671
ん?俺は最初そう思ったんだが、>>667が「ヤシ」って…
0676デフォルトの名無しさんNGNG
>>675
おい、そろそろプレゼント配りに出かけろや
0677デフォルトの名無しさんNGNG
ところで>>644は解決したのか?
0678香具師NGNG
左の細いところの一番上の方にある
「2ch総合案内」をクリック
  応用&システム
掲示板やスレッドがおかしい。。。
削除依頼や要望をだしたい。。。
掲示板を追加or分割or閉鎖して欲しい。。。
特殊な用語などを知りたい。。。<<======ここから探したら?
もっと便利に使いたい。。。
0679デフォルトの名無しさんNGNG
へー、香具師ってテキ屋のことだったのか。知識増えた。
0680デフォルトの名無しさんNGNG
奴→ヤツ→ヤシ→香具師
0681デフォルトの名無しさんNGNG
>>680
馬鹿かお前。
0682デフォルトの名無しさんNGNG
それがさ・・・
0683デフォルトの名無しさんNGNG
へー。そうなん?
0684デフォルトの名無しさんNGNG
2ch初心者ですか?
書き込む前にセキュリティガードを(以下略
0685デフォルトの名無しさんNGNG
うまいラーメン屋を探してきなさい。
0686デフォルトの名無しさんNGNG
>>685
地下鉄永田町ガード下にありまッさ。
0687デフォルトの名無しさんNGNG
ガード下って響きに酔ってるだけ。
0688デフォルトの名無しさんNGNG
ガード下
  響きに酔って
    もらいゲロ
0689デフォルトの名無しさんNGNG
コアダンプ ト イフ ナリ
0690デフォルトの名無しさんNGNG
沢村の狙い通り荒れてしまったわけだが。
0691デフォルトの名無しさんNGNG
元凶は沢村だが、荷担したのは 668
0692デフォルトの名無しさんNGNG
ザンネン。668も沢村です。ヤツは一級の釣り師です。
0693デフォルトの名無しさんNGNG
そして自作自演
0694デフォルトの名無しさんNGNG
こ"めんネo
0695デフォルトの名無しさんNGNG
あなたがたの心には、もう沢村が住みついてしまわれたのですね。
0696デフォルトの名無しさんNGNG
ウッちゃん括弧(・∀・)イイ
0697デフォルトの名無しさんNGNG
棲みついたのですか?
0698デフォルトの名無しさんNGNG
旧世代言語のスレのクセに伸びがいいですね?
0699デフォルトの名無しさんNGNG
いいえ近未来言語沢村言語のスレです。
0700デフォルトの名無しさんNGNG
ど素人が700

あのwatcomのコンパイラインストールして使おうとしてるんですが、
コンパイルすると

Error! E1055: Unable to open 'stdio.h'

って出てコンパイルできないんです。ぐぐってみたらinclude pathを変えないと
いけないみたいに書いてあったんですが、変え方がまったくわかりません。
分かる人いたら、教えてください。
0701デフォルトの名無しさんNGNG
-Ipath
0702デフォルトの名無しさんNGNG
>>700
ドキュメント読めば一瞬で分かるはずだがな。
0703デフォルトの名無しさんNGNG
scanf("%d%*c", &select);
の%*cってどういう意味があるんでつか?
0704デフォルトの名無しさんNGNG
改行をスキップするのでないかな
残しておくと、直後に文字or文字列を取り込もうとしたときに
期待通りの動作してくれなくなるから
0705デフォルトの名無しさんNGNG
行末までをスキップするならこのほうがよい。
scanf("%d%*[^\n]", &select); getchar();
0706デフォルトの名無しさんNGNG
> scanf("%d%*c", &select);

これ、%*c の格納先を指定してないのはヤヴァくないか?
0707デフォルトの名無しさんNGNG
>>706
え?
0708デフォルトの名無しさんNGNG
ヤヴァくはないとおもう
0709デフォルトの名無しさんNGNG
保守
0710デフォルトの名無しさんNGNG
>>706
man scanf 100回
0711デフォルトの名無しさんNGNG
腕立て伏せ 100 回
0712デフォルトの名無しさんNGNG
漢はスキャンティ100枚
0713デフォルトの名無しさんNGNG
っていうかscanfなんか無理して使おうとするなよ
0714名無し@沢村NGNG
>>713
scanfですでに無理?
1+1はできますか?
0715デフォルトの名無しさんNGNG
>>714
田だがなにか?
0716デフォルトの名無しさんNGNG
サブ
0717デフォルトの名無しさんNGNG
>>714
scanf使うなっていうのは、漏れも常識だと思うが?
sscanf, fscanfは使うがな
0718デフォルトの名無しさんNGNG
使えないと使わないは違う。
>>713には同意だが、だからといって>>706が正しいわけではない。
ちなみに>>714は論外の更に外。
0719デフォルトの名無しさんNGNG
scanf("%d%*[^\n]", &select); getchar();
""内は1+1で右側に1(select)しかないからだろ。
0720デフォルトの名無しさんNGNG
>>719
何がいいたいのかサパーリ分からん。
0721デフォルトの名無しさんNGNG
>>720
思考力なーし
0722デフォルトの名無しさんNGNG
私にもサパーリ分かりませんが何か?
0723デフォルトの名無しさんNGNG
俺も分からない。
0724デフォルトの名無しさんNGNG
>>722>>723
おやすみ〜
0725デフォルトの名無しさんNGNG
<
<             >>724ハァァァ???
<
  ∨∨∨∨∨∨∨∨∨∨∨\  /∨∨∨∨∨∨∨∨∨∨
          /:|.       | |     /:|
        /  .:::|       ∨    /  :::|
        |  ...:::::|           /   ::::|
       i       ̄ ̄⌒゙゙^――/    ::::::::|
      /_,,___       . _,,,,__,_     :::::::::::\
      /   ゙^\ヽ..  , /゙   ¨\,.-z   ::::::::::\
      「 ●    | 》  l|  ●    ゙》 ミ..   .::::::\
     /i,.      .,ノ .l|  《       ..|´_ilト    ::::::::::\
    / \___,,,,,_/ .'″  ^=u,,,,_ v/..       :::::::::::::l!
    |            ̄ ,,、         i し./::::::::.}
   |  /  ,,____ _,/ ̄ \ \      ノ (  ::::::::::|
    |  |.. | /└└└└\../\  \    '~ヽ ::::::::::::::}
    |   .∨.|llllllllllllllllllllllllllllll|          ::::::::::{
    |    |.|llllllllllll;/⌒/⌒  〕         :::::::::::}
     |   |.|lllllllll;   ./ .   . |          ::::::::::[
     .|   |.|llllll|′  /    . |    .|      :::::::::::|
     .|   |.|llll|    |     .∧〔   /    :::::::::::::/
    / }.∧lll    |    ../ /  /   :::::::::::::::::\
   /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\
0726デフォルトの名無しさんNGNG
でかいのつれたな
0727デフォルトの名無しさんNGNG
じゃ、じゃあ俺も!
0728703NGNG
703だけども。
なんかアステリスクだっけ?*←
これつけたらそのあとの変換指定子にあう型のがきたら無視するってこと?
空白とかを無視したいんならfgetsにsscanfの方が良いって友達は言ってるけど。
ちなみに703のは学校の教授が模範解答として配ったソースにあったやつです。
初心者でスマソ
0729デフォルトの名無しさんNGNG
>>728
例えば、scanf("%d %*d %d", &a, &b);とすると、
入力回数は3回になるが、2回目の入力は無視される。
1回目の入力値がaに格納され、3回目の入力値がbに格納される。

まあ、説明不足のような気がするが、だいたいこんなもんかな?
0730デフォルトの名無しさんNGNG
>>717
fscanfも使わない方がいいんじゃなかった?
0731starman@LinuxのC言語NGNG
マルチユーザOSのLinuxでは仮想端末を切り替える際にALT+(F1〜F6)などを使用しますが、
キーボードを使用せずにC言語のプログラム(システムコール?)から仮想端末を切り替えることはできるのでしょうか?
もしできるのなら、その方法を教えて頂けないでしょうか?
0732デフォルトの名無しさんNGNG
質問です。
ある変数aの平方根を求めるプログラムって
どうするんですか?例えばa=36なら6とか。
0733デフォルトの名無しさんNGNG
sqrt(a)
0734デフォルトの名無しさんNGNG
×733

int a = 36, b;
for (b = 1; b*b != a; b++);
0735732NGNG
>>733,734
解答ありがとうございます。
sqrt(a)を使ったら無事できました。
0736デフォルトの名無しさんNGNG
プ>>734
0737デフォルトの名無しさんNGNG
質問です。
ある変数aの自乗を求めるプログラムって
どうするんですか?例えばa=6なら36とか。
0738デフォルトの名無しさんNGNG
>>737
a*=a;
0739デフォルトの名無しさんNGNG
×738

int a = 6, b;
for (b = a; b != a*a; b++);
0740デフォルトの名無しさんNGNG
×738

int b[] = { 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, };
int a = 6;
b[a];
0741732NGNG
>>738,739,740
解答ありがとうございます。
a*=a;を使ったら無事できました。
0742デフォルトの名無しさんNGNG
>>739
それだとaがintならともかくダブルだったりしたらどうするの?
0743デフォルトの名無しさんNGNG
>>740
それだとaが0〜10ならともかくマイナスだったりしたらどうするの?
0744デフォルトの名無しさんNGNG
>>742-743
良い質問だね。
明日までの宿題だ。
0745デフォルトの名無しさんNGNG
>>744
先生!明日は冬休みじゃないんですか?
0746デフォルトの名無しさんNGNG
>>744
それだと明日が登校日ならともかく冬休みだったりしたらどうするの?
0747デフォルトの名無しさんNGNG
処理を時間差で行うにはどうすればいいのでしょうか。
例えば文字を出力した0.2秒後に別の文字を出力するとか。
整数秒後に出力するのはtimeとかで出来そうなんですが。
よろしくお願いします。
0748デフォルトの名無しさんNGNG
>>747
ミリ秒がいるんなら
OSのシステムコールを使うか
ハードウェアでタイマ用意するだな
0749デフォルトの名無しさんNGNG
>>748
解答ありがとうございました。
早速がんばってきます。
0750デフォルトの名無しさんNGNG
732 から後はネタか何かかい?
0751デフォルトの名無しさんNGNG
   。 。
  / /
 ( ゚Д゚) ヘ?
 ヽ人ゝ
0752デフォルトの名無しさんNGNG
>>731
chvt というコマンドがあるので system を使って切り替えましょう。
具体的な方法は chvt のソースを見れば分かると思いますが。
0753デフォルトの名無しさんNGNG
ヒマダ
おれも遂に脱初心者だな
0754デフォルトの名無しさんNGNG
>>753
ふーん。
試しに、char[5][10] へのポインタの変数 p を定義してみてくれるかい?
0755デフォルトの名無しさんNGNG
>>754
そんなもんは初級中の初級
0756デフォルトの名無しさんNGNG
>>755
書けないならそう言えば? と言われたい訳?
釣りですか?
0757デフォルトの名無しさんNGNG
(・∀・) バーカ!!
0758デフォルトの名無しさんNGNG
なんだとー
0759デフォルトの名無しさんNGNG
あのー、何かすごくお腹の調子が悪いんですが・・・。
今日でもう 10 リットルくらいは放屁した気がする・・・。
0760デフォルトの名無しさんNGNG
そのうちの8リットルは俺が吸い取った。
0761デフォルトの名無しさんNGNG
でかした
0762デフォルトの名無しさんNGNG
760 は漢
0763デフォルトの名無しさんNGNG
感動しますた
0764デフォルトの名無しさんNGNG
神
0765デフォルトの名無しさんNGNG
見事だ
0766デフォルトの名無しさんNGNG
残り2リットルは、今日バイトでカレーとして客に出しました!!
0767デフォルトの名無しさんNGNG
屁の河童でござんすよっ!
0768753NGNG
>>754
そんなの簡単さ
char**pダヨ
0769デフォルトの名無しさんNGNG
>>768
釣り師沢村ハケーソ!!!
0770753NGNG
>>769
JPSデスケド
0771デフォルトの名無しさんNGNG
>>768
あ〜あ、やっちゃた・・・
0772753NGNG
わかった
char **p = a[5][10]だ!
0773デフォルトの名無しさんNGNG
>>772
脱!!初心者!!ヤホーイ♪
0774デフォルトの名無しさんNGNG
>>772
バカ。*は安全のため出来るだけ沢山付けとくもんだ。
char ****************************************************p=a[5][10];
くらいやってこそプロってもんよ。
0775753NGNG
>>774
そうだね。
オレもまだまだだな!テヘ
0776デフォルトの名無しさんNGNG
初心者脱出おめでとう>>772
0777デフォルトの名無しさんNGNG
(^*^)プ
0778デフォルトの名無しさんNGNG
しつも〜ん
*はいくつまでつなげられますか?
0779デフォルトの名無しさんNGNG
初心者脱落おめでとう>>772
0780デフォルトの名無しさんNGNG
>>774
沢山・・・
沢村の間違いじゃ?
0781デフォルトの名無しさんNGNG
今日はお赤飯ね。
0782デフォルトの名無しさんNGNG
>>778
それはお前の努力次第だ!!がんばれよ!!
0783753NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=52
これがどうして動作しないのかわからん
ダレカオシエテ
0784デフォルトの名無しさんNGNG
>>783
何のプログラムでつか?(読めば分かるって言うツッコミなしね)
0785デフォルトの名無しさんNGNG
a=(int*)malloc(100*sizeof(int));
free(a)
とかしたときにaの指すアドレスからどこまでを開放するかってのは
どうやって分かるの?
0786デフォルトの名無しさんNGNG
>>783
とりあえずどういうプログラムで、
動作しないとはどういうことか(コンパイルできない、実行時エラー、期待通りの動作をしない)
くらいは説明しろ。
0787753NGNG
>>784
C
0788デフォルトの名無しさんNGNG
>>784
単純な単語登録リストでつ
構造体で線型リストやってんだけど
たぶんそこのつなぎ合わせたりするとこに問題が。

あとね、FILE*型を返す関数をつくってその中で
fp = fopenってやったfpを返して
mainのほうで別のfp_mainに戻りチとして代入できる?よね?
0789784NGNG
>>787
なんでCって言うのでつか?
DでもEでも良いじゃん。(Bはあったみたいだけど・・・)
バカですみません・・・ウヒャ!!
0790デフォルトの名無しさんNGNG
>>786
ゴメソ
期待通りの動作をしない
っていうか。
mainの下のほうに
puts("\nPlease choose an output interface");
printf("file / 1 standard / 2 : ");
fgets(str_2,sizeof(str_2),stdin);
sscanf(str_2,"%d",&flag2);
ってとこがあるしょ?
ここのfgetsとsscanfが飛ばされるんだよ。
バッファに空白が残ってるのかな。
でもプログラム自体は正常終了してる。
mainのreturnまでいってる。
0791デフォルトの名無しさんNGNG
>>785
aの指しているアドレスの手間いにサイズの情報が入っているとかいないとか・・・
0792デフォルトの名無しさんNGNG
>>785
C言語ポインタ完全制覇読め
ISBN7741-1142-2
0793デフォルトの名無しさんNGNG
>>785
そういう情報はOSが管理してるんだよ。
0794デフォルトの名無しさんNGNG
>>793
そのネタおもろい!



....なわけねーだろヴォケ
0795デフォルトの名無しさんNGNG
#include<stdio.h>
main()
{
int a;
printf("数字を入力してください\n");
scanf("%d",&a);
if(a%2==0)
printf("偶数です\n");
else
printf("奇数です\n");
}
どうですか?
0796デフォルトの名無しさんNGNG
>>788
何言ってるのかよく分からない。

>>790
1つ目の質問で standard を選んじゃうととばされそうだね。
あと、いくらなんでも stdin に出力するのは無茶だよ。
0797デフォルトの名無しさんNGNG
>>796
fgets・・・出力?
0798デフォルトの名無しさんNGNG
>>797
プログラムを見ろ。
0799デフォルトの名無しさんNGNG
>>796
一応出力されたけど(stdoutにして。ばかですた)やっぱし790がとばされてる。
どうしてか分かる人いない?

あと788で言ってるのは
FILE *func(void)
{
  FILE *fp;
  fp = fopen("data.txt","r");
  return fp;
}

main()
{
  FILE *fp_main = func();
ってやってfp_mainは使えるよね?ってこと
0800デフォルトの名無しさんNGNG
>>799
一つ目の質問(input interface)を file にしてもとばされる?
後半の質問についてはできる。
0801デフォルトの名無しさんNGNG
>>800
とばされなかった。
やっぱバッファ?
0802デフォルトの名無しさんNGNG
>>801
get_word() のループの所で stdin を EOF まで読んじゃってるから
(それ以降はいくら読み込んでも EOF しか返ってこない)
と、fclose() で閉じちゃってる
という2重のミス。
0803デフォルトの名無しさんNGNG
>>802
なるほど。てことはどうすりゃいんだ
バッファをクリーンにすればいいな!
あとfcloseで閉じたら何がまずい?
0804デフォルトの名無しさんNGNG
>>803
バッファは関係ないってば......
output interface の質問を get_word() のループより前に持ってこい。
つまりデータ読み込む前に入力先、出力先の両方ともを尋ねておく。
0805デフォルトの名無しさんNGNG
>>804
ハイ。
でもまだわかんない。
EOFはget_wordのchに入るだけでそれ以外にはないよね?
出力先を選択するときはmainのほうの変数に入れてるから
もんだいないんでないの?
0806デフォルトの名無しさんNGNG
koremiro
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=54
tennsaida oreha
0807デフォルトの名無しさんNGNG
>>805
EOF は特別なデータなの。End Of File。ファイルはもうお終いですよ、って印ね。
それ以外の、通常のデータとは全く意味が異なるの。
それで、EOF を検出したら、それ以降は何度読み込んでも EOF しか返ってこないの。
だから、2度目の fgets() でも即座に EOF を検出して NULL を返してるはず
だから調べてみ。
0808デフォルトの名無しさんNGNG
>>795は完全無視かい・・・
0809デフォルトの名無しさんNGNG
>>807
ナルホド
if(fgets(str_2,sizeof(str_2),stdin) == NULL)
printf("30");
ってやったら30とでますた。

ってことはプログラム中ではEOFは一度しか使えないってこと?
0810デフォルトの名無しさんNGNG
>>808
return 0;
0811デフォルトの名無しさんNGNG
>>809
EOF は使う、とか言うもんじゃないと思うけど.....

ある一つのファイルについて言えば、一度 EOF を検出したら
それ以降は EOF しか出てこない。
開き直したり fseek() したりしない限り。
0812デフォルトの名無しさんNGNG
文字列"abcabcabcabc"があって、これのbを0に置き換えて
"a0ca0ca0ca0c"とやるにはどうすればいいですか?
ようするに、文字の置き換えってどうやればいいのですか>
0813デフォルトの名無しさんNGNG
>>811
ファイルってのはstdinも含めてだよね?
したらさ、たとえばendで終了とかしないと、
このプログラムは動作しないってこと?
fseek使えば可能?
0814デフォルトの名無しさんNGNG
>>812
配列の要素1つずつ走査していってbなら0を代入する
0815デフォルトの名無しさんNGNG
>>813
fseek() は stdin には効かないんじゃないかな......
よく知らんわ。とりあえず、たとえ出来ても処理系依存になりそうだから
やめといたほうがいい気がする。自信ないが。
上で教えたように、最初に input、output 両方聞いとくか、
君の言うように end とかのデータ終了の印をつけるようにしとく方がいいかもね。
0816デフォルトの名無しさんNGNG
>>815
わかりました。あとは自分で調べて見ます。
みんなサンクス!!
0817デフォルトの名無しさんNGNG
>>816
もう寝るんでつか?
0818デフォルトの名無しさんNGNG
酒飲んだら眠くなってきたんで。
スマソ
0819デフォルトの名無しさんNGNG
でつとか言ってる奴ってマジキモイと思ってるのは俺だけではないはず。
0820デフォルトの名無しさんNGNG
>>819
そうでつよね。マジキモイでつ。逝ってよしでつ。
0821デフォルトの名無しさんNGNG
>>819
そう思うならここには来ないほうがいい。
キモイと思ったやつは2chから去っていく
0822デフォルトの名無しさんNGNG


http://berry6.hp.infoseek.co.jp/
パートナーのいない人は急げ!
まったり、しっとり過ごしましょ(o^.^o)

0823デフォルトの名無しさんNGNG
2匹ゲットでつ。
0824デフォルトの名無しさんNGNG
>>821
2chだから言えるのですよ。現実では、
「漏れもそういうヤシ大好きなんでつ」
なんていってるやつに面と向かってキモイとか言えないし。
0825デフォルトの名無しさんNGNG
>>823
いたいたしいからやめれ
0826デフォルトの名無しさんNGNG
さらに2匹ゲットでつ。
0827デフォルトの名無しさんNGNG
>>817
あんた、結構鋭いね・・・
0828754NGNG
・・・ネタだよな?
漏れは char[5][10] へのポインタの変数 p を定義して、と言ったんだけど・・・。

>>768
それは char へのポインタ へのポインタ変数 p。

>>772
それは char へのポインタ へのポインタ変数 p に未定義の変数 a[5][10] の値を
代入している。

>>774
それは char へのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタへのポインタへの
ポインタへのポインタへのポインタへのポインタへのポインタ変数 p に未定義の
変数 a[5][10] の値を代入している。
0829デフォルトの名無しさんNGNG
さて、ポインタと何回言ったでしょう?
0830デフォルトの名無しさんNGNG
>>829
ん?1〜829まで?
0831デフォルトの名無しさんNGNG
>>830
>>828だけでおながいしまつ......
0832デフォルトの名無しさんNGNG
>>829
829 においては 1 回。
0833754NGNG
1 コ多かったかも知らん・・・鬱
0834デフォルトの名無しさんNGNG
ちなみに、1〜829 においては 113 回。
意外と少なかった。
0835デフォルトの名無しさんNGNG
>>834
いいかげんに、寝ろ!!
0836デフォルトの名無しさんNGNG
にごり酒が好きな香具師は心がにごっている!!
0837デフォルトの名無しさんNGNG
>>832>>834
ブーッ!! ブーッ!! ブリブリブリッ!! ブピャーーーーーーーーッッッ!!!!!
正解正解不正解ーーーーー!!!!

書き込みしただけで1回も「言って」ません。

すなわち答えは0回!!
アヒャヘ(゚∀゚ヘ)(ノ゚∀゚)ノアヒャヒャ
0838デフォルトの名無しさんNGNG
>>837
なるほど〜・・・
そう来るかね・・・
0839デフォルトの名無しさんNGNG
なんだとー
0840デフォルトの名無しさんNGNG
> アヒャヘ(゚∀゚ヘ)(ノ゚∀゚)ノアヒャヒャ

冬厨あほらしか
0841デフォルトの名無しさんNGNG
俺が言った
ついつい書き込みを口に出して・・・
0842デフォルトの名無しさんNGNG
>>841
そうだよな。
みんな書き込みをしながら、口に出して言っているかも・・・
独り言のように・・・
0843デフォルトの名無しさんNGNG
ごめん、おれポインタって100回言っちゃった。
好きなもんで。。
0844デフォルトの名無しさんNGNG
>>843
タポイン・・・
0845デフォルトの名無しさんNGNG
負け惜しみ(・A・)イクナイ!!
素直に
「ごめんなさい。間違えました。これからは何でも言うこと聞きます。王様。
足なめさせてください。ペロペロ。美味です。王様。
私を弟子にしてください。王様。最高です。王様」
と言えばいいものを。
0846デフォルトの名無しさんNGNG
>>842
この真夜中に・・・
0847デフォルトの名無しさんNGNG
>>845
ごめんなさい。間違えました。これからは何でも言うこと聞きます。王様。
足なめさせてください。ペロペロ。美味です。王様。
私を弟子にしてください。王様。最高です。王様。ウヒ
0848デフォルトの名無しさんNGNG
(・∀・) バーヤ
0849デフォルトの名無しさんNGNG
> 負け惜しみ(・A・)イクナイ!!
> 素直に
> 「ごめんなさい。間違えました。これからは何でも言うこと聞きます。王様。
> 足なめさせてください。ペロペロ。美味です。王様。
> 私を弟子にしてください。王様。最高です。王様」
> と言えばいいものを。

> 私を弟子にしてください。王様。最高です。王様。ウヒ

冬厨あほらしか
0850デフォルトの名無しさんNGNG
>>845
美味しゅうございます〜♪ウヒョ
0851デフォルトの名無しさんNGNG
そろそろ、荒れ具合もやばくなってきたので、冬厨放置で。
0852デフォルトの名無しさんNGNG
char[5][10] へのポインタの変数 p を定義してみて。
0853デフォルトの名無しさんNGNG
char (*p)[5][10];
0854デフォルトの名無しさんNGNG
>>853
空気読めよ
0855デフォルトの名無しさんNGNG
________.  |  ・・・「からけ」?
|||          | \____ __
|||          |  )\       ∨
|||    空  気.   <⌒ヽ ヽ
|||         \ ( ´ー`)    ∧∧
|||_________V(   丿V^  ●Д゚,,)>>853
|,,|          |,,| ヽ (      と  ,)
              ノ )     |  |〜
                     し`J,,.
0856デフォルトの名無しさんNGNG
ツレタ!!ブヒャー(w
0857デフォルトの名無しさんNGNG
>>856
必死だな
0858デフォルトの名無しさんNGNG
>>857
必死だよ
0859デフォルトの名無しさんNGNG
>>856
リコーダーも満足に吹けないくせに粋がってんじゃねぞ
0860デフォルトの名無しさんNGNG
>>858
哀れだな
0861デフォルトの名無しさんNGNG
>>859
「ド」は調によって(ry
0862デフォルトの名無しさんNGNG
>>858
哀れだよって言ってやれ!!
0863デフォルトの名無しさんNGNG
冬厨の方のための専用スレです。
マターリしてきてください。

【冬厨】Cの文句は俺に言えぇ!part1【歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1039768013/
0864デフォルトの名無しさんNGNG
>>862
哀れ.....ごめん.....読めね....「もれ」?
0865デフォルトの名無しさんNGNG
part1 かよ・・・
0866デフォルトの名無しさんNGNG
冬休みに入ったんだと実感しました
0867デフォルトの名無しさんNGNG
引数を取らず、char[5][10] へのポインタを返す関数 f のプロトタイプは。
0868デフォルトの名無しさんNGNG
感動しますた
0869デフォルトの名無しさんNGNG
char (*f(void))[5][10];
0870デフォルトの名無しさんNGNG
デルフィニア戦記を読んだ人いますか?
0871デフォルトの名無しさんNGNG
わかんないなら、素直に引数で渡せよ・・・
0872デフォルトの名無しさんNGNG
>>869
空気読めよ
0873デフォルトの名無しさんNGNG
________.  |  ・・・「からけ」?
|||          | \____ __
|||          |  )\       ∨
|||    空  気.   <⌒ヽ ヽ
|||         \ ( ´ー`)    ∧∧
|||_________V(   丿V^  ●Д゚,,)>>869
|,,|          |,,| ヽ (      と  ,)
              ノ )     |  |〜
                     し`J,,.
0874デフォルトの名無しさんNGNG
>>871
で・・・何の話?
0875デフォルトの名無しさんNGNG
ツレタ!!ブヒャー(w
0876デフォルトの名無しさんNGNG
引数を取らず、char [5][10] へのポインタを返す関数へのポインタを引数とし、char [5][10] へのポインタを返す関数へのポインタの配列を定義してください。
0877デフォルトの名無しさんNGNG
>>876
>char [5][10] へのポインタを返す
(゚Д゚)ハァ?
0878デフォルトの名無しさんNGNG
char (*(*p[ARRAY_SIZE])(char(*(*)(void))[5][10]))[5][10];
0879デフォルトの名無しさんNGNG
さて、寝ようかな・・・ん?ちょっとまって・・・今行くから・・・
0880デフォルトの名無しさんNGNG
>>877
ネタですか?
0881デフォルトの名無しさんNGNG
876
↓
type_a = char [5][10] へのポインタ
type_b = 引数を取らず、type_a を返す関数へのポインタ
type_c = type_b を引数とし、type_a を返す関数へのポインタ
type_c の配列を定義してください。

#include <iostream>
typedef char (*type_a)[5][10];
typedef type_a ((*type_b)(void));
typedef type_a ((*type_c)(type_b));
const size_t array_size = 256;
int main()
{
 type_c func_table[array_size];
 std::cout << typeid(func_table).name() << std::endl;
}

これで調べるのは反則でつか?
0882デフォルトの名無しさんNGNG
冬厨の方々は寝静まりやがりましたか?
0883デフォルトの名無しさんNGNG
>>881
ここは
  C 言 語 の ス レ
ですよ?
0884デフォルトの名無しさんNGNG
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
◆裏情報取引サイト→http://www.kawachi.zaq.ne.jp/dpdan803/◆
◆国際免許取得→→→http://www.kawachi.zaq.ne.jp/dpdan803/◆
◆悪徳業者情報→→→http://www.kawachi.zaq.ne.jp/dpdan803/◆
◆あらゆる調査→→→http://www.kawachi.zaq.ne.jp/dpdan803/◆
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
+
0885デフォルトの名無しさんNGNG
>>883
だから何?
0886デフォルトの名無しさんNGNG
フンベルト=ホーン=ギッキンゲン男爵
0887デフォルトの名無しさんNGNG
お前の行動は見切った!!
0888デフォルトの名無しさんNGNG
888get
0889デフォルトの名無しさんNGNG
>>888
(・∀・) バーカ!!
0890デフォルトの名無しさんNGNG
>>870
読みましたが何か?
0891デフォルトの名無しさんNGNG
>>789
Bがあったからだろ。
0892デフォルトの名無しさんNGNG
>>891でもBはスカラがなかったんだよね
0893デフォルトの名無しさんNGNG
>>892
スカラって何?
食べられる?
食べられるとしたらおいしい?
どんな味?
コハダ?
臭い?
金玉の下の方を触った時の手の臭い?
どう?
どうなの?
0894デフォルトの名無しさんNGNG
>>893
スカラ=巣殻
鳥の巣の殻のことだよ
0895デフォルトの名無しさんNGNG
charとかint,double,列挙型,及びポインタのこと
簡単にいうとBは型がない(正確にはあるんだけど)言語だったってこと
0896デフォルトの名無しさんNGNG
防御力がアップしたよ
0897デフォルトの名無しさんNGNG
>>893
プログラム板なんだから、「スカラ」とは「スカラベ」のこと。
「べ」がどこから来たかというと、スカラの対義語の「ベクトル」から来た。
昔は「スカラベクトル」と呼んで区別されていたのが、
意味が曖昧になり「スカラ」の意味しか持たなくなった。
それくらい辞書引けよ
0898デフォルトの名無しさんNGNG
>>897
ほそく

古代エジプトではスカラベを創造とか生成の意味で呼んでいた。
現代プログラムでは、プログラミングの過程を意味する。
0899デフォルトの名無しさんNGNG
辞書に載ってないのでどれが正しいのか・・・
一番もっともらしい >>898 を信じることにします
0900デフォルトの名無しさんNGNG
>899
898のほそく
いわゆるフンコロガシの仲間。
映画「ハムナプトラ」では肉食のスカラベが人を襲う話があります。
0901デフォルトの名無しさんNGNG
>>898
ワロタ
C言語にはスカラがあるんだね。
俺も今度スカラを使ったプログラムを作るよ!
0902デフォルトの名無しさんNGNG
ここにはネタが豊富ですね。
0903デフォルトの名無しさんNGNG
それを言うなら、

ここはネタが豊富なインターネットですね。
0904デフォルトの名無しさんNGNG
この橋渡るすからべ
0905デフォルトの名無しさんNGNG
そ、それは擦れ違…
0906デフォルトの名無しさんNGNG
ビットフィールドって配列にできないんですか?
ループ文でまわしたいんですけど。
struct a{
  unsigned char n[8] :1
};
だとだめですし。
struct a{
  unsigned char n1 :1
  unsigned char n2 :1
ってやってくしかないですか?
0907デフォルトの名無しさんNGNG
>>906
どういう処理をしたいわけ?
0908デフォルトの名無しさんNGNG
>>906
全く別の方法だけど、
例えばunsigned charの変数を宣言して各ビットを使うんじゃダメ?
0909デフォルトの名無しさんNGNG
for(i;i<8;i++){
if(a1.ni==1){
・・・
って感じです。シフト演算使えってのはなしで。
0910デフォルトの名無しさんNGNG
>>908
unsigned char型の変数を評価したいので、そういうわけには。
0911デフォルトの名無しさんNGNG
>>906
シフト演算で廻せばイイジャン

//int bitfield,BOOL[] hoge
int i,count;
for(i = 1,count = 0 ;i < 0xFF; i << 1,count++){
hoge[count] = (i & bitfield == 0);
}

こんなかんじで。最近C屋ってないから文法これでいいのかどう
かわからんけど(スマソ
0912デフォルトの名無しさんNGNG
レスくれた方、ありがとうございました。
やはりシフト演算ですか。
0913デフォルトの名無しさんNGNG
>>912
STLportのstd::bit_vectorは?あ、C++は使わないのか。
0914デフォルトの名無しさんNGNG
C++だと[]演算子をオーバーロードして、ビットフィールドのようなマネを
させられるから、どう?だめ?
0915デフォルトの名無しさんNGNG
C++厨は(・∀・)キエロ!!
0916デフォルトの名無しさんNGNG
>>915
Java厨みたいなこというなよ
0917デフォルトの名無しさんNGNG
>>915
VB厨みたいなこというなよ
0918デフォルトの名無しさんNGNG
でもさあ、C++でビットフィールドをエミュレートするとしても、左辺値の[]演算子
の実装はとても面倒臭いよ。

1ビットを1バイトで表すんなら簡単なんだが。
0919デフォルトの名無しさんNGNG
どこが?
8 で割った商と余りを使えばいいだけの話だろ。
0920デフォルトの名無しさんNGNG
あー、もうすぐ次スレの季節だが、1 のテンプレにはぐれぐれも

    沢 村 立 入 禁 止

と書いておいてくれよ。
0921デフォルトの名無しさんNGNG
>>918
std::vector<bool> とか std::bitset とか既にあるんだから、
わざわざ車輪を再発明せんでも。
0922デフォルトの名無しさんNGNG
ビットフィールドはビット演算の一部を簡略化するもの。
対応できないなら自力でやればいい。

#include <limits.h>
int get_bit(char bits[], int n) {
 return (bits[n / CHAR_BIT] & (1 << n % CHAR_BIT)) != 0;
}
void set_bit(char bits[], int n) {
 bits[n / CHAR_BIT] |= 1 << n % CHAR_BIT;
}
void clr_bit(char bits[], int n) {
 bits[n / CHAR_BIT] &= ~(1 << n % CHAR_BIT);
}
void put_bit(char bits[], int n, int b) {
 (b ? set_bit : clr_bit)(bits, n);
}
0923デフォルトの名無しさんNGNG
再帰処理の使い道がいまいちわかりません
そこらへんの本に書いてある再帰だったら
普通にループした方が簡単だと思うのですが
0924デフォルトの名無しさんNGNG
>>923
普通にループでいいよ。
0925デフォルトの名無しさんNGNG
>>923
ディレクトリを巡回してサブディレクトリを全て表示するプログラム書いてみな。
再帰と非再帰の二通りで。
0926923NGNG
>>925
なるほどね それだと確かに再帰じゃないと無理かも
0927デフォルトの名無しさんNGNG
>>926
いや、無理というわけじゃないよ。再帰はループに落とせる。
ただ面倒なだけ。
0928923NGNG
再帰で書かないとループの中に
更にループ書かなきゃいけなくなる?
0929デフォルトの名無しさんNGNG
ちゃう。
再帰で積まれるスタックを自前で管理する必要が出てくる。
0930923NGNG
ループで書くとオーバー風呂しちゃうかもってこと?
0931デフォルトの名無しさんNGNG
>>923
とりあえず書いてみるとか・・
0932デフォルトの名無しさんNGNG
こんな感じか>非再帰版。
ちなみにstackをqueueに書き換えると深さ優先から幅優先探索になる。

void traverse(char *path)
{
 int i;
 stack_push(path);
 while(!stack_empty())
 {
  char *path = stack_pop(); // 巡回された
  printf("%s\n", path);
  for(i=0; i<sub_dir_count(path); i++) // サブディレクトリをスタックに追加
   stack_push(get_sub_dirs(path, i));
 }
}
0933デフォルトの名無しさんNGNG
>>930
気のせいか ループであふれるんだったら再帰でもあふれるような

0934わたしは泣いたことがないNGNG
 入力書式についてお聞きしたいのです。

 入力バイト数変換%nが思った通りの値を返してくれません。
例えば以下のコードで、私は i=1が得られると思ったのですが、
私の環境では0になりました。
 私は何を間違っているでしょうか?


int myStr( const char *s )
{
char c;
int i;

ssccanf( s, "%1c%n", &c, &n );
return n;
}
0935わたしは泣いたことがないNGNG
>934
 かきもれましたが、sには入力失敗しない文字列があります。
仮に"A000"のような。
0936デフォルトの名無しさんNGNG
愛がないよ?
0937私はないたことがないNGNG
>934
>936
 すみませんかきまちがえました。

int myStr( const char *s )
{
char c;
int i;

ssccanf( s, "%1c%n", &c, &i );
return i;
}
0938デフォルトの名無しさんNGNG
>>937
俺の環境にはssccanf()って関数はないので分からんが、
代わりにsscanf()を使うと1が返って来た(gcc 3.2.1+glibc 2.3.1)。
0939私は泣いた事がないNGNG
>938
 sscanf()です。すみません粗忽ものなので。
 調べてみると、書式文字列の先頭にc変換があり、かつ、
その直後にn変換がある場合には、n変換で得られる値は
仕様上予期される値よりも1だけ少ない値になることが
わかりました。 
 コンパイラのバグのようです。これで1日潰しました。ありがとうございました。 
0940デフォルトの名無しさんNGNG
2GET
0941VC6SP5@Windows2000NGNG
下のようなコードを書いて実行してみましたが、
sprintfで作成された文字列(test)がそのままbuf1に入ってしまいます。
文字列を上手く分割するには、strstrやstrchrを使ってstrcpyなどでコピーするしかないでしょうか?

--ここから--
#include <stdio.h>

int main()
{
    char test[256], buf1[256], buf2[256], buf3[256];

    sprintf(test, "%s,%s,%s", "abc", "def", "ghi");
    sscanf(test, "%s,%s,%s", buf1, buf2, buf3);

    return 0;
}
0942デフォルトの名無しさんNGNG
>>941
スペースを使え
sprintf(test , "%s %s %s" , ...);
sscanf(test , "%s %s %s" , ...);
0943デフォルトの名無しさんNGNG
たしか、sscanfで[,]とか使うんだよな、、、
0944941NGNG
>>942
レスありがとうございます。
スペースを使いたいのはヤマヤマですが、デリミタがコンマと決まっているので…。
もともとのデータにスペース入ってたらおかしくなりません?
(>>941の例でいうと、"abc" ではなく"a bc"となっていた場合)
0945デフォルトの名無しさんNGNG
新スレ立ちました。

http://pc3.2ch.net/test/read.cgi/tech/1041127646/
0946デフォルトの名無しさんNGNG
>>945
氏ね
0947デフォルトの名無しさんNGNG
http://che-ez.hp.infoseek.co.jp/shougi.rar

にうpしたプログラムで、表示がうまくされません。誰か教えてください。よろしくお願いします。
0948デフォルトの名無しさんNGNG
>>944
,じゃあ文字列かどうかの判定ができないから。
スペース2つ入れるとか3ついれるとかでは駄目なの?
0949947NGNG
新スレのほうにも書きもみました。
0950デフォルトの名無しさんNGNG
>>947
ウィルスです。開かないように。
0951941NGNG
>>948
なるほど。
スペースがいくつ入るか、と言うことを想定しないほうが後々のバグがなくなると思いまして。

手を抜いちゃダメっすね。。。やっぱり。
0952デフォルトの名無しさんNGNG
>>951
確実に文字列が','で区切られているなら自分で関数作った方がいいのでは。
0953941NGNG
>>952
了解。
0954デフォルトの名無しさんNGNG
昔からある次スレ
テンプレ貼っておいたよ。
1-66 は透明あぼ〜んしてね

C言語を俺に聞け 第48回ぐらいか?
http://pc3.2ch.net/test/read.cgi/tech/1037279828/
0955954NGNG
専用ブラウザでない人はこちらのリンクをどうぞ

http://pc3.2ch.net/test/read.cgi/tech/1037279828/67-
0956デフォルトの名無しさんNGNG
素数を列挙するプログラムですが、配列を用意して、エラストテネスのふるい
を利用したアルゴリズムでできますね。しかし、上限が100000000以上の場合、
配列を用意することができません。どなたか他のアルゴリズムが分かる方、い
ませんでしょうか?
0957デフォルトの名無しさんNGNG
>>956
素数列挙アルゴリズムのスレがあったろ
0958デフォルトの名無しさんNGNG
>>956
> 上限が100000000以上の場合、 配列を用意することができません。
ここの部分を詳しく説明してみそ。
0959956NGNG
>>958
MAXが与えられたとして、
エラストテネスのふるい
を利用したMAXまでの素
数を列挙するアルゴリズ
ムって、array[MAX]を最
初に宣言しますね。で、
全部1に初期化してから
素数じゃないヤツを0に
して、array[i]が1なら
ばiが素数となるはず。
もしこのときMAXが100,
000,000を超えっちまっ
たら、
int array[100,000,000];
なんて宣言できないじゃん?
0960デフォルトの名無しさんNGNG
疎な配列使え
0961名無しNGNG
**pのようなポインタのポインタはどのような時に使うのですか?
0962デフォルトの名無しさんNGNG
>>961
strtolとか。
ポインタ変数のアドレスを渡してそこにポインタを入れてもらう。
0963956NGNG
>>961
ポインタを指すポインタ
p is a pointer to pointer
英語で読むと分かりやすい。初心者の俺がいうのもなんだが。
だれか俺の質問956にも答えてくらはい。
0964名無しNGNG
>>962,963
ありがとうございました。
0965デフォルトの名無しさんNGNG
>>959
エラトステネスのふるいってアルゴリズムを勘違いしていた。スマン。

ふるいをかける区間を分割してみたら。
0966デフォルトの名無しさんNGNG
質問なのですが、
ネットの回線速度をタスクバーに表示したいのですが
どうしたらいいのかよく分からないのです。
回線速度を折れ線グラフで表したいのですが・・・。
どうかよろしくお願いします。
0967デフォルトの名無しさんNGNG
>>966
どこまでできてんの?
0968966NGNG
実はTClockの回線速度を折れ線グラフにして
TClockでタスクバーに表示されてる文字と重ならないようにしたいのです。
現在のは重なってしまうため、TClockの表示が見づらくなってしまうのです。
なので、回線速度はまた別のアプリとして作りたいのです。

TClockにはソースが同梱されてるのでその中の
回線速度を表示するソースだけmake、コンパイルすれば
いいと思ったのですが考えが甘かったみたいで
DOS上でコンパイルすると
「EXEファイルのエラーです」
とでてしまうのです。

それでここで聞いてみたのです。
最初は投げやりな感じですいませんでした。
よろしくお願いします。
0969966NGNG
ソースアップしたほうがいいですか?
0970デフォルトの名無しさんNGNG
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0971デフォルトの名無しさんNGNG
とりえあえずは。
0972デフォルトの名無しさんNGNG
> ネットの回線速度
> タスクバー

スレ違い。
0973デフォルトの名無しさんNGNG
http://www53.tok2.com/home/vbc/cgi-bin/upload/source/up1012.lzh
これです。
どうかよろしくお願いします。
0974デフォルトの名無しさんNGNG
ここって、質問する時にプログラムを晒してもいいの?
0975デフォルトの名無しさんNGNG
>>974
程度にもよる。1000行以上のプログラムを見てくれっていわれても誰も見ない。
0976デフォルトの名無しさんNGNG
>>974
短かいプログラムであれば・・・
0977デフォルトの名無しさんNGNG
ものすごく初歩的なことで悪いんですが、
for(i=0; i<N; i++){
  …
 for(j=0; j<N; i++){
   …
}
}

こういうループの中で、配列の内容を書き換えて、
その配列をループの外でprintfで出力しても、書き換えた値がちゃんと出力されますよね?
何度やっても、不思議なことに、どこから出てきたか分からない数値が出てくるんです。

それでプログラムに間違いがあるのかと思ったんですが、ループの中で一度printfで出力させてから、
ループの外で再び出力すると、正確な値が出てくるんです。

やっぱりどこかで気付かない間違いをしてるんですかね?
0978デフォルトの名無しさんNGNG
>>974
ここは添削スレじゃない。
ソース丸投げして 「さあ問題箇所を探してくれ」 とやった場合、大抵無視される。

このスレで質問したいなら、ソース丸投げではなく、問題箇所をはっきりさせて
おいた方がいい。
質問を説明するためにソースが必要なら、問題が再現する最低限のソースを
書けばいい。
0979966NGNG
だめなんですかね・・・?
0980デフォルトの名無しさんNGNG
>>977
肝心なループの中の処理を晒せ
0981デフォルトの名無しさんNGNG
>>979
>>972 と >>1 を見ろ。
0982デフォルトの名無しさんNGNG
すいませんでした。
別スレで聞いてきます。
0983デフォルトの名無しさんNGNG
int main()
{
double x[4],y[4];
double a[4][4];
int i,j,k;

for(k=0; k<13; k++){
for(i=0; i<4; i++){
y[i]=0;
for(j=0; j<4; j++){
y[i]=a[i][j]*x[j]+y[i];
}
}

for(i=0; i<4; i++){
x[i]=y[i]/max(y);
}

for(i=0; i<4; i++){
printf("x%d=%f ",i+1,x[i]);
}
printf("\n");
}

こんな感じなんですが。ちなみにこのprintfは、ちゃんと正確に出力されてます。
0984デフォルトの名無しさんNGNG
>>977
内側のfor文のi++は?
0985デフォルトの名無しさんNGNG
行列を扱うためのループです
0986デフォルトの名無しさんNGNG
>>984
j++の間違いだろうね
0987デフォルトの名無しさんNGNG
switch文を入れ子にすることは可能ですか?
ビルドしてみると、エラーが出てしまうのですが
なんとかなりませんか?
0988984NGNG
>>986
そこが違うのでは?と言うつもりで書いたんだけど・・・
普通に説明されてしまったよ・・・
0989デフォルトの名無しさんNGNG
>>987
可能。そーすさらせ。
0990977=983NGNG
>>984 >>986 >>988
これは単なる書き間違いです。
すいません。
983でループの中の処理を晒しました。
0991デフォルトの名無しさんNGNG
そろそろ新スレ作ります
0992デフォルトの名無しさんNGNG
新そばをおながいします
0993デフォルトの名無しさんNGNG
>>983
う〜ん・・・
0994デフォルトの名無しさんNGNG
うんこ
0995デフォルトの名無しさんNGNG
> double x[4],y[4];
> double a[4][4];

一体これはいつ初期化されているんだい?
未初期化のまま

> y[i]=a[i][j]*x[j]+y[i];

とかやったって、ゴミが演算対象になるだけだろう。
コンパイラは警告を出さないのか?
0996デフォルトの名無しさんNGNG
>>995
そうだな、staticを付けて0初期化させとかないとな。
0997デフォルトの名無しさんNGNG
スレが996まで行ってるのに
平然と会話をするこの様は
漏れにとっては不思議で仕方が無い
0998977=983NGNG
>>995
>>996
いえ、初期化はちゃんとしてます。
ただ、重要なのはループの中身だと思って書いてません。
0999デフォルトの名無しさんNGNG
h
1000デフォルトの名無しさんNGNG
1000!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。