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


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

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



1 名前:デフォルトの名無しさん [2006/05/04(木) 08:53:09 ]
入門者向けの俺に聞けスレです。
なんでもきいてよね

581 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 23:55:29 ]
>>578
そのSQLの仕様見れ

582 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 10:03:59 ]
Visual C++ 6.0上で実行すると、「Press any key to continue」が最後に出るのに、
直接実行すると、「Press any key to continue」が出ずに
すぐに終わってしまいます。どうすれば、
直接実行したときに、「Press any key to continue」が出るようにできるのでしょうか?

583 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 10:42:11 BE:15528724-#]
main関数の最後に
puts("Press any key to continue.");getch();
と書いておく。

584 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 16:56:59 ]
>>582
末尾に
system("PAUSE");

585 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 16:59:05 ]
>>582
コマンドプロンプトを立ち上げて
実行プログラムがある場所に移動してから実行するとか

586 名前:デフォルトの名無しさん [2006/06/29(木) 20:19:49 ]
コマンドプロンプト上でカーソル位置を自由に設定する方法を教えてください。
メニュー画面を作って、メニュー番号を入力させるプログラムを作りたいの
ですが、メニュー画面を表示させることはできるのですが、
画面上の真ん中あたりに、メニュー番号を入力させるところを作りたいのですが、
そこに、カーソルをもってくるにはどうしたらいいですか?
お願いします。

587 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 20:48:22 ]
コンソールAPI でぐぐる。

588 名前:586 mailto:sage [2006/06/29(木) 21:01:06 ]
>>587
ありがとう!!

589 名前:586 [2006/06/29(木) 22:12:54 ]
ごめんなさい、やっぱわかんなかった。
VCじゃなくって、まったくのc言語だけでカーソル移動とかさせたいのだけど、
windows.hとか使わないでやる方法教えてください。



590 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 22:17:07 ]
>>589
ない。
そもそも、標準Cにコンソールとか言う概念自体がない。

591 名前:586 mailto:sage [2006/06/29(木) 22:21:42 ]
>>590
そうなのか、、ありがと

592 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 01:03:38 ]
すげぇなぁ。
>メニュー画面を作って、
>メニュー番号を入力させるプログラムを作りたいのですが、
>メニュー画面を表示させることはできるのですが、
>画面上の真ん中あたりに、
>メニュー番号を入力させるところを作りたいのですが、
>そこに、
>カーソルをもってくるにはどうしたらいいですか?
なげぇ文だぜ。
きっとプログラムもmain()で冗長に書いているのだろう。

593 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 16:42:41 ]
文字列の部分コピーをやりたいです。
先頭から n 文字目までのコピーなら strncpy(*char, *const char, int); で実現できますが、
n 文字目から最後までのコピーは、char配列の1成分ずつfor文等でコピーしないといけないのでしょうか?

594 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 17:43:09 ]
>>593
strcpy(dst, src+n);

595 名前:593 mailto:sage [2006/06/30(金) 18:38:32 ]
>>594
できました。ありがとうございます。
このような使い方が出来るとは・・・覚えておきます。

596 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 19:05:37 ]
>>595
ポインタとヌル終端文字列の基本テクです

597 名前:デフォルトの名無しさん [2006/06/30(金) 22:56:30 ]
do-while文で、整数を入力して、0になったらおわりという文はどうしたらいいのですか?最近プログラムの勉強始めたばかりで申し訳ありません

598 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 23:19:56 ]
>>597 適当に答えてみる
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num;
char tmp[256];
do{
num=atoi(gets(tmp));
}while(num!=0);
return 0;
}

599 名前:582 mailto:sage [2006/07/01(土) 00:25:26 ]
>>583,584,585
ありがとうございます。system("PAUSE");を利用することにしました。

>>597
#include <stdio.h>
int main(){
int n;

do{
scanf("%d",&n)
if(n<1) printf("1以上の整数を代入してください!");
}while(n<1);

do{
n--;
}while(n!=0);

return(0);
}

