[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 12/28 00:11 / Filesize : 251 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 20



1 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 22:34:33 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 19
pc11.2ch.net/test/read.cgi/tech/1190342593/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 97代目
pc11.2ch.net/test/read.cgi/tech/1191937213/

231 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:04:00 ]
doble型の変数をprintfで表示するときには整数で表示するにはどうしたらいいですか?


232 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:08:21 ]
double x = 1;
printf("%d\n", (int)x);
こうか?

233 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:08:42 ]
>>231
%.0f

234 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:09:56 ]
>>232
>>233
どちらでもできました!ありがとうございました

235 名前:デフォルトの名無しさん [2007/10/20(土) 20:30:34 ]
今までCとC++は同じものだと思っていたけれど、
MFCを使ったC++プログラミングは、C言語と似ているようで
似ていないですね。

236 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:36:52 ]
C++はCの拡張だから、Cと同じように書くこともできる
単にC++をCとして使ってただけだろ

237 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:37:27 ]
BetterC

238 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:40:47 ]
CとC++は全然違う言語だと思ってもいいよ
クラス、例外処理、テンプレート、新たに覚えることはたくさんある

239 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 21:02:21 ]
>>238 の言うとおり、別物と認識した方がいい。
同じだと思っている人と一緒に仕事するとよーっくその事を実感することになる。



240 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:10:59 ]
引数の数が可変の関数の作り方を勉強したのだが、
printfって、%fでdouble型もfloat型も受けるよな?

それが、よく分らなくなった。

double型とfloat型って、サイズが違うはずだから、
引数から取り出すとき、区別がつかなくて、おかしくならないか?


241 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:13:34 ]
www.kijineko.co.jp/tech/superstitions/printf-format-for-double.html

というわけで、可変引数だと暗黙的にfloatはdoubleに変換されるらしい


242 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:13:52 ]
可変引数では int以下→int、float→double になる

243 名前:デフォルトの名無しさん [2007/10/20(土) 23:50:12 ]
>>240
でもそういうのってコンパイラによって違うのでは?
それってANSI Cで決められてたっけ?

244 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:07:10 ]
>>243
ANSIというか規格で決まっている。
floatは受ける型がわからない関数に渡されるときはdoubleに格上げされる。
これはプロトタイプの与えられていない関数の引数、あるいは可変引数のときに起こる。

なので、printfに渡すときはfloatもdoubleもどちらもdoubleとして渡されることになる。

似たようなことがcharにも言えて、これはintに格上げされる。

245 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:21:25 ]
ちょっと聞きたいんだけど
#include "myheader.h"

