- 1 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:49:22 ]
- C言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 22 pc11.2ch.net/test/read.cgi/tech/1196489491/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 101 pc11.2ch.net/test/read.cgi/tech/1197132472/
- 175 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 18:36:41 ]
- >>167,173
●文字列にする方法 char pai ⇒ const char *pai '3'など ⇒ "3" printf() ⇒ printf("%s", ... ●ワイド文字にする方法 char pai ⇒ wchar_t pai '3'など ⇒ L'3' printf() ⇒ wprintf(L"%lc", ... かなあ? いまいち自信なし。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 19:18:52 ]
- >>167
char pai[3][9] = { {'1','2','3','4','5','6','7','8','9'}, {'@','A','B','C','D','E','F','G','H'}, {'一','二','三','四','伍','六','七','八','九'}, }; ↑この時点でスタック壊してるな。 何が起こっても不思議ではない。 ワイド文字にしたほうがよい。 >●ワイド文字にする方法 >char pai ⇒ wchar_t pai >'3'など ⇒ L'3' >printf() ⇒ wprintf(L"%lc", ... 処理系がわからんが、VCなら L'3' じゃなくて_T('3')のほうがいい。
- 177 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 19:38:19 ]
- >>161
n = (m+0.5)/d;
- 178 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 19:53:57 ]
- >>176
ワイドじゃないとダメだから _T にしたらあかんがな。
- 179 名前:デフォルトの名無しさん [2007/12/25(火) 23:07:29 ]
- 某サイトの問題をやってみました。
【問題】 文字列Aのm番目からn個分の文字列を配列Bにコピーする サブルーチンを作れ。 ただし、m,nの値が文字列Aの範囲を超えるような値が入力 されたら1を返し、正常にコピーできたら0を返す。 こんなプログラム組みました。 問題中のm,n,文字列A,Bの各オブジェクト名,サブルーチンの返値は 勝手に解釈して組んでます。(正常時TRUE(1),異常時FALSE(0))
- 180 名前:デフォルトの名無しさん [2007/12/25(火) 23:08:45 ]
- #include <stdio.h>
#include <string.h> #define STR_MAX 10 #define TRUE 1 #define FALSE 0 typedef unsigned short BOOL; BOOL BlockCopy( unsigned char*, unsigned char*, short, short ); // メイン関数 int main( void ) { unsigned char szSrcName[STR_MAX+1]; unsigned char szDstName[STR_MAX+1]; short nStartPos = 0; short nCopyLen = 0; printf( "Input Str : " ); scanf( "%10s", szSrcName ); printf( "Input StartPosition : " ); scanf( "%d", &nStartPos ); printf( "Input CopyLength : " ); scanf( "%d", &nCopyLen ); if( BlockCopy( szDstName, szSrcName, nStartPos, nCopyLen ) == FALSE ) { puts( "Error!!" ); return 1; } printf( "入力文字列 : %s\n", szSrcName ); printf( "コピー文字列 : %s\n", szDstName ); return 0; }
- 181 名前:179,180 [2007/12/25(火) 23:09:25 ]
- // サブルーチン関数
BOOL BlockCopy( unsigned char* s1, unsigned char* s2, short m, short n ) { int i; short nLen = strlen( s2 ); if( nLen < m || nLen < (m+n) || nLen < n ) return FALSE; memcpy( s1, s2+m, sizeof(char)*n ); return TRUE; } 動作的には問題ないと思ってますがアドバイスお願いします。 また、この組み方はセンスないぞと思われる方は、よりよい プログラムの組み方を教授して頂ければ幸甚です。
- 182 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 23:20:56 ]
- Windows2003Server上でVMware Serverを使ってRHE3を動かしてます。
その上でlibjpeg.soを使ったjpeg圧縮ライブラリを作りましたが、 jpeg_create_compress()を実行した時点で以下のメッセージが出て先に進みません。 JPEG parameter struct mismatch: library thinks size is 372, caller expects 376 構造体のサイズが合っていないと言ってるのはわかるのですが、 libjpeg.soとjpeglib.hのVerは合わせてありますし、 同じ名前のファイルが複数存在しない事も確認済みです。 どなたか解決方法を知らないでしょうか?
- 183 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 23:40:13 ]
- >>181
・無闇とshortを使うのはよくない。 ・sizeof(char)が1であることを前提としている関数を使うのにsizeof(char)を掛けるのはおかしい。 ・「文字列をコピーする」関数なのだから、ナルターミネートは保証するべき。 ってことで、判定部を除くとこれでいい。 sprintf(s1, "%.*s", n, s2 + m);
- 184 名前:デフォルトの名無しさん [2007/12/25(火) 23:55:05 ]
- C言語でポートを選び、指定して
相手とファイルをやり取りするってプログラムを作りたいんだが。 どんな関数とか使うんだ?接続など
- 185 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 23:57:46 ]
- >>184
環境と使うライブラリによって違う。
- 186 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:05:04 ]
- 相手==
- 187 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:13:18 ]
- >>180
その手の文字列処理関数は、コード見ないとどの引数が入力でどれが出力か分からないから、 プロトタイプ宣言だけで分かるようにconst付けたり仮引数名を工夫したりするといい BOOL BlockCopy(unsigned char* dst, const unsigned char* src, short, short );
- 188 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:24:37 ]
- >>182
.so と .h の不整合ではなくて、.so を作ったときのコンパイラ(構造体 のパディング)とそれを利用するプログラムのコンパイラ(構造体のパディ ング)が違うんだろう。
- 189 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 08:30:05 ]
- >>182
#pragma pack(push,4) #include"jpeglib.h" #pragma pack(pop) もしくはコンパイルオプションで指定
- 190 名前:182 mailto:sage [2007/12/26(水) 10:42:05 ]
- >>189
#pragma指定を追加する事で無事にプログラムが流れました。 gdbで構造体を確認しましたが壊れている様子もありませんでした。 どうもありがとうございました。
- 191 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:01:12 ]
- printf("%.4s", s);
の%.4sってどういう意味でしょうか?
- 192 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:08:20 ]
- >>191
最小幅と最大幅の指定のうち、最小幅を省略したもの
- 193 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:45:17 ]
- >>192
ありがとございました。
- 194 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:07:06 ]
- 質問いいですか
#include <stdio.h> int main(void) { printf("%d\n",10*2); return 0; } この場合関数の型名ってあんまり意味ってないんですよね? 変数宣言などするときに意味があったりするんですか?
- 195 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:16:37 ]
- もうちょっと何が聞きたいのかはっきりしてくれ。
関数ってどっちの関数?main?printf? 型名って何の型名?引数?戻り値?
- 196 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:21:20 ]
- >>194
質問の意味がよくわかんね printfは可変長引数 floatとか使いたいとき明示的に 接尾子のfを付けたりする
- 197 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:24:32 ]
- main の戻り値に意義が見いだせないという事なのか、
それとも printf の戻り値を使ってないという事に関する疑問か。
- 198 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:43:08 ]
- うぉ・・・エスパーできん・・・
- 199 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:48:27 ]
- これは10*2に対して、一時変数に格納する意味なんて無いよね?っていうことでは
- 200 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:51:30 ]
- >>195
だって苦しむなんちゃらには 型名 関数名(引数){なんちゃら} で関数って書いてあったんだもの>< >>199 そのとおりでございます
- 201 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:04:26 ]
- >>200
やっぱりわかんね。 int temp = 10 * 2; printf("%d\n",temp); と printf("%d\n",10*2); は、最適化されて同じバイナリが吐かれるよね?、ということを聞いてる?
- 202 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:08:03 ]
- あー printf にも戻り値は int型 って関数バイブルみたいな本に書いてあったな。
そういうことじゃ?
- 203 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:09:55 ]
- >>201
#include <stdio.h> int main(void) { printf("%d\n",10*2); return 0; } の場合intは文的には必要だが機能としてはまったく意味はない??が #include <stdio.h> int main(void) { printf("%d\n",(int)(1.05 * 360)); return 0; } のようにキャスト変換などするとintが使用されるっていうか 意味があるっていうか・・・・ そんな感じです
- 204 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:11:45 ]
- >>203
そもそも関数の型の意味を理解していないな。 int mainのintは戻り値(OSに正常終了か否か)をreturn 0 か1かで必要だからint mainなんだよ。
- 205 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:13:56 ]
- >>204
まだそこまでたどりついてません・・・ 今苦しんでのキャスト変換のところなんで もっと勉強すればわかることなんですね
- 206 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:17:41 ]
- >>203
関数の戻り値が分かってない? これは何をしているかわかる? int unko(int x) { int z = x*2; return z; } int main() { int temp = unko(100); return 0; }
- 207 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:18:11 ]
- キャスト変換はただその時の型を「一時的に強制的のその型にする」って理解すればいいと思うよ。
int main(void) { 〜〜〜 return 0; } は、関数の章で学ぶと思うから、 今は明示的に書かなければならないと思っておけばOK。 あまり先飛びすぎても混乱するだけだしね。
- 208 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:46:21 ]
- >>203
整数リテラル 10 はそれ自体としてintという型を持っている。 整数リテラル 2 もintで、int*intの結果はint型になることになっている。
- 209 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:52:30 ]
- ってそういうことじゃないのか。
- 210 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:03:58 ]
- >>194
とりあえず総じて何が聞きたいのか理解できん。 まずはここあたりを順に読んで、基本を覚えよ。 ttp://homepage1.nifty.com/toshio-k/prog/c/
- 211 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:29:52 ]
- >>205
そのサイトは地雷原だから、他で勉強することを強くお勧めする。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:31:17 ]
- www9.plala.or.jp/sgwr-t/
ここオヌヌメ 友達から教わったけど、ここだけでCの基礎はバッチリ・・・?覚えたよ ていうかC言語でググると一番上に出てくる
- 213 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:43:51 ]
- >>212
あー、間違いをそれと知らずに教わるにはいいかも。
- 214 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:44:32 ]
- どういうこっちゃ?
- 215 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:46:46 ]
- 今時 C から始めるのは損だよ。
C++ の本でも最初のうちは C と似たようなもんだし、 その延長で C++ まで覚えてしまった方が絶対得だよ。
- 216 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:47:18 ]
- いきなりC++はどうだろうか。
C++はしょっぱなからクラス教えないっけ?
- 217 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:57:32 ]
- C++が仕様としてカバーしているCとしての意味での、C++ってことじゃない?
まずCをやるんだけど、mallocとかFILE*とか、C++ではとって変わった部分を捨てて、 そのままC++のクラスなりnewなりをやれ、みたいなぁぁぁ
- 218 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:58:16 ]
- >>214
間違いがあるってことだろ。間違いかどうかは微妙だけど、こういう書き方されるともにょる。 >つまり、書き換える必要のある文字列は、一旦文字型配列に格納してから処理をするのが無難だと言えます。 # 無難も何も、文字列リテラルを書き換えるのは論外なわけで……
- 219 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:08:39 ]
- 言葉が足りないんじゃないか
格納=コピーならいいけど、ポインタだけ格納してもね
- 220 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:29:34 ]
- #include<stdio.h>
int main(void) { int i,d=97,c=65; char ca; scanf("%c",&ca); for(i=65;i=<90;i++){ if(ca=c){ ca=d; breke; } else{ i++,d++,c++; } } printf("ca = %c ",ca); return 0; } なんでこれがコンパイルできひんのじゃ!C言語死ねッ!!!!!
- 221 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:47:14 ]
- if(ca=c)がおかしい
比較じゃなく代入してる
- 222 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:49:14 ]
- ほんまや!!!!!
すまんかった・・・・・
- 223 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:49:59 ]
- んでfor分の終了条件が=<なんて演算子はない。 <= だ。
ついでにbreak。brekeなんてない。
- 224 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:50:30 ]
- ていうかコンパイルエラー見れば原因わかるんだけど、コンパイラ何使ってるんだ???
- 225 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:51:48 ]
- ボーランド
プロンプト読めない
- 226 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:53:10 ]
- hp.vector.co.jp/authors/VA017148/pages/install/bcc.html
オヌヌメ
- 227 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:56:51 ]
- ありがじゅう。
お気に入り追加した この恩は忘れるまで忘れない!
- 228 名前:デフォルトの名無しさん [2007/12/27(木) 04:03:27 ]
- >>220
コンパイラタン(AA略)「なんでよ私一生懸命やってるじゃん!なんでそんなこと言うの!・・・ヒドイヨ・・・・・」
- 229 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 04:09:30 ]
- コンパイラタン「と、途中でそんなの挿入したら、(エラーが)で、出ちゃうじゃない・・・・・!!!」
- 230 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 04:37:37 ]
- その夜”ピ、ピ、”と言う不思議な音が深夜の闇の中木霊しつづけた・・・
- 231 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 04:43:19 ]
- コンパイラタン「だ、だめっ!そこに"Shift"しちゃダメェェェェェ!!!」
- 232 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 07:24:49 ]
- 自分で色々検索して、何度も本を読み返したのですが判らないので質問です。
下記のソースでコンパイルは通るのですがIF文で条件外でも処理を実行してしまうようなのです。 どこが間違っているのか教えてください。お願いします。 #include <stdio.h> #include <ctype.h> main() { int i; int date[10]; for(i=0 ; i<10 ; i++) { scan: printf("%d個目のデータ:", i+1); fflush(stdin); scanf("%d", &date[i]); if(isdigit(date[i]) == 0) { printf("数値を入力してください。\n"); date[i] = 0; goto scan; } } printf("前から6個目のデータ:%d", date[5]); return 0; }
- 233 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:13:57 ]
- scanf("%d", &date[i]);
既にここで入力を数値として変換してしてるので scanfの戻り値を調べるといいよ。 isdigitは文字が('0'〜'9')かどうか判定する関数。 それとこの状況でわざわざコードを読みにくくするgotoを使用する意味はない。 whileとbreakで代用したほうがいい。
- 234 名前:232 mailto:sage [2007/12/27(木) 08:27:31 ]
- >>233
ああ、そっか。%dだから受け取った時にすでに数値になってるんだ。なるほど。 じゃあこの場合文字を入れさせないようにするにはどういう風にしたら良いのでしょうか? >whileとbreakで代用したほうがいい。 たしかにその通りです。気をつけます。
- 235 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:27:50 ]
- >>232
> main() { > int i; > int date[10]; > > for(i=0 ; i<10 ; i++) { > scan: > printf("%d個目のデータ:", i+1); > fflush(stdin); 入力ストリーム(stdin)のフラッシュは未定義 したこと無いけどたぶんフラッシュされない。 > scanf("%d", &date[i]); > if(isdigit(date[i]) == 0) { isdigitの引数は文字。'1'は文字。1は数値。ってな感じ。 > printf("数値を入力してください。\n"); > date[i] = 0; > goto scan; > } > } > printf("前から6個目のデータ:%d", date[5]); > return 0; > } >
- 236 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:28:52 ]
- >>232
まず、直接関係ないが、 goto scan; ↑これは止めれ。こういうときはwhile文を使うのがセオリーだ。 isdigit()は「文字が数字かどうか」を判定する関数だよ。 scanf()で変換すると「数値」(int型)になるので、 scanf("%d", &date[i]); if(isdigit(date[i]) == 0) { これだとisdigit()は常に0を返すはず。 それに、scanf("%d", &date[i]); の場合、数字の入力を期待しているので、 それ以外の文字は入力されてもdate[i]に入らない。
- 237 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:38:22 ]
- >>210
main() これでCマガジンに連載できるなんて…。・゚・(ノД`)・゚・。 休刊もやんぬるかな。
- 238 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:29:02 ]
- >>237
省略した場合はintって決まりなかった? だから一応正しいんじゃない?
- 239 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:31:09 ]
- >>234
scanfの戻り値を利用する scanfはスキャンに成功した数を返すから、 今回のケースで文字を入力されたら0が返る
- 240 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:35:56 ]
- >>232
>scanf("%d", &date[i]);
- 241 名前:デフォルトの名無しさん [2007/12/27(木) 09:43:47 ]
- 途中でエンター押しちゃったw
>>232 >scanf("%d", &date[i]); こういう取り方は文字/数字チェックそのものに意味が無いのでやめ 普通はバッファの文字列変数を用意させて、そこに入力させる。 それをisdigit()に通してクリアしたら、その時点でdate[i]に代入するようにすればいい。
- 242 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:13:33 ]
- たぁすけてぇぇぇ!
結果がへんになる!!! #include<stdio.h> int main (void) { int a,c; float b,d; b=1,d=1; scanf("%d",c); for(a=1;a<=1000;a++){ b=b+d; if(b*b==c){ break; } if(b*b<=c) d=d*0.1; } printf(" %d の平方根は= %f ",c,b); return 0; }
- 243 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:21:53 ]
- >scanf("%d",c);
- 244 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:27:04 ]
- 真に申し訳ございません。どうゆうこと?
- 245 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:30:23 ]
- あああああああああああああああ
すいませんすいませんすいません! もうしませんもうしませんもうしません!
- 246 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:22:54 ]
- 辞書検索の2分探索を下みたいに書いたんですけど、
????のところ(該当しなかった場合)が思いつきません。 助けてくださいです… char a[20]; char b[20]; int hi,lo,i; 略 hi=i; i=i/2; lo=0; while(1){ if(strcmp(b,a) < 0){ hi=i; i=i-(hi-lo)/2; }else if(strcmp(b,a) > 0){ lo=i; i=i+(hi-lo)/2; }else if(strcmp(b,a) == 0){ printf("あった"); break; }else if( ???? ){ printf("そんなものなかった"); break; } }
- 247 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:30:21 ]
- >>246
そこは if (lo > hi) を入れたいんだと思うが、 突っ込みどころが多すぎるからもうちょっと練り直して来い。
- 248 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:34:43 ]
- せっかくなので1つ突っ込んでくだしあ
- 249 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:45:05 ]
- if文の比較で最初の3通りのどれかに必ず含まれるから最後のelseは
絶対通過しない、まあelse外せばいいけど。 で、1ループでstrcmpは1回呼べばいいべ。 あと文字列が終わったのをチェックしないとね。 略の部分を略さないでテスト用に値設定したやつさらしてみてね。
- 250 名前:246と248 mailto:sage [2007/12/27(木) 14:55:46 ]
- あ、ほんとだ。
ちょとまってください。
- 251 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:10:06 ]
- #include <stdio.h>
int main(){ int i,j; for(i=1;i<=9;++i) printf("%2d ",i); printf("\n--------------------------\n"); for(i=1;i<=9;++i){ for(j=1;j<=9;++j) printf("%2d ",i*j); printf("\n"); } return 0; for文の練習で書いた上の九九を表示するプログラムをwhile文だけで書けないかなぁと思って
- 252 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:10:38 ]
- >>251の続き
#include <stdio.h> int main(){ int i=1; while(i<=9){ printf("%2d ",i); i++; } printf("\n--------------------------\n"); i=1; int j=1; while(i<=9){ while(j<=9){ printf("%2d ",i*j); j++; } printf("\n"); i++; } return 0; } このように書いてみたのですが1の段以降改行だけでプログラムが終了してしまいます どうやったら上手く動かせるでしょうか
- 253 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:13:52 ]
- >>252
jの値がどういう風に変化するか追ってみよう。
- 254 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:13:58 ]
- >>252
while (j<=9) のループ抜けたらj を1に戻さないと。
- 255 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:20:50 ]
- あーjが9のままだから次以降のループはスキップされちゃうのか
ヒントありがとうございました
- 256 名前:246他 mailto:sage [2007/12/27(木) 15:54:11 ]
- せっかくレスくれたのに放置ですみません。
またあとで伺いにきます。 かしこ
- 257 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 16:38:48 ]
- 大学が決まって4月がで暇なのでC言語を勉強しようと思っているのですが
苦しんで覚えるC言語 ttp://homepage3.nifty.com/mmgames/c_guide/ というサイトを見つけたのですがこのサイトはどうでしょうか? 初心者にいいサイトや本を教えてください
- 258 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 16:56:00 ]
- それでいいよ
- 259 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 17:31:45 ]
- >>257
おk
- 260 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 17:37:17 ]
- いいのかよw
- 261 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:13:44 ]
- >>257
そのサイトはダメ出しされているよ。
- 262 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:33:23 ]
- ダメ出しすれば著者を超えた気分になれるよね
- 263 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:40:27 ]
- あんたは小石を跨いでも小石を超えた気分になれるのか?
- 264 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:54:03 ]
- aho
- 265 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:57:48 ]
- >>257
そのサイトで勉強すると、>19や>205みたいなことを書くようなお馬鹿になっちゃうよ。
- 266 名前:デフォルトの名無しさん [2007/12/27(木) 19:03:50 ]
- >>257
参考になるけど、やっぱり本がいいよ。 独習Cとか、やさしいCね。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:04:05 ]
- どうなろうと後で矯正するからいいよ。
- 268 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:05:44 ]
- まあ初心者はどのサイトから始めてもいいと思うけど、
そこに留まらずいくつかのサイトを回った方がいいよ そして宿題スレで宿題を解く ついでに簡単なデータ構造、アルゴリズムも学ぶ こんな感じで基礎はおk
- 269 名前:デフォルトの名無しさん [2007/12/27(木) 19:09:25 ]
- 他のサイトを見るたびに、こんなやり方があったのか!
ってなって悲しくなるぞ。
- 270 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:37:32 ]
- 他のサイトを見るたびに、こんなやり方があったのか!
ってなって嬉しくなるぞ.
- 271 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:50:21 ]
- 特定のサイトにいついたことはないなあ
適当に検索して、 その日見つけたサイトをぱらぱらと読む サイト規模にもよるけど1日ありゃ十二分に読み終われるとこばっかだし
- 272 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 20:08:52 ]
- おれのお勧め、更新は止まってるけど・・・
mikata.curiocube.com/index.php
- 273 名前:デフォルトの名無しさん [2007/12/27(木) 20:10:38 ]
- WisdumSoftでC言語の基礎文法を覚えて
(例文の内容にアニメ好きがかもしだされているが) Programing Placeでデータ構造とかその他の 知識を学ぶ。 で理解できない所(ポインタとかかな)を重点的に 載せてる本でさらに学ぶ。 あとは、経験値をつけていくだけだ。
- 274 名前:273 [2007/12/27(木) 20:11:47 ]
- 間違えたWisdomSoftだ
- 275 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:02:21 ]
- 変数宣言と代入ってつなげられるんですか?
|

|