検索結果 1997 件

by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: main関数の引数argvとcharについて
返信数: 4
閲覧数: 5176

Re: main関数の引数argvとcharについて

argvはchar型の配列へのポインターだからです。
argvはchar型へのポインターの配列、と言った方が正確だったかな?
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: main関数の引数argvとcharについて
返信数: 4
閲覧数: 5176

Re: main関数の引数argvとcharについて

argvはchar型の配列へのポインターだからです。
argv[1]はchar型の配列の要素であり、型はchar *です。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5430

Re: 文字列を逆順に表示したい

こんな例はいかが?

コード:

#include <stdio.h>
#include <string.h>

#define LEN (10)

int main(void)
{
    char moji[LEN];
    int i;

    printf("mojiretsu:"), fgets(moji, LEN, stdin);
    for (i = strlen(moji) - 2; i >= 0; i--) {
        putchar(moji[i]);
    }
    putchar('\n');
    return 0;
}
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 違いを教えてください
返信数: 4
閲覧数: 3022

Re: 違いを教えてください

コード:

 	int *w = 5;
ポインター変数wに、即値を直接代入することは未定義のはずです。
したがって、どんな結果が出ても不思議ではありません。
もし、アドレス値を出力したいのであれば、

コード:

#include <stdio.h>

int main(void)
{
    int *w;

    printf("%p\n", w);
    return 0;
}
な風にすればよいと思います。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 違いを教えてください
返信数: 4
閲覧数: 3022

Re: 違いを教えてください

本当にprint関数を使っているんですか?
標準ライブラリーのprintf関数ではなくて?
もし、print関数が自作であるなら、そのコードを含めて
すべてのソースを正確に見せてください。
もし、printf関数を使っているのならば、そのコードを
正確に見せてください。まずはそこからです。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートの結果がうまく表示されない
返信数: 4
閲覧数: 3454

Re: バブルソートの結果がうまく表示されない

あと、元のコードで問題なのは、
外側のiに関するループは何をしてるんですか?ってことです。
比較にも何にも使ってないので、そのループ、なくていいんじゃないですか?
単に9回回ってるだけなんじゃないんですか?ってことです。
実際にはないと困るのですけれど。配列の比較時に必要なので。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートの結果がうまく表示されない
返信数: 4
閲覧数: 3454

Re: バブルソートの結果がうまく表示されない

参考までに、自分だったらこう書きます。 #include <stdio.h> #define NUM (10) void bubble_sort(int *a) { int i, j, t; for (i = 0; i < NUM - 1; i++) { for (j = i + 1; j < NUM; j++) { if (a[i] > a[j]) { t = a[i], a[i] = a[j], a[j] = t; } } } } int main(void) { unsigned int array[NUM] = { 2, 4, 5, 6, 8, 1, 3, 7, 9, 0 }; int...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートの結果がうまく表示されない
返信数: 4
閲覧数: 3454

Re: バブルソートの結果がうまく表示されない

