検索結果 1719 件

by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列 文字列 重複 削除
返信数: 6
閲覧数: 1423

Re: 配列 文字列 重複 削除

みけCAT さんが書きました: また、sizeof(char)は1と定義されているので、要素の型とも関係ないのに掛ける意味は無いでしょう。
自分は、大いに意味があると思います。間違いなく1個1バイトの領域を必要な個数だけ動的確保している、ということを示す、という点において。

コード:

    size = 256;
    p = (char *) malloc(sizeof(char) * size);
こういう書き方をごく普通にしてました。以前Cでシステムを開発してたとき。
ま、宗教論争になりそうなのであまり深入りするのはやめときましょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: sleep関数をMacで使うにはどうしたら良いのですか?
返信数: 4
閲覧数: 1005

Re: sleep関数をMacで使うにはどうしたら良いのですか?

YOU TEK さんが書きました: "conflicting types for sleep" と表示され
このメッセージが出るのはビルド時ですか?実行時ですか?
処理系にすでに備わっている(と思われる)sleep関数とバッティングしていないでしょうか。
YOU TEK さんが書きました:

コード:

int sleep(unsigned long x)
        usleep(5);
sleep関数(自作)を使いたいのか、
usleep関数を使いたいのかよくわかりません。
どっちですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: nkfツールのコマンドライン
返信数: 4
閲覧数: 791

Re: nkfツールのコマンドライン

nkfを使ったことがない自分が回答するのが適切かどうかはさておき…。
http://apphy.u-fukui.ac.jp/~tajima/nkf32_install.html
ここによると、コマンドラインから使うのはnkf32だと言っています。
自己責任でトライしてみる価値はあるかな、と思います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの結果をファイルに結果の数だけ書き込む
返信数: 9
閲覧数: 1407

Re: ゲームの結果をファイルに結果の数だけ書き込む

ザッとこんな流れでしょうか。

コード:

書き込み用のファイルをオープンする。
以下を対戦の数だけ繰り返す。
 ・ジャンケンをする
 ・結果を判定する(勝ちor負けorあいこ)
 ・結果をファイルに書き込む
書き込み用のファイルをクローズする。
ご提示のコードではmain関数が複数見受けられます。それはまずいでしょうね。
また、FILE *型の変数に日本語を使われていますが、あまりおすすめできません。
処理系によっては日本語の変数名が使えるかもしれませんが、一般には使えないものと
思っておく方がいいと思います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 変数について教えてください
返信数: 7
閲覧数: 1155

Re: 変数について教えてください

御魁 さんが書きました: というプログラムで、「for(i=1;i<=10;i++)のとこは何故変数を使用するのか?」という問題が出ました。
自分だったら、「じゃあ、変数を使わずに10回(一般にn回)ループするにはどうすればいいんですか?」って逆質問しますね。
「質問に対して質問で答えるな!」って怒られそうですけど。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルに書かれた式の計算について
返信数: 12
閲覧数: 2417

Re: ファイルに書かれた式の計算について

まあRPNを使うことは他の回答者さんの回答のとおりだと思います。
それにしてもむずかしい課題だな…。質問者さんのC言語のレベルがどの程度かはわかりませんが…。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字配列のswap関数とマクロ関数
返信数: 5
閲覧数: 1021

Re: 文字配列のswap関数とマクロ関数

みけCAT さんが書きました: 問題ないのかどうかを知りたいなら、入れ替えた後の結果を出力すればいいでしょう。
まさにそこ!デバッガーなんて七面倒くさい手段を使わずとも、入れ替えた直後にprintfするか何かして、
問題があるのかないのかなんで確認してないんだろう?って思ったしだいです。
ふつうしますよね?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字配列のswap関数とマクロ関数
返信数: 5
閲覧数: 1021

Re: 文字配列のswap関数とマクロ関数

kazuki2655 さんが書きました: これにアドレス演算子を足してみると問題なくスワップされるのですがよくわかりません。
入れ替えた後の結果を出力していないので、本当に問題ないのかどうかよくわかりません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: fgetsで文字列取得後ずれる
返信数: 10
閲覧数: 783

Re: fgetsで文字列取得後ずれる

shosinsha さんが書きました: しかし、計算がうまく行われないときと、うまくいくときがあります。
何を入力したときにうまくいって、
何を入力したときにうまくいかないのか、
具体例を1個以上挙げてください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。助けてください。
返信数: 3
閲覧数: 509

Re: 初心者です。助けてください。

自分だったらこんな風に書くかなぁ、ってことで。 #include <stdio.h> int main(void) { int i, j; for (i = 1; i <= 3; i++) { printf("%d日目\n", i); for (j = 1; j <= 3; j++) { printf("%d回目挨拶\n", j); printf("%s\n", j == 1 ? "おはよう" : j == 2 ? "こんにちは" : "こんばんは"); } } return 0; }
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: strchr関数の課題について
返信数: 2
閲覧数: 436

Re: strchr関数の課題について

bucchus さんが書きました: "+-/*=)(@"の最初を" +-/*=)(@"などと半角スペースをあけると解決するのですが
これってアリなのでしょうか?
ダメでしょうね。
n番目の文字を「(n+1)番目の文字」として出力するのであれば、プログラムで工夫すればよいと思います。
bucchus さんが書きました: 2、文字列"+-/*=)(@"と指定文字5番目~7番目までの順番がちがう
問題文の文字列"="")""("が指定文字列と対応していません。
これは、「その文字の順番をif文とかfor文などを用い変えなさい」という
趣旨なのでしょうか?
問題文が間違っているような気がします。出題者に確認するのがよいでしょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。助けてください。
返信数: 3
閲覧数: 509

Re: 初心者です。助けてください。

パッと見ただけですが…
八つ橋 さんが書きました:

コード:

for(j=1,j<=3,j++)
ここ、カンマでいいでしょうか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!
返信数: 5
閲覧数: 764

Re: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!

いきなり0以下の値を入れたら平均値は計算できない。 そのコードを追加。 #include <stdio.h> void read_data(int *max, int *min, int *sum, int *count) { int data; while (printf("input data:"), scanf("%d", &data) == 1 && data > 0) { if (*count == 0) { *max = *min = data; } else { if (data > *max) { *max = data; } if (data < *min) { *min =...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!
返信数: 5
閲覧数: 764

Re: 学校の課題なんですが、どうしてもわからないんです。誰か教えてください!

ちょっとしたサンプルです。 #include <stdio.h> void read_data(int *max, int *min, int *sum, int *count) { int data; while (printf("input data:"), scanf("%d", &data) == 1 && data > 0) { if (*count == 0) { *max = *min = data; } else { if (data > *max) { *max = data; } if (data < *min) { *min = data; } } *sum += dat...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: この識別子の定義をどうすればいいか教えてください
返信数: 4
閲覧数: 867

Re: この識別子の定義をどうすればいいか教えてください

AppleB3 さんが書きました: 本の通りコードを打ち込み、デバッグを開始したら

: error C3861: 'Cleanup': 識別子が見つかりませんでした
デバッグですか?ビルドではなくて?
C3861エラー(ググってみてください)が出ているということは、ビルドに成功しておらず、
実行ファイルが作れていないと思います。

デバッグというのは、「実行ファイルはできたけど思ったとおりに動かない」ときに、
動かない原因を突き止めてコードを修正する行為を指します。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドラインオプションD8016 エラー
返信数: 6
閲覧数: 2626

Re: コマンドラインオプションD8016 エラー

使用アプリ: Visual studio express 2015 このソフトを使ってどのようにコンパイルしているかはわかりませんが、 下記のプログラムで ”コマンドラインオプションD8016 エラー   /ZI’ と /GL' は同時に指定できません” と表示されて旨く動作しません。 このように言われているのであれば、どっちか片方だけのオプションを選択するか、あるいはどちらも選択しないかにすればいいのではないでしょうか。 ところで、提示されたコードは全体を示していますか? void str_copy( char dst[], char src[] ); この関数の実体が見当たりませんが、大...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: sort関数でエラー”識別子がみつかりません” 
返信数: 3
閲覧数: 1035

Re: sort関数でエラー”識別子がみつかりません” 

本題と関係があるかどうかはわかりませんが、何かよけいなセミコロンがあるみたいです。
constructor2016810 さんが書きました:

コード:

		for (i = 0; i < num; i++);
		for (j = i + 1;j < data_num; j++);
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を表示したいのに整数でしか返ってこない
返信数: 2
閲覧数: 894

Re: 文字列を表示したいのに整数でしか返ってこない