実行してないからバグあるかもしらん。




600 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 01:04:31 ]
598、599さん、素早い返答ありがとうございます。実は猫でもわかるシリーズの本にあった例で、do〜while(n)で終わってて理解できなかったんです。初学者ゆえこれからも質問しますが、よろしくお願いいたしますm(__)m。

601 名前:デフォルトの名無しさん [2006/07/02(日) 13:57:54 ]
double a=123456.6789
b=-12345.6789

printf("a=%10.4f b=%10.4f\n",a,b);
printf("a=%7.4f b=%7.4f\n"),a,b);

の結果が両方とも

a=123456.6789 b=-12345.6789になるのはどうしてでしょうか?

602 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 14:07:24 ]
>>601
%10.4fは、浮動小数の「小数点以上」ではなく「全体の幅」を10文字で表すと言う意味。
もちろん小数点以上の桁数が足りない場合は自動的に補われる。
小数点以下の「4」の部分は、小数点以下に使う桁数の指定。

どっちも7文字でも10文字でも表しきれないので11文字に拡張されて同じ表示になる。

603 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 14:15:07 ]
>>601
pc8.2ch.net/test/read.cgi/tech/1148993760/671

604 名前:デフォルトの名無しさん [2006/07/02(日) 14:15:33 ]
>>602
よくわかりました。ありがとうございます。

605 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 14:30:09 ]
目がおかしくなったかなぁ。
>601の後者はコンパイルさえ通らないし、二番目の%10.4fの結果は12桁になるようにしか見えない。

606 名前:デフォルトの名無しさん [2006/07/02(日) 16:02:02 ]
Boland C++ Compiler 5.5でアプリケーションプログラムをコンパイルする方法を
教えてください。

パラメータ 'hWnd'は一度も使用されない
パラメータ 'hPrevInstance'は一度も使用されない
パラメータ 'lpCmdLine'は一度も使用されない

といった警告はどうしたら消えるのでしょうか?

607 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 16:09:20 ]

int WINAPI WinMain(
HINSTANCE /* hInstance */
, HINSTANCE /* hPrevInstance */
, LPSTR /* lpCmdLine */
, int /* iCmdShow */
)
{
 // ほげほげ
}

608 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 16:36:34 ]
その気持ちの悪いカンマの位置はどんなメリットがあるんだ?
たまに見かけるんだが。

609 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 17:50:20 ]
Borland Developer Studio 2006 No.06
pc8.2ch.net/test/read.cgi/tech/1151562315/l50


int WINAPI WinMain(
 HINSTANCE,
 HINSTANCE,
 LPSTR,
 int,
)
{
 // ほげほげ
};
ってやっちまって、コンパイルエラー出て悩むのを防ぐ馬鹿除けでは?



610 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:10:34 ]
俺ならint WINAPI WinMain(HINSTANCE, HINSTANCE, PSTR, int)って1行に書く。

611 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:11:34 ]
一応言っておくと>>607-610のように仮引数名を省略できるのはC++だけで、Cではできない。

612 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:40:04 ]
あれ? C99でできなかったっけ?

613 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:47:37 ]
nに入力した数字の数だけ$を表示するプログラムを作ったんですが
数字を入力するとなんか沢山$が出てきちゃいます。
改善方法はありませんか。よろしくお願いします。
#include <stdio.h>
int main(void){
int a;
char c;
while(1){
printf("C=");
scanf("%c",&c);
if(c==0)
break;
if((c <= 'A' && c <= 'Z') || (c <= 'a' && c <= 'z')){
printf("英数字ですぅ\n");
continue;
}
else{
for(a=1;a<=c;a++)
printf("$");
}
  }
}

614 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 19:58:25 ]
>>613
・scanf()の戻り値をチェックしないとcの値が有効かどうか判らない。
・cには文字が入っている。それは数値ではないので0と比較する意味が殆どない。
・同じ理由で、$の数は文字コードの値に依存してしまう。

やりたいことがよく判らんが、入力と処理を分けて考えた方がいいんじゃないか?

615 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 20:54:59 ]
 cを入力
  ↓
英字か?no→→→数字か?no→→→→→それ以外
 yes↓     yes↓         ↓
上に戻る  cの数だけ$を表示    終了

616 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:01:46 ]
上のようなプログラムを作りたかったんですが
10進数型で入力にして
if((c <= 'A' && c <= 'Z') || (c <= 'a' && c <= 'z')){
printf("英数字ですぅ\n");

else if((c <= 0){
for(a=1;a<=c;a++)
printf("$");
}

else
break;

このようにしても英字を入力したらダメですし・・・。
上のようなプログラムを作るのは無理ですか。

617 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:05:30 ]
>>616
つ isalpha(), isdigit()

618 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:05:51 ]
>>616
>>616読め

619 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:13:22 ]
cが0以下ってのはどういう事よ



620 名前:デフォルトの名無しさん [2006/07/02(日) 21:44:18 ]
signed char であれば、ASCII範囲外を除外しているといえなくも無い。

621 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:48:38 ]
ASCII範囲内を除外しているように見えるが...

622 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:17:10 ]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
// ここから入力
char buf[200];
if (fgets(buf, sizeof(buf), stdin) == NULL) {
// 入力終端or異常
}
char * ptr;
long foo = strtol(buf, & ptr, 10);
if (ptr[0] != '\0') {
// 数字以外の入力
}
// ここから文字処理
for (unsigned ic = 0; ic < foo; ++ic) {
putchar('$');
}
return 0;
}



623 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:40:48 ]
見たことのない文字がいっぱい・・・。
c言語って難しいですね。
あと、616は間違いだらけでした・・・。
皆さんありがございました。皆さんが言ってることが理解できるようにもっと勉強します。

624 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:45:12 ]
>見たことのない文字がいっぱい・・・。
確かにそれでは文字コードの処理は難しいだろう
…とかいうツッコミは置いといて、
ガンガレ。

625 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:55:52 ]
>>622
改行を除去するか、'\0' || '\n'で判定しないと、
常に数字以外と判定されるよ。

626 名前:622 mailto:sage [2006/07/02(日) 23:36:30 ]
あ、いけね、忘れてた。
>>625
THX!
こんなもんかな。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char buf[200];
if (fgets(buf, sizeof(buf), stdin) == NULL) {
printf("No input.\n");
return 0;
}
char * ptr = strchr(buf, '\n');
if (ptr) {
* ptr = '\0';
}
if (strlen(buf) == 0) {
printf("Empty input.\n");
return 0;
}
long foo = strtol(buf, & ptr, 10);
if (ptr[0] != '\0') {
printf("Not a number.\n");
return 0;
}
for (unsigned ic = 0; ic < foo; ++ic) {
putchar('$');
}
return 0;
}

627 名前:デフォルトの名無しさん [2006/07/02(日) 23:36:32 ]
初歩的な質問ですみません。
main関数とは別のファイルに作ったユーザー定義関数を
呼び出すのはどうしたらいいですか?
#includeで取り込めばいいのでしょうか?
そのときは、やっぱり関数のプロトタイプ宣言は必要ですか?

628 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:37:57 ]
extern付けて宣言する必要がある

629 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:38:16 BE:314515679-#]
>>627
環境は?



630 名前:デフォルトの名無しさん [2006/07/02(日) 23:39:01 ]
>>629
WindowsXPです

631 名前:デフォルトの名無しさん [2006/07/02(日) 23:42:36 BE:239631168-#]
>>630
VCとかなら、プロジェクトに別ファイルを追加すればいいよ。
コマンドラインなら、引数で、mainのファイルと、別のファイルを渡せば勝手にリンクされる。

632 名前:デフォルトの名無しさん [2006/07/02(日) 23:44:39 ]
すごく初歩的なんですが
c言語を学校で習ってるんですが
家のPCでソース組むにはどうしたらいいでしょうか?

633 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:46:01 ]
答え:先生に聞く

はい次の方どうぞー

634 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:47:57 BE:359446098-#]
>>632
メモ帳

635 名前:デフォルトの名無しさん [2006/07/02(日) 23:48:54 ]
コンパイラがどれがいいのかわからなんです・・・・

636 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 23:49:08 ]
コンパイルまでやるなら
Visual C++ Express

637 名前:デフォルトの名無しさん [2006/07/02(日) 23:52:17 ]
学校じゃコマンドプロンプトでlcc ソース名でコンパイルできるんですが

638 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 23:55:23 ]
Visual C++ Expressならコマンドプロンプトから cl ソース名 でおk

639 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:59:08 ]
>>632
コマンドプロンプトでnotepad[Enter]だ。



640 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:59:45 ]
ttp://www.borland.com/jp/products/cbuilder/freecompiler.html
ttp://www.vector.co.jp/soft/win95/prog/se141451.html
VC++ Expはダウソに時間が掛かるから、今すぐちゃちゃっとやるならこっつで

641 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/03(月) 00:05:42 ]
lcc-win32も自分で環境変数通せばコマンドラインで使えそうだけどな

642 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 01:23:42 ]
>>637
lccと言えば、LSI C-86のような気がする。
準備(インストール)はなれないと面倒かもしれないが、学校と同じというのは利点かもしれない。

643 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 02:02:18 ]
4つ程度なら、int WINAPI WinMain(HINSTANCE, HINSTANCE, PSTR, int)って1行でもいいけど、世の中にはもっといっぱい受け渡す関数もあるよ。

今更、lccって気もするなあ。
実務経験的に、gccかVCのインスコと環境構築方法も学習すべき。

644 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 07:34:30 ]
lccと言ってもLSI-Cではないと思うけどね。
授業でLSI-C使っているならそれはそれで、よっぽど阿呆で楽しいが。

645 名前:仕様書無しさん [2006/07/03(月) 13:16:25 ]
配列でhoge[i*j]と*(hoge+i*j)はどちらがいいのでしょうか?
メリットなどがあれば教えてください

見やすいのはhoge[i*j]なのでこっちで書くほうが多いのですが



646 名前:デフォルトの名無しさん [2006/07/03(月) 13:34:54 ]
>>645
a[i] は *(a + i) の略記法なんだからコンパイラにとってはどっちでも同じ。
見やすい方で書けばいい。

647 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:55:19 ]
pow()や、malloc()は重い関数と聞いたのですが、
ではclock()は重い関数なのでしょうか。
というか、重い関数というのはどこでどうやって知るのでしょうか?


648 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:58:51 ]
>>647
OSのソースを読むとか実際に測定してみるとか。


649 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 16:06:47 ]
>>648
ということは重いかどうかというのは環境依存なんですね。
分かりました。どうもありがとうございます。



650 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 18:46:45 ]
>>647
>というか、重い関数というのはどこでどうやって知るのでしょうか?
というか、重い関数というのは何を基準に決めるのでしょうか?

651 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 19:14:34 ]
主観

652 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 21:21:28 ]
相対的なもんじゃね。

653 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:04:21 ]
他に手段があるならそれと較べて重い(≒遅い)か判断すればいいんじゃない?

pow()はpow(5, 2)と5*5を較べれば一目瞭然だし、malloc()の代わりにC99の可変長配列を使うとか、
malloc(100)を1万回の代わりにmalloc(100 * 10000)すればずっと早くなるわけだし。

654 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:06:35 ]
各辺が全て500以下であるようなピタゴラスの三整数を全て求めよ。
ただし、三重にネストしたforループを使う事。

#include<studio.h>

main()

  int x,y,z;

 for( z = 1, z <= 500 , z++ ){
  for( x = 1, x <= 500 , x++ ){
   for( y = 1, y <= 500 , y++){
    if( pow(z,2) == pow(x,2) + pow(y,2 ))
     printf("%dの二乗は%dと%dの二乗の和に等しい\n",z,x,y);}}}

 return0;



上記で合ってますか?


655 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:15:42 ]
宿題スレで会おう!

656 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:21:42 ]
>>655
スマソ
サンクス

657 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 01:57:58 ]
ちょっと質問です。

a , b ? c , d : e , f;

a , (b ? (c , d) : e) , f;
と同じでしょうか?

あと、

a = b ? c = d : e = f;

a = (b ? (c = d) : (e = f));

ですか?

どうも3項演算子の優先順位が今ひとつ…。
括弧つけろってのは別の話ということで、
よろしくお願いします。



658 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 02:11:37 ]
www.google.co.jp/search?q=%E6%BC%94%E7%AE%97%E5%AD%90+%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D

で、その式はコンパイル通るのか?

659 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:13:57 ]
>>658
VC6で試したけどコンパイルは通りました。

たとえば条件演算子と、代入演算子やカンマ演算子は、条件演算子の方が優先順位の方が高いじゃないですか。
なら、そのまま解釈すると

a = b ? c = d : e = f;

a = (b ? c) = (d : e) = f;

a , b ? c , d : e , f;

a , (b ? c) , (d : e) , f;

こうなっちゃいそうだけどそれじゃあ本当にコンパイルが通らないし、それで聞いてみたんです。

a , b ? c , d : e , f;
これは、
(a , b) ? (c , d) : (e , f);
こう括弧でくくってもコンパイル上は問題になりませんが、優先順位としては明らかにカンマの方が高くなっているから
ありえない。実際動作もそうなってはいないようです。

で、演算子を解釈していくときのプロセスで、3項演算子だけは二項演算子とは違った特異な処理をしているんしょうか?

ちょっと入門の質問じゃないかも知れないですが、どうも自分の考え方が理解の域に達していないので、初心者とし
て質問させていただきました。

グーグル先生以外の人間の達人の方、出来ましたら演算子の解釈順序なんかをご教示くださいませんでしょうか。

よろしくお願い致します。





660 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:28:04 ]
>>659
a = b ? c = d : e = f;

a = (b ? (c = d) : e) = f;

a , b ? c , d : e , f;

a , (b ? (c , d) : e) , f;

だ。
? と : の間は分離なんかできるわけがないから、
ここは常に ? ... : は ? (...) : と同じになる。

661 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:12:54 ]
>>660
どうもありがとうございます。ただ、まだちょっと納得いってません。aを除いて、
b ? c = d : e = f;
これはご教示に従えば

(b ? c = d : e) = f;

こうなりますよね? ここで、bが偽なら 最初の括弧の中は (e) となって、
e = f が実行されますが、 b が真のとき、(c) = f が実行されないのでしょうか?

(b ? c = d : e) = f;

(c = d) = f;

(c) = f;


bが真のとき、実際に挙動を見てみると、

b ? (c = d) : (e = f);

こうなっているように思えるのです。なので、

a = b ? c = d : e = f;

このケースでも、bが真か偽かによって、 a の値が d か f のどちらかになります。


662 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:13:39 ]

改行が多いみたいで、上の続きです。

a = (b ? (c = d) : e) = f;
a = b ? c = d : e = f;

これはトレースすると、挙動が違うんです。もし手軽に試せる状況なら、
追試していただけないでしょうか?

お手数ですが、よろしくお願い致します。






663 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:33:12 ]
(b ? c = d : e) = f; ってコンパイル通るか?
三項演算子は左辺に置けないと思うんだけど。

664 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:11:47 ]
ちと勘違いしてました。VC6でWinMainで試してました。
C++だと変数の参照を返すからコンパイル通るんだ…。

ここはC言語スレでしたかorz