コード:

			if (a[j] > a[j + 1]) {
ここでは、a[j]とa[j + 1]の大小関係を比べている。
ところが、大小関係を比べた結果、

コード:

				temp = a[j]; 
				a[j] = a[j - 1]; 
				a[j - 1] = temp;
a[j]とa[j - 1]を入れ替えている。
何だか矛盾していませんか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインタの仕組みについて
返信数: 2
閲覧数: 2863

Re: 関数ポインタの仕組みについて

関数はメモリに保存されているのでしょうか?
だって、何らかのアドレスを持っている(メモリー中のどこかにある)からこそ
呼び出せるわけでしょ?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: c++ リンクエラー
返信数: 5
閲覧数: 4009

Re: c++ リンクエラー

multiple definition of `main'
main関数の定義が複数ある、と言っています。
if ($?) { g++ main.cpp *.cpp -o main } ; if ($?) { .\main }
試しにmain.cppの記述をはずしてみたらどうなるでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: c++ リンクエラー
返信数: 5
閲覧数: 4009

Re: c++ リンクエラー

ビルド時のコマンドを提示してください。
sample.cpp
を正しくコンパイルできているでしょうか。
リンカーからのメッセージは、
set()
とか
get()
とかを呼んでるけど実体がないよ、って言っています。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 浮動小数点にの計算について
返信数: 2
閲覧数: 2856

Re: 浮動小数点にの計算について

ほんのちょっとしたサンプルコードです。 ところで、過去にご自分が立てたトピックは解決したんですかね? #include<stdio.h> #define N (4) void inputArray(double *a) { int i; for (i = 0; i < N; i++) { printf("Data No.%d > ", i + 1); scanf("%lf", &a[i]); } } void printArray(double *a) { int i; for (i = 0; i < N; i++) { printf("Data No.%d = %f\n", i + 1, a...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインター
返信数: 2
閲覧数: 2998

Re: 関数ポインター

ほんのちょっとしたサンプルコードその2です。 #include<stdio.h> typedef int (*keisan)(int, int); int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int div(int a, int b) { return (b != 0) ? (a / b) : 0; } int main(void) { keisan f[] = { add, sub, mul, di...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインター
返信数: 2
閲覧数: 2998

Re: 関数ポインター

ほんのちょっとしたサンプルコードです。 #include<stdio.h> typedef void (*func)(void); void hello(void) { printf("Hello\n"); } void bonjour(void) { printf("Bonjour\n"); } void gutentag(void) { printf("Guten Tag\n"); } int main(void) { func f[] = { hello, bonjour, gutentag }; int i; for (i = 0; i < sizeof(f) / sizeof(f[0...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数から最大値と最小値を求める
返信数: 3
閲覧数: 3930

Re: 乱数から最大値と最小値を求める

そもそもbは配列である必要性が全くない(後で再利用しているわけでもない)ので、 こんな感じでいいんじゃないでしょうか。 #include <stdio.h> #include <time.h> #include <stdlib.h> int main(void) { int num, i, max = 1, min = 10; srand((unsigned) time(NULL)); for (i = 0; i < 10; i++){ num = rand() % 10 + 1; printf("%d ", num); if (num >= max) { max = num; } if (n...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数から最大値と最小値を求める
返信数: 3
閲覧数: 3930

Re: 乱数から最大値と最小値を求める

コード:

    int b[10];
こう書いたとき、配列bの添字として有効なのは
0~9の10個です。
したがって、

コード:

    for(a=1; a<=10; a++){
このループの回し方が間違っていますので、

コード:

    for (a = 0; a < 10; a++) {
または

コード:

    for (a = 0; a <= 9; a++) {
としなければなりません。まあ普通は前者でしょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 5
閲覧数: 3713

Re: 質問

#include <stdio.h> #include <string.h> #define SIZE (100) int searchChar(char *s, char c) { int n, i; for (n = i = 0; s[i]; i++) { if (s[i] == c) n++; } return n; } int main(void){ char str[SIZE], kensaku; printf("文字列を入力>"); fgets(str, SIZE, stdin); str[strlen(str) - 1] = '\0'; printf("検索する文字を入力>")...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問2
返信数: 4
閲覧数: 3540

Re: 質問2

ユーザが指定した文字を探してその文字が含まれている個数を返すプログラム
話題が全然違うので、別のトピックを作りましょう。
その際、タイトルは「質問」なんかではなく、投稿の内容を端的に示す具体的なものにしましょう。
他のトピックを見てみてください。

入力例と出力例をいくつか挙げてください。
何をしたいのかイマイチピンと来ません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 7
閲覧数: 4223

Re: 質問

#include <stdio.h> #define LEN (5) void array_sumof(int *vc, int no, int *psum); int main(void) { int ary[LEN], i, sum=0; printf("整数を%d回入力してください。\n", LEN); for (i = 0; i < LEN; i++) { printf("[%d]> ", i); scanf("%d", &ary[i]); } array_sumof(ary, LEN, &sum); printf("合計 : %d\n", sum); return 0; } voi...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11771

Re: ヘッダファイルについてうまくいかない

window.cpp
の2行目に
#include "window.h"
と書いたらどうなりますか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: for文とscanf関数を用いて行列計算プログラムをうまく作れない
返信数: 3
閲覧数: 3390

Re: for文とscanf関数を用いて行列計算プログラムをうまく作れない

列方向に入力させようとしているところに
違和感がぬぐえないのは当方だけ?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: nの階乗を求めるプログラム
返信数: 4
閲覧数: 2930

Re: nの階乗を求めるプログラム

少なくとも下記のコードではfor文の初期値は1でも2でもOKです。
もちろん、int型でオーバーフローしない範囲のnにおいては、ということです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: nの階乗を求めるプログラム
返信数: 4
閲覧数: 2930

Re: nの階乗を求めるプログラム

元のコードはいろいろグダグダだったので書き換えました。 少なくとも下記のコードではfor文の初期値は1でも2でもOKです。 #include<stdio.h> int factorial(int n) { int ans = 1, i; for (i = 1; i <= n; i++) { ans *= i; } return ans; } int main(void) { int n; printf("n = "); scanf("%d", &n); printf("factorial of %d is %d\n", n, factorial(n)); return 0; }
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語について質問
返信数: 2
閲覧数: 3438

Re: C言語について質問

質問者さんの疑問が解決するかどうかはわかりませんが、

コード:

    srand((unsigned)time(NULL));
このコードはmain関数の先頭で「1回だけ」実行すればいいのではないでしょうか。
neuron_learning関数で、毎回乱数の種を初期化する必要はどこにあるのでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 1
閲覧数: 1525

Re: 質問

• 入力された数が 1988 以下の数の場合は再入力を要求する
まずは、この仕様をみたすinputYear関数を作ることを考えましょうか。
inputYear関数では、do ~ while ループか何かを使って、
誤った入力をしている間は再入力を促し、1989以上の整数値を入力したら
その値を呼び出し元に返すとよいでしょう。
引数の有無、戻り値をどうするか、考えてみましょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: アドレス帳を作っています。
返信数: 6
閲覧数: 4786

Re: アドレス帳を作っています。

えっと、まさか、
main()のNerror

Bytecheck()のNerror

同じだとは思ってませんよね?
両者は、ともにその関数内のローカル変数ですので、
別々の場所(アドレス)にありますよ。名前は同じですが、ひも付けはありません。

あと、なんでもかんでもmain()に押し込んでいるのが気になります。
main()は司令塔の役割を果たすだけにして、
データ入力用の関数とか表示用の関数とかに分割する方が
プログラム全体の見通しがよくなると思うんですけど。
仮に自分が質問者さんの上司か何かなら、
「設計やり直し!」
って言うところです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: アドレス帳を作っています。
返信数: 6
閲覧数: 4786

Re: アドレス帳を作っています。

コード:

		Bytecheck(bytesu);					//バイト数のチェックをする
		Bytecheck(bytesu);
		Bytecheck(bytesu);
戻り値を捨てているのはどうしてですか?

コード:

    Nerror = Bytecheck(bytesu);
のようにして、戻り値をきちんと受け取らないとまずくないですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語[ポインタ変数を使用したプログラムの修正]
返信数: 3
閲覧数: 3679

Re: C言語[ポインタ変数を使用したプログラムの修正]

11行目:前「p++」→後「(*p)++」
これが最悪の改修です。
これは、配列の先頭要素である1.6を出力した後、
「その値に1を加え」た値を

コード:

while (*p > 0)
である間ずっと出力し続けますので、
1.6
2.6
3.6
4.6
...
と無限に出力されます。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語[ポインタ変数を使用したプログラムの修正]
返信数: 3
閲覧数: 3679

Re: C言語[ポインタ変数を使用したプログラムの修正]

修正の一例です。

コード:

#include <stdio.h>

int main(void)
{
    double data[] = { 1.6, 5.3, -1.5, 8.2, 1.7, -4.0, 1.8, 1.6, 0 };
    double *p;

    for (p = data; *p; p++) {
        printf("%0.1f\n", *p);
    }
    return 0;
}
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 戻り値をもたない関数voidを使った課題
返信数: 3
閲覧数: 3704

Re: C言語 戻り値をもたない関数voidを使った課題

以下はちょっとしたサンプルコードです。 質問者さんのコードのどこがおかしいかは ・scanfで読み込んだmを捨ててしまっている。 ・Aに渡すのは回数の10ではなく、読み込んだ文字であるはず ・Aの中で、定義されていない変数mを使っている #include <stdio.h> #include <ctype.h> void func(int c) { int i; for (i = 0; i < 10; i++) { putchar(c); } puts(""); } int main(void) { int c; do { printf("Capital Letter: "); c = get...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 大学の数学の問題集ってないんですか?
返信数: 3
閲覧数: 4491

Re: 大学の数学の問題集ってないんですか?

高校ではチャートをやってましたが、大学でも同じような問題集はないのでしょうか?
数研出版から
チャート式 大学教養微分積分
チャート式 大学教養線形代数
という大学生向けの参考書が出てますが、
それが質問者さんのニーズに合うかどうかはわかりません。
興味があれば数研出版のサイトへ行ってみてください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 原因不明
返信数: 3
閲覧数: 4362

Re: 原因不明

コード:

	char space[15][61];  /*[行][列]*/
spaceはいわゆる2次元配列なのに

コード:

		printf("%s\n", space[i]);
ポインター値を%sで出力するって、これは何がしたいんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 原因がわからない
返信数: 1
閲覧数: 3451

Re: C言語 原因がわからない

各々の点数や合計点がint型なのはいいとして、 平均点や偏差値といった小数点以下の値を取る変数がint型でいいんでしょうか。 自分ならdouble型にします。 それから、aとかbとかcとかxとか、一見何を表わしているのかわかりづらい変数名は やめとく方がいいと思います。 例えば、国語の点数はjpn, 数学の点数はmath, 英語の点数はeng, 国語の平均はavg_jpn, 数学の平均はavg_math, 英語の点数はavg_engといった具合に パッと見てイメージしやすい名前を付けるだけでもずいぶん見通しがよくなると思いますが いかがでしょう。 「名は体を表す」という言葉は、変数名を付けると...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 表示が思う通りにいかない
返信数: 4
閲覧数: 4935

Re: C++ 表示が思う通りにいかない

筆算(足し算)をしたい
のに、
入力>123
1個だけの入力でホントにいいんですか?
足される数と足す数の2個の入力をしなくてホントにいいんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数学の質問
返信数: 6
閲覧数: 5065

Re: 数学の質問

質問者さんの①の写し間違いと本の誤植とのダブルパンチのようです。

質問者さんが書いた①
x^3-kx=(3a^2-2a^3)

本に載っている式
x^3 - kx = (3a^2 - k)x - 2a^3 → ね?違ってるでしょ?
これを整理すると
x^3 - (3a^2)x + 2a^3 = 0
となり、その本の「すなわち」の次にかいてある
x^3 - kx + 2a^3 = 0
には、どう転んでもなりません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数学の質問
返信数: 6
閲覧数: 5065

Re: 数学の質問

ここを見ている人がすべからくプラチカを持っているとは限らないので、
どうしてもここで続けたければ、その問題を、句読点や改行を含めて
今一度正確にあげていただけますか?
あるいは、ここよりもYahoo!掲示板とかOKwaveとかの数学カテゴリーへ行った方が
いいのかもしれません。画像貼れるはずですから。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数学の質問
返信数: 6
閲覧数: 5065

Re: 数学の質問

①から②にはならないと思います。
問題の写し方が間違ってないですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の基礎がわかりません。
返信数: 3
閲覧数: 4479

Re: C言語の基礎がわかりません。

この問題で詰まってしまいました。
手で計算するとしたらどうするかっていう話なんですけど...。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 関数の外にあるブロック文の扱い?について
返信数: 6
閲覧数: 5403

Re: 関数の外にあるブロック文の扱い?について

これがコードの全体
ホントに?
main関数の閉じカッコがないんですが...。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列比較のアルゴリズムについて
返信数: 4
閲覧数: 5970

Re: 文字列比較のアルゴリズムについて

ロジック以前の話としておかしいのは

コード:

 s1[i]='1';
 s2[i]='1';
 s_cmp[i]='1';
 for(i=0;s1[i-1]!= '2';i++)scanf("%c",&s1[i]);//二つの文字列を読み込みます
 for(j=0;s2[j-1]!='2';j++)scanf("%c",&s2[j]);
比較したい文字列に'1'や'2'を含めたいときはどうするんでしょうね?ってことです。
なので全面的に見直したコードを載せました。
aiueoとoeuiaを同一視したいのであれば、比較する前にソートすりゃいいじゃん、ってことです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストにおける重複要素の削除方法について
返信数: 2
閲覧数: 4063

Re: 連結リストにおける重複要素の削除方法について

コード:

current=d;
current2=d;
DATA型の値をDATA *型へ代入しようとしていますが、正しいですか?

コード:

printf("%d %d %d %d\n",d.next->data
構造体にdataっていうメンバーはありませんが、いいんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストにおける重複要素の削除方法について
返信数: 2
閲覧数: 4063

Re: 連結リストにおける重複要素の削除方法について

コード:

}DATA
ここにセミコロンがなくていいんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列比較のアルゴリズムについて
返信数: 4
閲覧数: 5970

Re: 文字列比較のアルゴリズムについて

アルゴリズムを全面的に見直したサンプルです。 #include <stdio.h> #include <string.h> #define N (128) void swap(char *a, char *b) { char t; t = *a, *a = *b, *b = t; } void sortData(char *s) { int i, j; for (i = 0; i < strlen(s) - 1; i++) { for (j = i + 1; j < strlen(s); j++) { if (s[i] > s[j]) { swap(&s[i], &s[j]); } } } }...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 6915

Re: Segmentation fault (core dumped)の解決方法

コード:

  char *str;
まあ通常は適切なサイズの配列にするんでしょうね。
バッファーオーバーフローへの対応をすべきかどうかはお任せします。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題について
返信数: 3
閲覧数: 4886

Re: 課題について

identifierを付け忘れています。というエラー
コードの何行目で出ているんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題について
返信数: 3
閲覧数: 4886

Re: 課題について

codeと/codeで囲んだコードがこちらにありましたね。
maxof()とminof()を呼び出してないのはなぜですか?

コード:

min = in > b[i] ? b[i] : min;[/code/[/quote]
ここのinが直ってないので直しましょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題について
返信数: 2
閲覧数: 2299

Re: 課題について

コード:

min = in > b[i] ? b[i] : min;
後、ここのinは変数名が間違ってるのではないでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題について
返信数: 2
閲覧数: 2299

Re: 課題について

ここの掲示板の仕様で、配列のインデックスであるiを[と]で囲むと
勝手に斜体にするというよけいなお世話をしてくれますので、コード全体を、この掲示板の
先頭にあるようにcodeタグと/codeタグで囲んで、現状お持ちのコードを正確に提示してください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: int型からchar*にする方法を教えて下さい、、、
返信数: 6
閲覧数: 5857

Re: int型からchar*にする方法を教えて下さい、、、

解決していたら何よりですが、英語のエラーメッセージを見て
わけわかめ状態になっていたりはしませんか?
Instead, use the ISO C and C++ conformant name: _itoa.
Consider using sprintf_s instead.
詳細は割愛しますが、要は、itoa()のかわりに_itoa()を、
sprintf()のかわりにsprintf_s()を使ってみたらどうですか?
って言ってくれてます。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルの読み込み
返信数: 4
閲覧数: 2906

Re: csvファイルの読み込み

くだんのコードでは1行目しか読んでいないように見えますが、
それでいいんですね?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルの読み込み
返信数: 4
閲覧数: 2906

Re: csvファイルの読み込み

csvファイルはドキュメントに入れています。
置いてある場所が正しくないのでは?
開発環境によって異なると思いますが、通常は、
ソースコードがあるフォルダーや
実行ファイルがあるフォルダーに置くことが多いと思います。

というわけで、何を使って開発しているかを提示していただけますと、
同じものを使っている識者の方々から有益な回答が来るかもしれませんし
来ないかもしれません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題です
返信数: 4
閲覧数: 3622

Re: 学校の課題です

コード:

    person p[3];

コード:

    person p[N];
とするべきですね。
なお、くだんのサンプルコードはご自由に改変してくださってかまいません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題です
返信数: 4
閲覧数: 3622

Re: 学校の課題です

main関数に何でもかんでもやらせない方がよいと思います。個人的には。 データの入力、評価、出力を適切に関数分けする方がよいのではないでしょうか。 #include <stdio.h> #include <stdlib.h> #define N (3) #define C (21) typedef struct { char name[C]; int number; int score; char class; } person; void inputData(person *p) { int i; for (i = 0; i < N; i++) { printf("名前 番号 点数>"); ...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 仮引数を受け取らない関数について
返信数: 3
閲覧数: 4503

Re: 仮引数を受け取らない関数について

グローバル変数でやったらできました!
そのくらいの小さいプログラムならばまだいいですが、
ある程度以上の規模のプログラムではグローバルはなるべく使わない方が
無難だと思います。
なぜなら、どの関数からでも参照・変更ができてしまうので、
思わぬところで変更されていたりするとそれを見つけるのが
なかなかむずかしかったりしますから。
その辺の危険性をよくわかった上で使ってください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 課題を教えてください
返信数: 4
閲覧数: 5335

Re: 課題を教えてください

2. 以下の関数は使用しないこととありますがm_sort.cで使用してるから、それを自分で作成した関数に置き換えることと読めますが。
これは読み間違いですね。
大文字小文字が混在しているcharの箇所「だけ」着目すればよいのであって、
当該ソースの他の箇所は「そのまま」書き出せばよいのです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列の作り方を教えてください。
返信数: 5
閲覧数: 5444

Re: 2次元配列の作り方を教えてください。

2次元配列の定義、値の格納、値の出力が正しくできる最低限のコードを書きたのはやまやまなのですが、調べても出てこなくて
それは調べ方がよろしくないのでは?
「C言語 2次元配列」あたりでググってみると、それこそ山ほど出てきますよ。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列の作り方を教えてください。
返信数: 5
閲覧数: 5444

Re: 2次元配列の作り方を教えてください。

二次元配列を作りたいのですがどうもうまくいきません。
どんなコードを書いたときにどんな風にうまくいかないのかを書いてほしいところですが、
ともあれ、ゲームとはいったん切り離して、2次元配列の定義、値の格納、値の出力が
正しくできる最低限のコードを書いてみてはどうでしょうか。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C# 五目並べが上手くいかない
返信数: 5
閲覧数: 5203

Re: C# 五目並べが上手くいかない

2次元の盤面の一つ一つの場所に数値を当てはめて(例えば10*10の盤面だったら0~99とか)、
そこに石が置いてあるかどうかをon/offで管理します。
コンピューターの手番になったとき、乱数によって
盤面のうち一つの場所を決め、そこがあいていれば
石を置き、あいてなければ別の乱数を発生させて場所を決めて石を置く
(石を置けるまでくり返す)ようにしてみてはどうでしょう。

p.s.
ただ、これだと、コンピューターには何の戦略もありませんので、
プレイヤーが連戦連勝になる気がします。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列から文字を探すプログラム
返信数: 3
閲覧数: 4558

Re: 文字列から文字を探すプログラム

ここを

コード:

scanf("%c", &c);
scanf(" %c", &c);
こうしてみるとか...。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: C# 五目並べが上手くいかない
返信数: 5
閲覧数: 5203

Re: C# 五目並べが上手くいかない

プレイヤーの入力のみになっていて、敵側が石を置くことができません。
敵側というのはコンピューターのことですか?だとすると、プレイヤーの打った手や
盤面の状況などによって最善手あるいはそれに近い手を選ぶためのアルゴリズムは
メチャクチャむずかしいと思います。少なくとも当方にはできません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 問題の意味すら分かりません プログラムと問題の意味を教えてください
返信数: 2
閲覧数: 4362

Re: c言語 問題の意味すら分かりません プログラムと問題の意味を教えてください

ちょっとしたサンプルコードを書いてみました。読めますか? #include <stdio.h> #include <string.h> #define N (100) void inputData(char *s) { printf("データを入力してください:"), fgets(s, N, stdin); s[strlen(s)-1] = '\0'; } void outputData(char *s) { int i; for (i = 0; s[i]; i++) { switch (s[i]) { case 'T': putchar(' '), putchar(' '); break; ...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 問題の意味すら分かりません プログラムと問題の意味を教えてください
返信数: 2
閲覧数: 4362

Re: c言語 問題の意味すら分かりません プログラムと問題の意味を教えてください

C言語のスキルはどのくらいありますか?
なにがしかのプログラムを書いたことはありますか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 6874

Re: 学校の課題 文字配列

とりあえず無限ループはいらないと思いますので、やめときましょう。 #include <stdio.h> int main(void) { char input[9], string[][9] = { "ヒロシ", "サトシ", "アキコ", "ユウコ" }; int i, j, result = 0; printf("メンバー:ヒロシ,サトシ,アキコ,ユウコ\n"); printf("名前を入力してください:"); scanf("%s", input); for (i = 0; i < 4; i++) { for (j = 0; j < 9; j++) { if (input[j] != st...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 6874

Re: 学校の課題 文字配列

仮に禁止されているとしても、
strcmp 自作
とか
C言語 文字列比較 自作
とかのキーワードでググってみると、
実装のサンプルがいくらでも見つかると思います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題 文字配列
返信数: 9
閲覧数: 6874

Re: 学校の課題 文字配列

文字列を比較するための標準関数
strcmp()
を使う、というのは禁止されているのですか?
もし使ってよいのであれば、無理に自作するよりは
よほど安定した結果が得られると思うのですが...。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 8073

Re: 学校の課題2

read file error
開発環境によって、読み込み用のファイルの置き場所が異なるようです。
ソースファイルと同じ場所でなければなかったり、
実行ファイルと同じ場所でなければなかったりするみたいです。
読み込みファイルの置き場所を変えてみてください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題を教えてください2
返信数: 1
閲覧数: 3578

Re: 学校の課題を教えてください2

うまくいきません。
「何をしたとき」
「どのように」
うまくいかないかを具体的に書いてください。

comp()の実体が2つありますが大丈夫ですか?
クイックソートの結果をwordlist_q.txtに書き込むコードがないように見えますが大丈夫ですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 結果が思った数字にならない件について
返信数: 4
閲覧数: 4855

Re: 結果が思った数字にならない件について

Butterさんからの返信にはどう対応しますか?

コード:

    int i, F[n+1];
    F[1]=1;
    for(i=0;i<=n+1;i++)
        F[i+2]=F[i+1]+F[i];
F[n+1]という定義をしているので、正しく参照できるのは
F[0]~F[n]の範囲です。それに対し、ループの中で
iがn-1になったとき
F[n+1]という定義範囲外の領域にアクセスするという悪さをしています。
これ、大丈夫ですか?という返信ですよ。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 8073

Re: 学校の課題2

https://qiita.com/softnakikaiya/items/d ... 913e1038a1
に、fopen_sをfopenのかわりに使うときのやり方がかいてあります。
その他、
fopen_s 使い方
あたりのキーワードでググってみると、いろんなことがわかると思います。

p.s.
fopen_sって、確かマイクロソフト社の処理系の独自関数だったような気が...。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 結果が思った数字にならない件について
返信数: 4
閲覧数: 4855

Re: 結果が思った数字にならない件について

下のコードの#define MAX が1のとき2のとき3以上のときでFibo()の結果が変わってしまいます。 そりゃ変わるでしょうね。 1文字っていうと改行コードしか受け取れないし、 2文字っていうと1桁の数値しか受け取れないし、 3文字っていうと2桁までの数値しか受け取れないですが、 そのあたりは大丈夫ですか? int i, F[n+1]; F[1]=1; for(i=0;i<=n+1;i++) F[i+2]=F[i+1]+F[i]; ループの中で、 初期化していないF[0]を参照してしまっていますが、 大丈夫ですか?たまたまゼロかもしれないし、そうでない変な値かもしれませんよ。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 8073

Re: 学校の課題2

さすがにmain()に何でもかんでもやらせるのはちょっとアレなので... #include <stdio.h> #include <stdlib.h> typedef struct anthrop { int id; char initial[3]; double height; double weight; } anthrop; void openFile(FILE **fp) { *fp = fopen("bodydata.dat", "r"); if (!*fp) { fprintf(stderr, "read file error!\n"); exit(1); } } int inpu...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題2
返信数: 11
閲覧数: 8073

Re: 学校の課題2

きたないコードですが… #include <stdio.h> #include <stdlib.h> typedef struct anthrop { int id; char initial[3]; double height; double weight; } anthrop; int main(void) { anthrop bodydata[10]; FILE* fp; int num, i; fp = fopen("bodydata.dat", "r"); if (!fp) { fprintf(stderr, "read file error!\n"); exit(1); } fsc...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: else文が機能しない
返信数: 3
閲覧数: 4400

Re: else文が機能しない

コード:

if (a > 80) {
		printf("20以上80未満です"); //  正の数だった場合に実行
if文の内容とprintf()で出力している内容とコメントの内容が
すべて食い違っています。ホントは何がしたいんですか?

コード:

	else if (a < 19)
	{
		printf("20以下です");
ここもそう。
19未満と20以下は、中身が全く違います。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。
返信数: 3
閲覧数: 4774

Re: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。

あと、行列の積って、確か
かけられる側の列数とかける側の行数が
同じでないと計算できないはずなので、
そこら辺のチェックが必要かも。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。
返信数: 3
閲覧数: 4774

Re: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。

for文の間違いは直せたとして、 void matrix_add(struct matrix A, struct matrix B, struct matrix* C) C[i][j] = a[i][j] + b[i][j]; void matrix_sub(struct matrix A, struct matrix B, struct matrix* C) C[i][j] = a[i][j] - b[i][j]; void matrix_mul(struct matrix A, struct matrix B, struct matrix* C) C[i][j] = a[i][j] * b...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。
返信数: 3
閲覧数: 4774

Re: 行列の和・差・積を繰返し計算する電卓を作成する課題を解いてます。

コード:

	int 行;
	int 列;
悪いことは言わんので、マルチバイト文字の変数名は使わない方がよい。

コード:

	for ("i=0;P.行>i;i++")
		for ("j=0;P.列>j;j++")
	for ("i=0;P.行>i;i++")
		for ("j=0;P.列>j;j++")
	for ("i=0;P.行>i;i++")
		for ("j=0;P.列>j;j++")
そりゃダブルクォーテーションで囲ったら動きませんわ。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルの読み書き
返信数: 3
閲覧数: 4501

Re: テキストファイルの読み書き

1行4列限定ならばこんなのでいいかも。 ただし、読み込むファイルの置き場所は注意が必要そうです。 開発環境によって置くべき場所が異なると思いますので。 当方の環境ではソースファイルと同じ場所でOKでした。 #include <stdio.h> #include <stdlib.h> #define N (4) void inputData(int num[]) { FILE *fp; fp = fopen("read.txt", "r"); if (!fp) { fprintf(stderr, "read file open error! operation denied.\n"); exit...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数でいくつかの弾を同時に落としたい
返信数: 4
閲覧数: 4754

Re: 乱数でいくつかの弾を同時に落としたい

rand()の使い方について、
当方の稚拙な知識では、
乱数の種を初期化してから
rand()を呼ぶ、
というやり方しか知りません。

質問者さんの今のコードには
初期化の部分が見当たらないように
思えますが、そこはそれで
いいんですね?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 8101

Re: 学校の課題

lmsq関数に、meanxやmeanyで計算した
mxやmyの値を渡さなくていいんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: sin,cos,tanのマクローリン展開について
返信数: 1
閲覧数: 3845

Re: sin,cos,tanのマクローリン展開について

まずはマクローリン展開についてググってみましょう。
三角関数などの複雑な関数をn次式の和で近似できることがわかり、
かつ、微分をどうプログラミングすればいいかはわからなくてもいいことが
わかるでしょう。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルの読み書き
返信数: 3
閲覧数: 4501

Re: テキストファイルの読み書き

数値が書かれたテキストファイル
何行ありますか?また、1行あたりいくつの数値が並んでいますか?
合計は最後の行に追加します。

20,21,4,27 → 20,21,4,27,72
最後の「列」でいいですね?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 8101

Re: 学校の課題

コード:

	a = lmsq(x, y, n, &a, &b);
	b = lmsq(x, y, n, &a, &b);
何度も指摘されているように、lmsq関数の型はvoidなので、戻り値を取れません。
つまり、右辺に来ることはできません。

コード:

lmsq(x, y, n, &a, &b);
lmsq(x, y, n, &a, &b);
としたらどうですか?と言われています。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の足し算
返信数: 4
閲覧数: 4935

Re: 配列の足し算

#include <stdio.h> #define N (3) void inputData(int *a1, int *a2) { int i; for (i = 0; i < N; i++) { printf("arr1 %d番目の値 = ", i + 1), scanf("%d", a1 + i); printf("arr2 %d番目の値 = ", i + 1), scanf("%d", a2 + i); } } void getSumArray(int *a1, int *a2, int *s) { int i; for (i = 0; i < N; i++) { *(s + i)...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題
返信数: 14
閲覧数: 8101

Re: 学校の課題

自分でもやってみたのですがエラーが出てしまい出来ません。
何をしたときにどんなエラーが出たかを詳しく示してください。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の足し算
返信数: 4
閲覧数: 4935

Re: 配列の足し算

初期値0
どこで初期値を設定していますか?
任意の値を入力
どこで入力していますか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の暴走
返信数: 1
閲覧数: 3706

Re: 配列の暴走

別に暴走でも何でもないと思うが…。 #include <stdio.h> int main(void) { int i, x, max[2] = { 0, 0 }; while (1) { printf("整数を入力>"); scanf("%d", &x); if (x < 0) break; else if (x > max[0]) { max[1] = max[0]; max[0] = x; } else if (x > max[1]) max[1] = x; } for(i = 0; i < 2; i++) { printf("%d位:%d\n", i + 1, max[i]); } r...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数列
返信数: 4
閲覧数: 5210

Re: 数列

どのように計算すればいいのですか
その数列の一般項の分母にあたる
2i+1
を適切に計算するコードを追加する。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 数列
返信数: 4
閲覧数: 5210

Re: 数列

#include <stdio.h> int getIteration(void) { int n; do { printf("0以上の整数を入力> "); scanf("%d", &n); if (n >= 0) break; printf("入力エラー\n"); } while (n < 0); return n; } double calcPI_4(int n) { double sum, x; int i; for (sum = i = 0; i <= n; i++) { x = 2 * i + 1; if (i % 2 != 0) x = -x; sum += 1 / x; } r...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけんのためのじゃんけん
返信数: 9
閲覧数: 7788

Re: じゃんけんのためのじゃんけん

当方が思うには、1回のジャンケンでどっちが勝とうが負けようがあいこになろうが、 次の勝負のときに出そうとするメッセージは勝負開始の合図だけでいいような気がするんですが…。 あいこの場合を特別視しすぎているように感じます。 質問者さんの希望している仕様を満たそうとすると、  1)直前の勝負があいこであったかどうかをON/OFFで管理する変数  2)その変数がONであるとき、間違った入力の回数を管理する変数(この変数の値が2であるときに「あいこでしょ」を出力する必要がある) がおそらく必要となり、ジャンケンの結果と本質的に関係ないところではっきり言ってムダな処理を しようとしているように思います。...
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけんのためのじゃんけん
返信数: 9
閲覧数: 7788

Re: じゃんけんのためのじゃんけん

あいこになり、二度0, 1, 2, 3以外の値を入力したときにあいこでしょの表示になりません。じゃんけんぽんと出てしまいます。
あいこになり、一度0, 1, 2, 3以外の値を入力したときにはどうなってほしいですか?
あいこになり、三度以上0, 1, 2, 3以外の値を入力したときにはどうなってほしいですか?
「二度」と限定している理由は何ですか?
それから、「今の」ソースコードを見せずに改善してほしいっていわれましても、
いかんともしがたいです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけんのためのじゃんけん
返信数: 9
閲覧数: 7788

Re: じゃんけんのためのじゃんけん

1あいこになる
2あいこでしょの表示
3再度入力する際にグー、チョキ、パー以外をだす
4注意を表示
52へ仕切り直し
あとは、これらの処理にフラグをいつ立てていつリセットするか、
0, 1, 2, 3以外の値を入力したときに適切なメッセージを
どうやって出力するかを追加すれば、ロジックの完成ですね。
そうすれば、それをコードへ落とし込めば完成です。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけんのためのじゃんけん
返信数: 9
閲覧数: 7788

Re: じゃんけんのためのじゃんけん

あいこになった後に間違った入力をしたらそのように表示します
まだよくわかりません。
間違った入力をしたということは、プレイヤーの選択はグーでもチョキでもパーでも終了でもない、
ということですよね?つまり、勝負をしている状況にないわけですよね?
なのに「あいこでしょ!」という表示を出すのはおかしくないですか?

それとも、1回でもあいこがあったならばその状況を覚えておく、ということですか?
もしそうだとすると、覚えておく必要性は何ですか?
過去の勝ち・負け・あいこがどうであろうと、それ以降の勝負には関係ないのではありませんか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: じゃんけんのためのじゃんけん
返信数: 9
閲覧数: 7788

Re: じゃんけんのためのじゃんけん

「グー・チョキ・パーを出して下さい あいこでしょ!」と表示したいです
間違った入力をしたのに「あいこでしょ!」って表示するのは
おかしくないですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 平均と標準偏差を求める
返信数: 6
閲覧数: 5525

Re: 平均と標準偏差を求める

とりあえず配列を使いましょうよ。
データが100個あったらどうしますか?

コード:

int x1, x2, x3, x4, (略) , x100;
って定義するんですか?
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準偏差がマイナスになってしまいます
返信数: 6
閲覧数: 5141

Re: 標準偏差がマイナスになってしまいます

ああ空文とみなすだけか…。でも何か気持ち悪い…。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 標準偏差がマイナスになってしまいます
返信数: 6
閲覧数: 5141

Re: 標準偏差がマイナスになってしまいます

コード:

for(i=0;i<=4;i++){;
こんなところにセミコロンがあって、本当に大丈夫ですか?
自分にはそうは思えません。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 評価値,整数値
返信数: 4
閲覧数: 4955

Re: 評価値,整数値

他の質問に付いている回答に対して、適切にレスしてくださいね。解決したとかしてないとか。ここがまだわからんとか。
答えもらいっぱなしじゃダメですよ。掲示板っていうメディアはそういうところですから。

1.処理系に依存し、必ず1とは言い切れない。
2.正しい。
3.正しい。
4.誤り。
5.1以外の整数でもよい。
6.正しい。
7.正しい。
8.誤り。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 条件
返信数: 8
閲覧数: 6737

Re: 条件

ていうか、過去のいくつかの質問に回答が付いてるわけだが、
それで問題が解決したかどうかの返事くらいよこせよ。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: 条件
返信数: 8
閲覧数: 6737

Re: 条件

5つもエラー出ねぇよ
5つって何のことかよくわからんけど、
質問するときは、
「こんな入力をしてみたら」
「自分はこうなると思ったけど」
「考えに相違してこうなった」ってことなんかを
『具体的に』書くんです。
by box
2年前
フォーラム: C言語何でも質問掲示板
トピック: エラーコード不明について
返信数: 1
閲覧数: 3531

Re: エラーコード不明について

たぶん、
OUTPUT
HIGH
LOW
あたりに適切な値が入っていないからだと思います。
それから、コードを貼るときは、適切にタグで挟んでください。
やり方はフォーラムルールを見てください。

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