int main(){

int list_num[100];
FILE *fp;
int i;
char buf[100][30];

というプログラムの最初の部分において

gcc -c main.c
main.c: 関数 `fgword' 内:
main.c:3: error: 文法エラー before '{' token
main.c:9: error: 文法エラー before "fp"
make: *** [main.o] エラー 1

main関数内でいきなりこういうエラーがでるんだけど
どういうことなんでしょうか?
main関数内にfgwordは使ってないんですけど


246 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:22:49 ]
たぶん myheader.h の中がおかしい

247 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:35:24 ]
myheader.hの中身のプロトタイプの
int fgword(int);
にセミコロンがなかったからこういうエラーがでたようです。
ありがとうございます。

突然こんなエラーでてきてびびった。


248 名前:デフォルトの名無しさん [2007/10/21(日) 03:41:30 ]
デスクトップパソコンで
処理させるのと
ノートパソコンで処理
させるのと
音が違うな。
デスクトップはうるさくてやってられない。
実行に10分くらいかかるプログラムを動かしてるとき
デスクトップだとかなり沸いてくるし。

249 名前:デフォルトの名無しさん mailto:age [2007/10/21(日) 03:45:40 ]
videointroplayer.web.fc2.com/v.htm?ii9YN1kO-TK36%+8mdKsm-z3pn32%+WhqyiIrhz0F110%+iwCjWdz0Gid150%+Kjtps4byn7a119%+@1@_%E4%BC%9A%E9%95%B7%E7%89%A9%E8%AA%9E



250 名前:デフォルトの名無しさん [2007/10/21(日) 12:38:50 ]
1bitのファイルはつくれるんでしょうか?
charだと8bitになってしまいます

251 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 12:39:12 ]
char* ch;
ch = "test1";
ch = "test2";

↑で"test2"を代入した時点でメモリリークしてますか?

252 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:11:01 ]
>>251
メモリリークの意味を考えてください
確保したメモリを使用後も開放せずにいることですよ
で、それは該当すると思いますか?
そもそも領域確保していないのに

253 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:13:03 ]
>>251
「動的に」が抜けてた

静的に確保されたものは終了後、自動的に開放されます


254 名前:デフォルトの名無しさん [2007/10/21(日) 13:59:07 ]
スレッドが開始される前に、mainで全ての処理を終えてしまうようです
そのためスレッド稼働中の判定がうまくいきません どうしたらいいですか?

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

void fnc(void *p){
int m=(int) p;
Sleep(m*400);
printf("%d end\n",m);}

main(){
HANDLE m[10]; DWORD tp[10];
int n=0,k;
for(k=0;k<10;k++)tp[k]=0;k=0;
while(n<100){
GetExitCodeThread(m[k], &tp[k]);
if(tp[k]!= STILL_ACTIVE){
m[k]=reinterpret_cast<HANDLE>(_beginthread(fnc, 0, (void *)n));n++;}
k++;}
Sleep(10000);}

255 名前:254 [2007/10/21(日) 14:04:27 ]
まちがえました

256 名前:254 [2007/10/21(日) 14:11:11 ]
HANDLE m;
DWORD flg;

m=reinterpret_cast<HANDLE>(_beginthread(fnc, 0, NULL));
このようにスレッドを開始したとき、スレッドが終わると次の関数を終了コードを返すはずですよね?
GetExitCodeThread(m, &flg);

なんかいつまでもアクティブのままなんですが

257 名前:254 [2007/10/21(日) 14:18:10 ]
_beginthreadは終了しても終了コード返しませんか?

258 名前:デフォルトの名無しさん [2007/10/21(日) 14:20:02 ]
なんかクリエイトスレッドは、不都合があるってかいてあったんですけどこっちのほうがいいですか?

259 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:29:28 ]
msdn2.microsoft.com/ja-jp/library/kdzttdcb(VS.80).aspx

>start_address で起動されるルーチンは、__cdecl 呼び出し規約を使用する必要があり、戻り値を持つことはできません。



260 名前:デフォルトの名無しさん [2007/10/21(日) 14:36:49 ]
_beginthreadexを使ったらうまくいきました

261 名前:デフォルトの名無しさん [2007/10/21(日) 14:56:09 ]
質問なんですけど、全てのスレッドが終了したら停止したいんですけど、最後の部分の判定は駄目なんでしょうか?
なんか作業が終わる前に停止してしまいます

#include <process.h>
#include <stdio.h>
#include <windows.h>
#define ThreadNum 100

unsigned __stdcall fnc(void* p){
int m=(int) p;
Sleep((m%10)*10);
printf("%d end\n",m);}

main(){
HANDLE m[ThreadNum];
DWORD tp[ThreadNum];
int n=0,k;
for(k=0;k<ThreadNum;k++)tp[k]=100;k=0;
while(n<100){
GetExitCodeThread(m[k], &tp[k]);
if(tp[k]!= STILL_ACTIVE){
m[k]=reinterpret_cast<HANDLE>(_beginthreadex(NULL, 0, fnc, (void*)n, 0 ,NULL));n++;}
k++;if(k>=ThreadNum)k=0;}

do{n=0;
for(k=0;k<ThreadNum;k++){
GetExitCodeThread(m[k], &tp[k]);
if(tp[k]!= STILL_ACTIVE)n++;}
}while(n>=ThreadNum);
}

262 名前:デフォルトの名無しさん [2007/10/21(日) 14:57:22 ]
すべてのスレッドがアクティブでは無いとすれば、作業が全てすんでいると思うのですが

263 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:57:52 ]
いい加減スレ違いだって気づけ

264 名前:デフォルトの名無しさん [2007/10/21(日) 14:58:41 ]
すみません 解決しました
一番最後は
while(n<ThreadNum);
でした

265 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:19:53 ]
停止を待つなら
for(n=0; n<ThreadNum; n++)
{
if(m[n]) WaitForSingleObject(m[n], INFINITE);
}

というかreinterpret_castってC++じゃねーかww

266 名前:デフォルトの名無しさん [2007/10/21(日) 15:30:27 ]
>>265
それはEXではない方の場合でしょうか?

267 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:34:46 ]
マルチスレッドという時点でVisual C++依存
よってCの範疇ではないのでスレ違い

268 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:46:23 ]
マルチスレッドなんて素人が無理に使うもんじゃないよ。


269 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:16:06 ]
こういう簡単なポインタに関するプログラムがあるんですが、
実行するマシンによって(無論コンパイルはそのコンピュータ上でやり直している)
値が変動したりしなかったりします。
どうしてでしょうか?
---------------------------------------------------
#include <stdio.h>
main(){
int i,*x;
x=&i;
*x=1;
printf("x=%o *x=%d\n",x,*x);
}
---------------------------------------------------
コンパイルコマンドは gcc hoge.c
以下は4回分の出力を横に並べたもの

Fedora7
x=27775464634 *x=1, x=27747676054 *x=1, x=27773760474 *x=1, x=27764163514 *x=1

Vine
x=27767545704 *x=1, x=27770645104 *x=1, x=27777542624 *x=1, x=27775054324 *x=1

OS X(10.3)
x=27777776240 *x=1, x=27777776240 *x=1, x=27777776240 *x=1, x=27777776240 *x=1

HP-UX
x=17777772540 *x=1, x=17777772540 *x=1, x=17777772540 *x=1, x=17777772540 *x=1




270 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:19:54 ]
*xの値が変わってないんならどうでもいいことじゃね?

271 名前:デフォルトの名無しさん [2007/10/21(日) 16:21:56 ]
OSのメモリ管理法にもよるだろ。

272 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:24:15 ]
>>269
xは変数iのアドレス(スタック上の)
OSによって異なるだろうし、同じOSでもコンパイラによっても異なる

273 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:27:19 ]
質問があるんですが

int input(char *pstr1)
{
char *ppstr1;

fgets(pstr1,SIZE_ARR,stdin);
fflush(stdin);
ppstr1=strchr(pstr1,'\n');
if(ppstr1!=NULL){
*ppstr1='\0';}
return 0;
}

このコードは、fgets関数で読み込んだ文字列から改行記号を探し
ヌル文字と改行文字を入れ替えをするということをしてるんですが
「*ppstr1='\0';」は、なぜ間接演算子抜きの「ppstr1='\0';」ではダメなんでしょうか
ご教示ください

274 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:30:24 ]
>>270-272
なるほど、ありがとうございました。

275 名前:デフォルトの名無しさん [2007/10/21(日) 16:39:43 ]
>>273
strchrは見つかった場所へのポインタを返すから、char *型のppstr1で受け取ってるだろ?
char *型、つまりアドレスを表してるわけだから、ppstr1だけだと、その見つかった場所のアドレスになるんだ。
だから、アドレスを書き換えても意味がない。
ここでやりたいのは改行をヌル文字に変える作業だから、ppstr1というポインタを介して値を変更しないといけない。
だから、間接参照演算子を使って代入作業を行わないと駄目ってこと。

276 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:43:25 ]
>>273
ところでstdinからfgetsで取得したデータの改行は\0に変換されていなかったっけ?
まちがっていたらソマソ

277 名前:デフォルトの名無しさん [2007/10/21(日) 16:45:34 ]
>>276
変換というより、最後に\0を付加するんだよ。

278 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:49:55 ]
>>276
そいつは多分getsと勘違いしてるとオモ。
getsは最後の改行コードを文字列に含まない。
fgetsは改行コードを文字列に含む。

279 名前:276 mailto:sage [2007/10/21(日) 16:54:10 ]
>>278
なるほど納得



280 名前:273 mailto:sage [2007/10/21(日) 16:56:00 ]
>>275
なるほど・・・
易しい説明どうもありがとうございました!

281 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:58:54 ]
地銀はマーチが多いよ

282 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:00:34 ]
↑誤爆

283 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:00:41 ]
大文字か小文字かどっちだ?

284 名前:デフォルトの名無しさん [2007/10/21(日) 17:34:01 ]
一般的に、スレッドの関数はインライン展開できますか?

285 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:40:37 ]
>>284
日本語でおk

286 名前:デフォルトの名無しさん [2007/10/21(日) 17:41:03 ]
for ( k=0; k<10; k++ ) x+=f(k); というのはインライン展開しませんか?

x= f(0) + f(1) + ・・・ だとインライン展開しますか?

287 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:46:41 ]
内部でfor, while, switchを使った関数はinllineの指定をしてもinline展開されないみたいだよ

288 名前:デフォルトの名無しさん [2007/10/21(日) 17:48:40 ]
それならprintfを使っても駄目ですよね

289 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 20:17:10 ]
初歩的な問題ですみません。

等比数列の初項aと公比rを入力し、格項の値とn項までの総和を計算し出力せよ。ただし、r!=1とする。(for文を使用する)

等比数列: a, ar, ar^2,・・・・・ar^(n-1)
等比数列の和:Sn=a+ar+ar^2+・・・・+ar^(n-1)


for文の部分だけでもお願いします。



290 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 20:18:41 ]
それは質問じゃないだろ
宿題スレ行け

291 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 20:22:34 ]
>>288

printfは非inlineな関数だから関係ないような気がするけど…。

292 名前:デフォルトの名無しさん [2007/10/21(日) 20:22:44 ]
>>290
申し訳ない。宿題スレの存在しらなかったっす

293 名前:名無し [2007/10/21(日) 21:58:06 ]
配列名のsumって何?

294 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 22:01:21 ]
英和辞書にでも聞け

295 名前:名無し [2007/10/21(日) 22:12:13 ]
なるほど。

296 名前:デフォルトの名無しさん [2007/10/22(月) 15:14:45 ]
void add1(int i);
int add2(int i);
void add3(int *p);
int main(void)
{
int n; /* n の値の変化に注目する */
    printf("Input integer: ");
scanf("%d", &n);
printf("Original: %d \n", n);

???????; /* 関数add1 に nを適用する */
printf("After Add1: %d \n", n); /* 関数add1 を適用した後の nを表示する */
printf("Add2: %d \n", ???????); /* nを適用した関数add2 の値を表示する */
printf("After Add2: %d \n", n); /* 関数add2 を適用した後の nを表示する */
     ???????; /* 関数add3 に nを適用する */
printf("After Add3: %d \n", n); /* 関数add3 を適用した後の nを表示する */
return 0;
}
void add1(int i) /* i に1を加えて,表示する */
{
???????}

int add2(int i) /* i に1を加えた値を返す */
{
???????
}
void add3(int *p) /* ポインタの指す値に1を加えて,表示する */
{
???????
}
????の部分を埋めてください。

297 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 15:17:57 ]
そういうのは宿題スレへ
pc11.2ch.net/test/read.cgi/tech/1191937213/

298 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 16:09:03 ]
VS2005でC言語の勉強をしています。

char str[]="日本語";

のような感じで、文字列リテラルとしてUTF-8を指定することは可能でしょうか?
ソースの文字コードをUTF-8にしても、strにはSJISのコードが入ります。

299 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:15:23 ]
wchar_t str[] = L"日本語";

で UNICODE が使える。文字コードは処理系依存
どうしても UTF8 が必要なら変換するしかないと思う。



300 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:27:11 ]
配列を大量に使ってプログラム書いてるときに気をつけないといけないことはなに?
領域こえたらセグメンテーションでるのはわかる。

301 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:29:18 ]
>>300
全然分かってないじゃん

302 名前:それはセグメンテーションフォルトだろう mailto:sage [2007/10/22(月) 18:30:41 ]
>>300
おまえは何か勘違いしている。領域を越えたらセグメンテーションが出ると言うわけではない。

303 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:40:05 ]
わかってないからきいてんじゃん

304 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:42:01 ]
配列を大量に使うプログラムにろくなのが無いこと

305 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:43:36 ]
あれをリストで実装はできない

306 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:46:45 ]
どんなアルゴリズム?

307 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 20:18:18 ]
配列好きだけど

総素数の最大数が分かっているときはリストなどより配列を使ったほうが
プログラムは簡単になるし、性能もいいのができる。

ただし、以下のことは注意しなくてはいけない。
1.要素数の最大値が決まっていないとき
  最大数を超えたときにリアロケートするという手もあるが、そういう時はリストにする。
2.中身がスカスカの配列
  メモリーの無駄。メモリーが十分あればそれでも良い。
3.配列が確保できない
  スタック上に配列を作成するときはよくある。
  こういうときはヒープは外部変数にとる。

308 名前:デフォルトの名無しさん [2007/10/22(月) 22:40:56 ]
fgetsで入力のおわりを'\0'にする方法ってありますか?
scanfだと空入力したとき結果が出ないし
getsは禁止らしいので
fgetsしか使う方法がないのですが・・・

309 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:43:06 ]
>>308 >>273



310 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:40:50 ]
>>308
fgetsで読み込まれた文字列の改行文字の後は'\0'です。
改行文字を含めたくないなら 273 の方法です…。

311 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:48:13 ]
fgetsは自動的に\0で終わる
改行文字が付いてるのを気にしないなら何もする必要なし

312 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:06:28 ]
img_data = (HOGE)malloc( sizeof( GEHO ) * img_height );
for ( int i = 0; i < img_height; i++ ) {
img_data[i] = (HOGE)calloc( sizeof( GEHO ), 3 * img_width );
}
とメモリを確保した場合、どのようにメモリを開放したらいいのでしょうか?

313 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:45:44 ]
for ( int i = 0; i < img_height; i++ )
free(img_data[i]);

free(img_data);

314 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:53:37 ]
>>312
img_dataの型がよく分からないのだが……
img_dataもimg_data[i]も両方HOGE型てなんなん

int **ar,i;
ar = (int**)malloc(sizeof(int*)*HEIGHT);
for(i=0; i<HEIGHT; ++i) ar[i] = (int*)malloc(sizeof(int)*WIDTH);
こういうのをイメージしてるなら、こう↓
for(i=0; i<HEIGHT; ++i) free(a[i]);
free(ar);

315 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 02:12:47 ]
>>307
ありがとう。
種類の違うデータを二次元配列にいれたりしてるんだけど、
printfで表示させてもあっているのに、
あるアルゴリズムをかけると変な値がでるんだよなー。

ある空白の二次元配列の1行ずつに、違う二次元配列の1行ずつを代入して
足し算していくような感じのプログラムなんだけど。
計算が対数計算だから場合わけが非常に精密にしないとだめなんだよね。



316 名前:312 mailto:sage [2007/10/23(火) 02:13:07 ]
ありがとうございます。
img_dataを開放しても、img_data[i]は開放されないんですね。



317 名前:プリンがー mailto:aaa [2007/10/24(水) 00:15:56 ]
1から10の2乗を3桁で表示するプログラムを作れ。

#include<stdio.h>
void main (void)
{
int x i;
double y;

for(i=0;i<=9;i++){
printf("数値を入力して下さい");
scanf("%d",&x);

y=x*x;

printf("y=%3lf\n",y);

}
return0;

}




であってますか?


318 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 00:24:43 ]
>>317
10の二乗は?
というか、実行すればいいだろ

319 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 00:28:55 ]
>>312
exit(0);



320 名前:318 mailto:sage [2007/10/24(水) 00:29:56 ]
>>317
ごめ 間違えた
#include<stdio.h>
int main(void)
{
int i, x;
for(i=1;i<=10;i++){
printf("%d の二乗を入力して下さい : ", i);
scanf("%d", &x);
printf("%3d\n", x);
}
return 0;
}

321 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 01:00:02 ]
printf("%3d\n", x);
printf("%3d\n", x);
printf("%3d\n", x);

322 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 02:18:57 ]
コマンドプロンプトでコンパイルするような
無償コンパイラが欲しいんですがないですか?

323 名前:デフォルトの名無しさん [2007/10/24(水) 02:20:05 ]
問題に反してるだろ?1〜10の二乗を表示なのに、11以上の二乗も表示できるようになっとるぞ?フローチャートなどで考えたらどうだ?ただプログラムを組むだけでは、上達しないよ。

324 名前:318 mailto:sage [2007/10/24(水) 06:12:02 ]
>>322
MinGW
Visual C++ 2005 Express
Lcc
cint
LSI-C86 評価版

325 名前:318 mailto:sage [2007/10/24(水) 06:13:11 ]
printf("%d の二乗を入力して下さい : ", i);
scanf("%d", &x);

x=i*i;

326 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 10:29:58 ]
>フローチャートなどで考えたらどうだ?
なるほど、>323のようになれると。

327 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:04:28 ]
>>322
Turbo-C 2.01
ttp://bdn.borland.com/museum/
お薦め。

328 名前:プリンがー mailto:aaa [2007/10/24(水) 12:29:22 ]
プログラム演習の初心者からできるいい問題集ありませんかね?
大学生協は置いてなくて・・・
講義では問題解くってことはしないのでorz

329 名前:318 mailto:sage [2007/10/24(水) 12:41:42 ]
>>328
推薦図書/必読書のためのスレッド 37
pc11.2ch.net/test/read.cgi/tech/1190192944/



330 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:42:28 ]
Boland C++ Compiler
が抜けてるな

331 名前:プリンがー mailto:aaa [2007/10/24(水) 12:53:45 ]
>>318
プログラムってどこで実行できるんすか??







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef