検索結果 1730 件

by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートを用いた問題
返信数: 6
閲覧数: 2967

Re: バブルソートを用いた問題

何でもかんでもmain()にぶち込まない方がよいと思います。 // 全面的に改変しました #include <stdio.h> #include <stdlib.h> #include <time.h> #define N (10) void makeRandomNumber(int *a, int n) { int i; for (i = 0; i < n; i++) { a[i] = rand() % 20 + 1; // 1~20の乱数を発生 } } void sortArray(int *a, int n) { int i, j, t; for (i = 0; i < n - 1; i...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートを用いた問題
返信数: 6
閲覧数: 2967

Re: バブルソートを用いた問題

mogu2522 さんが書きました: バブルソートで昇順に並び変えるのは理解できる
では、そのときのコードを見せてください。たぶんちょっとした修正でうまくいくと思います。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 普通式から後置記法に変換でうまくコンパイルができない
返信数: 5
閲覧数: 2106

Re: 普通式から後置記法に変換でうまくコンパイルができない

今回の事象は「うまくコンパイルできない」ではなく、
「うまくコンパイルはできるけど、思ったとおりに動かない」というのが
正しそうです。
もし、「コンパイル」という用語の意味を正しく理解していないのであれば、
この機会に覚えておくとよいかもしれません。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 循環小数の計算について
返信数: 4
閲覧数: 2558

Re: 循環小数の計算について

1/7だったら循環節に現われる数字がすべて異なるので対処のしようがあると思いますが、
例えば1/17だったら循環節に同じ数字が複数回現われます。そこをどう切り抜けるかがポイントとなりそうです。
1/17 = 0.05882352941176470588235294117647...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 配列をスキップする方法
返信数: 9
閲覧数: 2534

Re: 配列をスキップする方法

#include <stdio.h> int main(void) { int skip[10] = { 0 }; // skip[n] == 1のとき、その段をスキップする int s, i, j; do { printf("スキップする段を入力してください(0または1~9以外で終了)。\n"); scanf("%d", &s); if (s == 0) break; if (1 <= s && s <= 9) skip[s] = 1; } while (0 <= s && s <= 9); for (i = 1; i <= 9; i++) { if (skip[i] == 0) { fo...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時の構造体宣言
返信数: 6
閲覧数: 2610

Re: 分割コンパイル時の構造体宣言

多重インクルードガード付きのヘッダーファイルを作成するのがよさそうです。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 変数だけを書く
返信数: 4
閲覧数: 1747

Re: 変数だけを書く

何もしない関数ですので、何も起きません。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列のアルファベット順並び替え
返信数: 5
閲覧数: 3331

Re: 文字列のアルファベット順並び替え

"asrutocdgeqkfg"という文字列をアルファベット順に並び替えたいのですが下記のプログラムだとうまくいきません。よろしければアドバイスをよろしくお願いします。 for (i = 0; i < N - 1; i++) for (j = 0; j < N - 1; j++) if (ch[j] > ch[j + 1]) { ex = ch[j]; ch[j] = ch[j + 1]; ch[j + 1] = ex; } ループの中で、i がからむ処理がないのが気になります。 ・i がからむ処理をしたければ、そういうコードを書く ・処理がなくていいのなら、i のループをやめる どっちかに...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: cのプログラミング基礎
返信数: 9
閲覧数: 1910

Re: cのプログラミング基礎

for (d = 1.0; (int)d <= 9; d = d + 0.1) (int)(5.000000) = 4 (int)(6.000000) = 5 たぶん浮動小数点数の誤差でしょう。 そもそも10進の0.1を2進で表現するときから誤差が発生します。 (int) 5.000000 と表示しているところは、おそらく、正確には5.000000という数値ではなく4.999999....で、 %lfで表示すると四捨五入か何かで5.000000と表示するが実際の中身は上述のとおり4.999999...なので intにキャストすると4になってしまう、といったところではないでしょうか。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数回定義されているシンボル
返信数: 6
閲覧数: 1637

Re: 複数回定義されているシンボル

donnbee さんが書きました:一応消してみましたがエラーがやはり発生します。
何というエラーメッセージが出るのか、具体的に記載してください。回答しようとする側は超能力者ではありません(質問者さんのPC画面は見えない)ので、
質問者さんのところで何が起きているかは質問者さんからの情報を頼りにするしかないのです。
まあ、
donnbee さんが書きました:

コード:

//int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
//}
この2行だけをコメントアウトしたら、そりゃエラーが出ますわ。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 数字がエラーしてしまいます。
返信数: 3
閲覧数: 1255

Re: 数字がエラーしてしまいます。

peko さんが書きました:

コード:

		L[k]+=1;
		L[k]+=5;