ついでに…。 for (int i = 1; i<12; i++){ if (maxkion<kion[i + 1]){ maxkion = kion[i + 1]; kion_tuki = i + 1; } せっかく[1]を基準にしたのですから、ふつうに[2]~[12]について回せばいいんじゃないですか? else if (maxkion == kion[i + 1]) { maxkion = kion[1]; kion_tuki = 1; } else if (maxkion>kion[i + 1]){ maxkion = kion[1]; kion_tuki = 1; } if文のブロッ...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を表示したいのに整数でしか返ってこない
返信数: 2
閲覧数: 894

Re: 文字列を表示したいのに整数でしか返ってこない

文字列を表示したい のであれば、 unsigned char hanbetu; ここの型を考え直してください。少なくともunsigned charではないはずです。 hanbetu = 'Aw'; hanbetu = 'Am'; hanbetu = 'Af'; hanbetu = 'Cw'; hanbetu = 'Cs'; hanbetu = 'Cfa'; hanbetu = 'Cfb'; hanbetu = 'Dw'; hanbetu = 'Ds'; hanbetu = 'Df'; hanbetu = 'BS'; hanbetu = 'BW'; hanbetu = 'ET'; hanbet...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: ハンドルされない例外が というエラーがでる
返信数: 5
閲覧数: 824

Re: ハンドルされない例外が というエラーがでる

main関数に何でもかんでも詰め込んでいるのは
ちょっとどうなのかな?という気がします。
適切に関数を分ける方が、コード全体の見通しがよくなり、
修正しやすくなるのではないか、という気もします。

main関数は「あ~してこうしてああしろ」という司令塔の役目に徹して、
実際にあ~したりこうしたりああしたりするのは子どもの関数群、っていうのが
いいような気がします。試しにチャレンジしてみてはどうでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 他人のコードが見たい!
返信数: 4
閲覧数: 1010

Re: 他人のコードが見たい!

ここのサイトの常連さん(当方は除く)のコードをごらんになると、かなり参考になるところがあると思います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 整数リテラル0が8進リテラルであることの説明
返信数: 6
閲覧数: 1344

Re: 整数リテラル0が8進リテラルであることの説明

8進リテラルが0~7で始まる 0で始まることはわかりますが、1~7で始まるというのはよくわかりません。 0で始まって0~7「を使う」ならば、何とかわかります。 まあ、それはさておき、こんなコードを書いてみてコンパイルエラーになることで説明が付きませんか? #include <stdio.h> int main(void) { int n = 08; return 0; } こちらの環境(gcc4.9.3)では、こんなエラーが出ました。 C-Application3.c:5:13: error: invalid digit "8" in octal constant 8進数の数値には8は使えね...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 【愚問】C言語のヘッダファイルについて
返信数: 4
閲覧数: 899

Re: 【愚問】C言語のヘッダファイルについて

helloworld さんが書きました: [stdio.h]
の内容を
[stdio.h]
に書けば良いということでしょうか?
ちょっと意味がわかりません。後の方のstdio.hというのはどこに置くことを想定されていますか?
helloworld さんが書きました: [stdio.h]の内容を
自作するプログラムの中に全部書き込んで、
[#include]なんて使わずに動かしてやるぜ‼
ということも可能でしょうか?(プログラムの行数が馬鹿みたいに長くなりそうですが…。)
原理的には可能かもしれません。が、
悪いことはいいませんから絶対にやめましょう。
先人の知恵はそのまま拝借する方がよいです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: Debug Assertion Failed!
返信数: 4
閲覧数: 986

Re: Debug Assertion Failed!

ちゃんと追いかけたわけではないですが…
蜜柑 さんが書きました:

コード:

	while (Input[i] != EOF) {
		for (i = 0;i < 128;i++) {
変数 i の値を上書きしているのがとても気になります。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 【解決】continueがうまくいきません
返信数: 6
閲覧数: 665

Re: Re:解決しました!ありがとうございました!!

helloworld さんが書きました: continue
を2回使う
どこにそういう回答があったでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: おーばー
返信数: 13
閲覧数: 1372

Re: おーばー

あえて言うならば、字下げが1文字分というのはいかにも見づらいなぁ、と思います。
まあこのあたりは宗教論争になりそうですので深く突っ込まないことにしますが、
C言語ならば4文字分あたりが適当かと個人的には思います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列のソート
返信数: 1
閲覧数: 400

Re: 文字列のソート

こんな感じでしょうか。適当に改変してください。 大小が判別できるので、辞書順のソートができるはずです。 #include <stdio.h> #include <string.h> void compare_string(const char *p, const char *q) { int n = strcmp(p, q); printf("%sは%s%s\n", p, q, n < 0 ? "より小さい" : n == 0 ? "と同じ" : "より大きい"); } int main(void) { char *s[] = { "abc", "AB", "abC", "AB", "ab",...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: おーばー
返信数: 13
閲覧数: 1372

Re: おーばー

>質問者さん
とりあえず、最初に行なうことは、行ないたいことを日本語で書いてみることではないかと思います。
これができれば、プログラミング言語に置き換えることができるかもしれません。
「かもしれません」というのは、日本語で書けたからといって、100%プログラミング言語に置き換えることができるとは限らないという意味です。
正しく置き換えられないとき、それをバグといいます。
一方、行ないたいことを日本語で書くことができない場合、プログラミング言語に置き換えることはおそらくできないでしょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 初歩の質問で恐縮です。
返信数: 3
閲覧数: 1115

Re: 初歩の質問で恐縮です。

せっかくなので、main関数に何でもかんでも押し込めない版を作ってみました。 なお、当方はVisual Studioを使っていませんので、ヘッダやscanfは標準のものを使っています。 #include <stdio.h> #include <math.h> #define OK (0) #define NG1 (1) #define NG2 (2) void get_coefficient(double *a, double *b, double *c) { printf("2次方程式 ax^2 + bx + c = 0の解を求めます\n"); printf("係数a, b, cを入力:")...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 動的確保について Ⅱ
返信数: 10
閲覧数: 1265

Re: 動的確保について Ⅱ

ついでだから、戻り値を使うバージョンを。 #include <stdio.h> #include <stdlib.h> #include <string.h> char *f(char *s) { s = malloc(sizeof(char) * 10); strcpy(s, "abcde"); printf("@@@ s=\"%s\"\n", s); return s; } int main(void) { char *s = NULL; printf("s=\"%s\"\n", s); s = f(s); printf("s=\"%s\"\n", s); return 0; }

詳細検索ページへ移動する