たしかにCだと
b ? c = d : e = f;

これは書けませんね。

ただ、演算子の優先順位というに点だけ着目すると、Cでは
(b ? (c = d) : e) = f;
こうなって左辺値に不適合でエラー

C++だと
b ? (c = d) : (e = f)

このように実動作しているようです。直感的にはC++流の解釈の方が
素直な気がしますが、三項演算子の コロン以降だけを特別処理している
気がしてならない…。

スレ汚し失礼しました。C++スレに行って来ます。

665 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:13:34 ]
言語の優先順位に頼った可読性の悪いソース書くなよ。
括弧使え括弧。


666 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:24:20 ]
>>665
ですので、最初に書いたとおりに、括弧をつけるのは別の話です。
コンパイラの式処理がどうなっているのか勉強しているので。

667 名前:初心者 [2006/07/06(木) 10:08:35 ]
初心者レスですよね?!心優しい皆さんよろしく!!
数列の長さを設定しました。
キーボードで文字を入力します。
入力した文字が設定した長さを超えるとごみが出て
次の入力を影響します。
設定した長さ以後のごみをメモリからとる方法は??


668 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:47:59 ]
むり

669 名前:デフォルトの名無しさん [2006/07/06(木) 13:05:30 ]
FreeBSDやMac OS Xならば、
  fpurge(stdin)
で入力バッファに入っている文字を落とせる。

これが無いとちょっと面倒だけど、とりあえず改行文字まで
落としたかったら
  while(getchar() != '¥n');
でいいんじゃない?



670 名前:初心者 [2006/07/06(木) 13:06:42 ]
何が無理?


671 名前:初心者 [2006/07/06(木) 13:13:37 ]
>>669御免初心者なんで、FreeBSD<<わからない。
例として:
#include <stdio.h>
int main(void)
{
char gg[22],*gu;
char hh[33],*jj;

printf("数列入れて>\n");
fgets(gg,22,gu);
printf("数列いれ>\n");
fgets(hh,33,jj);

getc(stdin);
}
数列を多い目に入れると、次の入力ができない。


672 名前:もはもは [2006/07/06(木) 13:14:46 ]
HELPです!!!!!

1次元配列に 34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、
これらの平均値を求めよ。
さらに int eval[3]という1次元配列を用意して
eval[0] には0〜60の数の個数
eval[1]には61〜80の数の個数
eval[2]には81〜100の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。

よろしくお願いします。

673 名前:デフォルトの名無しさん [2006/07/06(木) 13:29:23 ]
>>671
どうゆう入力を想定してるの?

674 名前:デフォルトの名無しさん [2006/07/06(木) 13:32:11 ]
>>671
fgets(標準ライブラリのものと仮定)の使い方が間違ってる。
標準入力から入力して欲しいのなら、

fgets(gg, 22, stdin);
fgets(hh, 33, stdin);

のように書かなくては。

675 名前:初心者 [2006/07/06(木) 13:54:51 ]
>>673
プログラムの一部なの。(全体は汚いプログラムなので見せない><)
まぁ、かんたんに言えば、
キーボードから入れた文字を好きな所まで取り
オーバーしたものは消す方法。
神様、私の願いを!!!

676 名前:デフォルトの名無しさん [2006/07/06(木) 14:09:56 ]
何が言いたいのかよくわからん。
Cより前に日本語をちゃんと勉強しろよ。

677 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:17:55 ]
留学生か?>初心者

678 名前:初心者 [2006/07/06(木) 14:22:39 ]
勉強中です><(怒らないで);
(本当に外国人です!!!日本語下手で御免なさい><);
会社からcを無理やり勉強させました。
お願いします。

679 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:27:35 ]
english ok



680 名前:デフォルトの名無しさん [2006/07/06(木) 14:29:31 ]
・・・変数宣言って何・・・?

681 名前:初心者 [2006/07/06(木) 14:29:39 ]
むり!韓国語なら>>






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

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

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