別の回答にもありますが、このように、L[k]に何かを足す、ということは、「必ず、事前にL[k]を初期化(例えばゼロで)しておかねばならない」
という大原則を覚えておいてください。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトからの四則演算入力
返信数: 21
閲覧数: 2614

Re: コマンドプロンプトからの四則演算入力

tgg さんが書きました:

コード:

double shisoku_tasu(gx, gy)

char *gx;
char *gy;
今どきこういう書き方をしている人はいないと思います。過去の遺物。

コード:

double shisoku_tasu(char *gx, char *gx)
のように書くのが標準でありましょう。
tgg さんが書きました:

コード:

int main(argc, argv)

int argc;
char *argv[];
ここも上と同じ。
tgg さんが書きました:

コード:

		if (m == "+") {
ここは一つstrcmpあたりを使ってください。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体に入れた文字の出力について
返信数: 2
閲覧数: 630

Re: 構造体に入れた文字の出力について

忍者 さんが書きました: char camera;
sscanf(line, "%d",&pa.camera);
printf("%d\n",pa.camera);
[/code]

char型で定義しているメンバーcameraに整数型で値を読んで整数型で出力しているので、
そうなるのは必然ではないかと。
cameraというメンバーをchar型で扱いたいですか?それともint型などの整数として扱いたいですか?話はそこからです。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 配列とメモリ確保
返信数: 5
閲覧数: 994

Re: C言語 配列とメモリ確保

MFJ-228 さんが書きました:

コード:

    free(a); 
    }

      int i;
      for(i=0; i<n; i++)
         printf("a[%d]=%d\n", i, a[i]);
何だかfreeで領域を解放した後にそこへアクセスしているように見えて仕方がありません。
freeを書くのであれば、もうちょい後ろに置くべきでは?
現状は、プログラムがたまたま落っこちないというだけで、実は非常にまずいように思えます。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ変数の値渡し
返信数: 3
閲覧数: 825

Re: ポインタ変数の値渡し

るま さんが書きました:ポインタについて勉強したばかりなのですが以下のようにすればaの値が1になるということでよろしいでしょうか?

コード:

p(b);
}
実験してみればいいのに…。printfか何かをかませれば、すぐわかりますよね。

コード:

    printf("%d\n", b);
    printf("%d\n", *b);
とか。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割と構造体
返信数: 7
閲覧数: 1574

Re: ファイル分割と構造体

あらい16 さんが書きました: ファイルを分割したときに、複数のソースファイルから一つの構造体でやり取りできるようにしたいと考えているのですがどうにもうまくいきません。
何をしたときにどううまくいかないのかが全くわかりませんので、お答えのしようがありません。
せめて、ソースコードやエラーメッセージを開示してはいただけないでしょうか。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3×3行列と3×1行列の積を求めるプログラム
返信数: 3
閲覧数: 1011

Re: 3×3行列と3×1行列の積を求めるプログラム

字下げ(インデント)の悪いくせが身に付いてしまうと、あとあとやっかいです。 今のうちから、せめて下記の感じくらいに書くようにする方がよいでしょう。 誤解しないでいただきたいのは、「何が何でも下記のように書け」ということではなく (それ言い出すと宗教論争みたくなってしまう)、質問者さんのコードと当方のコードでは どっちが見やすいですか?っていうことです。 あと、少数じゃなくって小数です。少数派とか少数精鋭とかだったら少数でいいんですけどね。 #include <stdio.h> int main(void) { double v[3][3] = { { 0.00003, 0.000144, -0...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: atoiと+でバグります
返信数: 4
閲覧数: 1256

Re: atoiと+でバグります

atoi()に渡す引数の型が違ってるようです。

コード:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a = 999990;
    char *c = "9";

    a += atoi(c);
    printf("%d\n", atoi(c));
    printf("%d\n", a);
    return 0;
}
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に関する質問
返信数: 3
閲覧数: 982

Re: 配列に関する質問

下記の解答のdo while文の配列の部分(13行目)が「array 」となっています。なぜ「array 」ではなく「i - 1」となるのかがわかりません。確かにこれを入れないと、データの終わりを意味すると問題で指定されている「−1」を入力しても無限ループから抜けられません。 scanf ("%d", &array[i]); ここで、array に値を代入しています。例えばi = 5としましょうか。array[5]に何かが入りました。 i++; ここで、iを1増やしています。iは6になりました。したがって、上で代入したarray[5]の値が-1かどうかを判断するには } while (arr...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++のプログラム文の結果が変なのでは?
返信数: 8
閲覧数: 847

Re: C++のプログラム文の結果が変なのでは?

とりあえず言えることは、「プログラムは書いたとおりにしか動かない」ということです。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 『C言語入力した10進数を2進数変換し、出力する
返信数: 7
閲覧数: 1317

Re: 『C言語入力した10進数を2進数変換し、出力する

ぶっさん さんが書きました:

コード:

//負の値はNG
do{
printf("数値を入力してください。:");
scanf("%d",&num);
}while(num>0);
何だかコメントと実装、本当にやりたいこととが食い違っているように見えます。
正の数を入力している間ループする、というのは正しいですか?
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列検索について
返信数: 11
閲覧数: 1191

Re: 文字列検索について

Math さんが書きました:

コード:

#include <stdio.h>
char test1[] = "file"; // char test1[4];==>コンパイラに数えさせる方が安全:test1[5]
char test2[] = "sos filenonfile"; // char test2[16] = "sos filenonfile";==>同上tese2=[17]
せっかくこう書くのであれば、
Math さんが書きました:

コード:

	int n1=4,n2=16,i=0;
	
	for(i=0; (16-i) > 4; i++){
このあたりもコンピューターに数えてもらう方がよくないですか?
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 自作関数について・・・
返信数: 2
閲覧数: 478

Re: 自作関数について・・・

こんな風にしたい、ってことですか? #include <stdio.h> int max2(int a, int b) { int max; if (a > b) { max = a; } else { max = b; } return max; } int main(void) { int a, b; a = 30; b = 34; printf("%d", max2(a, b)); return 0; } だったら、全然問題ありません。 ちなみに、「有効範囲的に」という意味では、上記コードで、main関数におけるa, bとmax2関数におけるa, bとは 全く別物です。 main関数から...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 選択ソートについての質問です。
返信数: 6
閲覧数: 1155

Re: 選択ソートについての質問です。

みけCAT さんが書きました:とりあえず、for文の中に間違って存在するコンマ2個をセミコロンにすれば、コンパイルは通りますね。
21行目と22行目にある } のどっちかがいらない気がする。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語
返信数: 2
閲覧数: 518

Re: c言語

// こんな感じなのかな~という気がしないでもないような気がする #include <stdio.h> #include <string.h> #define N (10) void irekae(char (*a)[N], char (*b)[N]) { char t[N]; strcpy(t, *a), strcpy(*a, *b), strcpy(*b, t); } int main(void) { char a[N] = "book"; char b[N] = "amazon"; printf("a:%s, b:%s\n", a, b); irekae(&a, &b); printf...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語
返信数: 3
閲覧数: 495

Re: c言語

mac さんが書きました:c言語で、4つの自然数a1,a2,b1,b2を入力し、2つの分数 a1/b1,a2/b2 の四則演算を行い、それぞれの式と値を出力するプログラムを作成せよ。という問題についてです。
自然数a1, a2, b1, b2とあるので、とりあえずこれらはint型でしょう。
計算時にdoubleとかfloatとかにキャストする必要はあるにしても。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列
返信数: 3
閲覧数: 616

Re: 文字列

tese さんが書きました: 実行するとエラーが出てどこが間違っているのかがよくわからなくて。。。
どんなエラーが出るのか明記しましょう。
tese さんが書きました:

コード:

char *cswap(char *str, int i, int j); 
この関数、作っただけで呼び出している形跡がないように見えます。それでOKですか?
作ったならばどこかで呼び出す、いらないのならば削除する、どっちかにしましょう。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 質問です
返信数: 1
閲覧数: 360

Re: 質問です

if文でも使えば? #include <stdio.h> int main(void) { int i; for (i = 1; i <= 100; i++) { if ( 1 <= i && i <= 20) putchar('A'); if (21 <= i && i <= 50) putchar('B'); if (51 <= i && i <= 70) putchar('C'); if (71 <= i && i <= 90) putchar('D'); if (91 <= i && i <= 100) putchar('E'); } putchar('\n'); return 0; }
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 教えてください
返信数: 5
閲覧数: 656

Re: 教えてください

データが失われてしまいます そうならないためにはどうしたらいいですか? kがint型なのがおかしい。double型にすべき。 インデントがグッチャングッチャンで見づらい。修正すべき。 (注)-4 -0.19のくだりは、意をくんで直しておいた。 #include <stdio.h> int main(void) { double x[] = { -1, -0.49, 0, -3.1, -8, -3, -7.5, 0, -0.98, -4, -3.21, -4, -0.19, -2.4, -3.1, -3.6, -8.5, -3.7, -1, -5.4 }, t; int i, j, n = s...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: mallocで確保した領域に文字列を
返信数: 3
閲覧数: 436

Re: mallocで確保した領域に文字列を

あまつ さんが書きました:このプログラムでは"あいうえお"に必要な11バイトの領域をmallocで確保しています。が、2バイトや3バイトでもERRORが発生せず、出力されます。
深刻なエラーが出るような領域をたまたま破壊していないだけです。
11バイト確保したならば、そこへ格納できるのは「プログラマーの責任で」11バイトまでです。

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