検索結果 1971 件

by box
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 降順にソートする
返信数: 8
閲覧数: 199

Re: 降順にソートする

コード:

if(quantity<quantity[j])
number = quantity;
quantity = quantity[j];
この3箇所、なんでquantityに適切な添字がないままなんですか?
コンパイルエラーで引っかかってるはずなんですが、
エラーメッセージの読み方は大丈夫ですか?
by box
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 降順にソートする
返信数: 8
閲覧数: 199

Re: 降順にソートする

降順ソートうんぬんの前に、そもそも
ファイルから読んでいる箇所(fscanfとか)がなかった…。
by box
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 降順にソートする
返信数: 8
閲覧数: 199

Re: 降順にソートする

コード:

char number[5];
この定義において、number[]の添字として有効なのは0~4です。

コード:

printf("%\n", n + 1, number[5]);
定義範囲外のnumber[5]を出力しようとすると何が起きるかわかりませんし、
そもそも、
n + 1

number[5]
に対応する書式指定文字列が正しく設定されていません。

コード:

"%\n"
これじゃ、printf君はどういう形式で出力したらいいか困惑していると思いますよ。

ところで、今回の問題の肝である降順ソート部分のコードは提示していただけないのですか?
by box
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 降順にソートする
返信数: 8
閲覧数: 199

Re: 降順にソートする

その関数を呼び出しているmain関数など、コード全体は
提示していただけないのですか?

また、今のtotalinformation関数は
戻り値の型がvoidなので
return 0;
しようとするとコンパイルエラーになるはずです。大丈夫ですか?
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 演算子のエラーについて
返信数: 8
閲覧数: 261

Re: 演算子のエラーについて

エラーメッセージの読み方を練習しましょう。
特に今回は英語じゃないので、それほどむずかしくはないと思います。
:200:14: エラー: 二項演算子 ^ への無効な被演算子です (‘int *’ と ‘int *’)
200 | data ^= datai;
ポインターに対して「^」っていう演算子は使えないといっています。
ここで、「ああ、配列全体には^は使えないんだ。配列の各要素に対して^を使えばいいんだ」と
気づいていただきたいです。

今後、何かエラーメッセージが出るたびに、毎回こことか他の掲示板とかへ
質問したくはないですよね?
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 演算子のエラーについて
返信数: 8
閲覧数: 261

Re: 演算子のエラーについて

data ^= datai;
これ、何がしたいのか日本語で説明できますか?
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 文字化け
返信数: 3
閲覧数: 215

Re: 文字化け

うちの環境(Netbeans8.2 古っ)で #include <stdio.h> int main(void) { printf("文字化けいい加減にしろ\n"); return 0; } を実行したけど、特に文字化けはせんかったで。 まあ著名なところでは「表」ちゅう文字が確かShift-JIS環境では 思いっきり文字化けするっちゅうんは有名な話やと思うし、 そもそも2バイト文字とか3バイト文字とかを「すべて完璧に」出力させよう っちゅう考え方が少し甘いんかもな。どっかのバイトが制御文字と かぶってる可能性があるみたいやし。 ところで、どうでもええ話やけど、提示コードの最後の行のセミコロンは...
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 天下茶屋と深井の運賃が正確に出ない。
返信数: 6
閲覧数: 331

Re: 天下茶屋と深井の運賃が正確に出ない。

お~JavaScriptやったか。
C言語の掲示板なので頭からCの話と思い込んどったわ。
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 天下茶屋と深井の運賃が正確に出ない。
返信数: 6
閲覧数: 331

Re: 天下茶屋と深井の運賃が正確に出ない。

すごいコードですね。まあそれはさておき
堺東~深井間の運賃計算には対応できていますが、天下茶屋~深井間ができないです。
とのことですが、

コード:

f.q1.value == "中百舌鳥"
これ、本当に真になることがあるでしょうか。
構造体のメンバーvalueの定義がどうなっているか知りませんが、
仮に文字列同士の内容比較をしたければ、標準ライブラリーのstrcmpを使って
if strcmp(f.q1.value, "中百舌鳥") == 0
とかしないとまずくないでしょうか。
by box
2週間前
フォーラム: C言語何でも質問掲示板
トピック: コンソールアプリケーションの表示方法の質問
返信数: 4
閲覧数: 286

Re: コンソールアプリケーションの表示方法の質問

入力回数の上限は決まっているんですか?
by box
3週間前
フォーラム: C言語何でも質問掲示板
トピック: char型とint型について
返信数: 2
閲覧数: 225

Re: char型とint型について

int型は必ず符号付き、char型が符号付きかは環境による、という違いもあります
unsigned int
って型、なかったでしたっけ?当方の勘違いかな?
by box
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストに住所を格納し、それを検索するプログラムを作ってます
返信数: 5
閲覧数: 298

Re: 連結リストに住所を格納し、それを検索するプログラムを作ってます

構造体のメンバーに謎の
char *value;
っていうのがあります。これの役目は?
by box
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストに住所を格納し、それを検索するプログラムを作ってます
返信数: 5
閲覧数: 298

Re: 連結リストに住所を格納し、それを検索するプログラムを作ってます

そもそもの仕様として、検索する文字列は
郵便番号の「先頭文字だけ」でいいんですか?
char b;
の定義から、そう読めます。
もしそうだとすると
「理想の実行結果」にあがっている「郵便番号全体」の話と
食い違ってますよ。
by box
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストに住所を格納し、それを検索するプログラムを作ってます
返信数: 5
閲覧数: 298

Re: 連結リストに住所を格納し、それを検索するプログラムを作ってます

理想の実行結果
./main.exe address.txt
検索する文字列>0600806
0600806 北海道札幌市北区北六条西
検索する文字列の例として0600806をあげていますね。

コード:

char b;
なんで定義が1文字だけなんですか?

コード:

printf("検索する文字列> ");
scanf("%s",&b);
bは1文字分しかないのになんで入力指定文字列が%sなんですか?

コード:

if(p->zip == &b){
何をしようとしているんですか?
by box
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 2 の倍数でも 3 の倍数でもないものの和を求めたい
返信数: 4
閲覧数: 396

Re: 2 の倍数でも 3 の倍数でもないものの和を求めたい

何で同じことをmainでもsum_nでもやるかな? #include <stdio.h> int sum_n(int n) { int sum, i; for (sum = 0, i = 1; i <= n; i++) { if ((i % 2 != 0) && (i % 3 != 0)) sum += i; } return sum; } int main(void) { int a, b; do { printf("a="), scanf("%d", &a); printf("b="), scanf("%d", &b); } while (!(a <= b)); printf("answe...
by box
4週間前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 719

Re: 条件式のelseの書き方

int r〜以下の部分は配布された資料に書かれていたコードであり、理解できていません。
ということはその部分を理解できずにmoji()の上の方を書いたってことですね。
そういうことでしたら、このトピックに関する当方からの回答は差し控えることにします。
わからずに書いているコードに論評する資格は当方にはありませんので。
by box
4週間前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 719

Re: 条件式のelseの書き方

mojiっていう関数の動作を「日本語で」説明できますか?
なんでこんなこと聞いてるかっていうとですね、今のmoji()には、
別の回答にもあるとおり、
「絶対に通らない部分」があるからなんですよ。
それは

コード:

    int r = ~
以下の部分。
絶対に通らない部分なんていらないですよね?
いらんのだったら消せばいいし、いるんだったら
通るようにロジックを見直す必要があるんとちゃう?ってことです。
by box
4週間前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 719

Re: 条件式のelseの書き方

またもやぱっと見ですけどね
main()が長すぎると思います。プログラム全体をいくつかに機能に適切に分割し、
それらを実行する関数群を構成し、mainはそれらを呼ぶだけで全体の司令塔に徹する、
という設計がいいのかな~と個人的には思います。他の人がどう思うかは知らんけど。

あと、mojiっていう関数の動作を「日本語で」説明できますか?
by box
4週間前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 719

Re: 条件式のelseの書き方

そしたらですね、
質問者さんのところにあるコードを
「そのままコピペして」
すべて見せていただくことは可能ですか?
そうしないと、質問者さんとここにいる人たちが
同じものを見ていることにならず、
的確な回答が来ないおそれがあるからです。
by box
4週間前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 719

Re: 条件式のelseの書き方

ぱっと見なんですけどね

コード:

int mojiretsu(unsigned char *a, unsigned char *b) {
while((*x==*y)&&(*x!=0)&&(*y!=0)){
このコード、コンパイル通ってます?
xとかyとかって、どこで定義したんですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストを用いて文字列を格納する方法
返信数: 1
閲覧数: 343

Re: 連結リストを用いて文字列を格納する方法

えっと、連結リストに格納するコードの提示がないように見えるのは
こっちの目の錯覚?
今こっちに見えてるコードって、つまるところ、
ぐるぐるループしながらファイルから読んでるところだけ
しかないと思うんですけど。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 実際に二分探索を使うとして
返信数: 4
閲覧数: 462

Re: 実際に二分探索を使うとして

実行結果さえ正しければ実装の方法は自由と思いますが、いかがですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 694

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

こんな時間に酒かっくらっていいかげんなコードしか
アップできなくてすまそ。
もう思考能力ゼロ。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 694

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

ちゃんと動くよう、適切に手直ししてください。>質問者さん #include <stdio.h> #define N (30) // データの最大個数 void inputData(int *a, int *c, int *t) { int n, x; while (1) { printf("数字を入力(0で終了)"); do { x = scanf("%d", &n); } while (x != 1); if (n == 0 || *c >= N) break; a[(*c)++] = n, *t += n; } } void sortData(int *a, int c) { int i,...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 694

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

ちょっとだけ手直ししました。ご自由にどうぞ。 #include <stdio.h> #define N (30) // データの最大個数 void inputData(int *a, int *c, int *t) { int n; while (1) { printf("数字を入力(0で終了)"); scanf("%d", &n); if (n == 0 || *c >= N) break; a[(*c)++] = n, *t += n; } } void sortData(int *a, int c) { int i, j; for (i = 0; i < c - 1; i++) { fo...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 694

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

1000個も値を入力させる可能性があるのはあまり現実的とは思えないのと main()に何でもかんでもやらせるのはあまりよろしくない(main()は全体の司令塔、 必要な処理は下請け関数に任せる)のとから、こんなサンプルを用意してみました。 関数分けが適切かどうかはよくわからないので、加工はお任せします。 #include <stdio.h> #define N (30) // データの最大個数 void inputData(int *a, int *c, int *t) { int n; while (1) { printf("数字を入力(0で終了)"); scanf("%d", &n); i...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列を使って様々な値を求める方法(素人質問ですみません)
返信数: 6
閲覧数: 694

Re: 配列を使って様々な値を求める方法(素人質問ですみません)

if (times == 0) { max = min = n; } 初回入力時に、入力値を仮の最大値・最小値にするという発想自体は ええと思うんやけど、いかんせん書く場所がちょっと違うてるみたいやね。 それから、中央値を求める際はデータがソートされてなあかんのやけど、 配列を使わんと中央値を求める方法(変にこねくり回さない)があるんやったらこっちが知りたいくらい。 つまりやね、配列を使うことで変なロジックを使わんでも いろんな値が求められるんやったら、それでええんとちゃう?ってこと。 配列を使うことで楽できるんやったら、それがいちばんええやろ?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ハッシュ表を作る課題がうまくいかない
返信数: 5
閲覧数: 440

Re: ハッシュ表を作る課題がうまくいかない

解決したんならいいんですけど、

コード:

	do{
			coll = insert_hash(q);
	}while(coll=-1);
このwhile、collと-1を比較してなくて代入してますよ。
coll == -1にしなくて大丈夫ですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でピラミッドをつくる課題のアドバイスをいただきたいです
返信数: 3
閲覧数: 515

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

こんなことがしたいんかな? #include <stdio.h> void getShapeAndHeight(int *s, int *h) { do { printf("形は?(1:○, 2:△, 3:□)"), scanf("%d", s); } while (!(1 <= *s && *s <= 3)); do { printf("段数は?(1から20)"), scanf("%d", h); } while (!(1 <= *h && *h <= 20)); } void drawPyramid(int n, int h) { char *s[] = { "", "○", "△", "...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 3分木の実装について
返信数: 6
閲覧数: 562

Re: 3分木の実装について

こちらの環境で下記のコードを実行してみる(20回以上)と、 12~16のいずれかの値を出力します。 想定どおりかどうかはわかりません。 #include <stdio.h> #include <stdlib.h> #include <time.h> typedef struct _node{ int data; struct _node *left; struct _node *center; struct _node *right; } NODE; NODE *root; void insert_data(int d, double t); double GetRandom(void); i...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 3分木の実装について
返信数: 6
閲覧数: 562

Re: 3分木の実装について

えっと、こっちでもsegmentation faultは起きませんでした。 気になることといえば、 tall = height(root); なぜこの値を確認しようとしていないのか。 srand(time(NULL)); 乱数の種を初期化する場所は本当にここでいいのか。 本来、そういうことはmain()の「先頭で1回だけ」すればいいんじゃないのか。 double GetRandom(){ return ((float)rand()/RAND_MAX); 何で型が微妙に異なっているのか。どうせならdoubleに統一する方がいいんじゃないのか。 p = (NODE *)malloc(sizeof(...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 静的変数 [漸化式問題]
返信数: 6
閲覧数: 599

Re: C言語 静的変数 [漸化式問題]

こういうことでええんかな?

コード:

#include <stdio.h>

int seq(void)
{
    static int n = 1;

    return n = 3 * n + 1;
}

int main(void)
{
    int i;

    for (i = 2; i <= 10; i++) {
        printf("%d ", seq());
    }
    putchar('\n');
    return 0;
}
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

下記のコードを実行したとき、 50 40 30 20 10 って出力する関数sortArray()の中身を書けますか?>質問者さん #include <stdio.h> #define N (5) void sortArray(int *src, int *dest, int n) { /* ここに、配列srcを降順に並べ直して配列destに格納するコードを書く */ } void printArray(int *a, int n) { int i; for (i = 0; i < n; i++) { printf("%d\n", a[i]); } } int main(void) { int...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

if分の中は試しました。
そうやったら、今回のスレッドの先頭で
「今のコード全体はこうです。そやけど降順ソートできません」
っていうのをハッキリ示さなあきません。なんかまどろっこしい。
全部さらけ出さんと、的確な回答はいつまでたっても来ないですよ。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

それやったらまず見るべきなんは

コード:

void downheap(int from,int to){
        if (j+1 <= to && a[j] > a[j+1])
ここの
a[j]とa[j+1]の
不等号を逆向きにしてみることちゃいますか?
自分やったらまずそうします。それであかんかったらまた別の手立てを考えるっちゅうことで。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

ところで
swapとcomp
の件は解決したんですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

void heapsort(){
tmp = a[1];
a[1] = a;
a = tmp;
}

おっと謎やなかった。外部変数やった。
えらいすんません。
そやけどやっぱり
tmpに入れるんが
何でa[1]固定なんかはようわかりません。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 降順ソートのプログラムにしたい
返信数: 13
閲覧数: 872

Re: 降順ソートのプログラムにしたい

降順ソートなんかあとでどないでもなるから、
まずは、昇順ソートを完璧にすることを
考えた方がええんとちゃいますか?

直近のコードにある
heapsort()
っていう、引数も戻り値も何もない謎の関数は
ちゃんと動くようになったんですか?

コード:

void heapsort(){
            tmp = a[1];
            a[1] = a[i];
            a[i] = tmp;
}
ここの、何も定義してない
謎の配列
a[]
はどこを見てるんですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 611

Re: int型関数を用いた テスト点数の計算

printData()

score
を渡す必要もなかった。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 611

Re: int型関数を用いた テスト点数の計算

要は、どうせプログラム書くんやったら
ちょっとでも汎用性持たせた方が何かと便利ですやろ
ってことです。
使い捨てでええんやったら知らんけど。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 611

Re: int型関数を用いた テスト点数の計算

printData()のローカル変数jはいらんかった。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 611

Re: int型関数を用いた テスト点数の計算

ちょっとした手直し。 ポイント: main()は全体の司令塔に徹し、「データを入力しろ」「計算しろ」「出力しろ」という 指示を出すのみ。 必要な処理は呼ばれた側で行なう。 科目数や人数が変わった場合にも、コンパイルし直せば対応できる。 #include <stdio.h> #define NINZUU (3) #define KAMOKU (2) void inputData(int (*score)[NINZUU]) { char *kamoku[KAMOKU] = { "英語", "数学" }; int i, j; for (i = 0; i < KAMOKU; i++) { printf...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

あと、呼ばれていない
heapsort()
の中でいくら
swap++;
してもダメですよ。>質問者さん
その関数、使いたいんならどっかから呼んであげないと。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

確かに。終わりの添字は
n - 1
です。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

もしかして、downheap()を呼ぶときに、

コード:

    downheap(i,n);         /* ヒープソートを実行 */  

コード:

    downheap(i,n);         /* ヒープソートを実行 */  

コード:

    downheap(i,n);         /*  ヒープソートを実行 */  
ここ、全部

コード:

    downheap(0, n);
じゃないとダメ、とか?
引数のfrom, toの意味合いからして、そんな気がしないでもない。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

試して見ましたが変わりませんでした。
そうですか?
こちらでは、「どこからも呼ばれている形跡がなさそうな」
いちばん下の方にあるheapsortっていう関数で
nが未定義
っていうコンパイルエラーが出ましたが…。
そもそも、heapsortって、必要なんですか?
使ってないんだったら、外せばいいんじゃないでしょうか。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: for文を使用した2次関数のグラフ表示
返信数: 8
閲覧数: 718

Re: for文を使用した2次関数のグラフ表示

>int x = sqrt(16 * y) + 1;
なぜ末尾に+ 1しているのでしょうか。
+1を省いて実行してみてください。
最下行の表示が、要求されている仕様と異なってしまうはずです。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

コード:

int n = 0;
この文、本当に必要ですか?ってことを言ってるのではないかと思います。
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

比較回数と交換回数が0と表示されます。
これはいったんわきへ置いておくとして、
ソートの結果自体は正しいんですか?そっちの方が大切ですよね?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヒープソートの比較回数と交換回数
返信数: 15
閲覧数: 1015

Re: ヒープソートの比較回数と交換回数

もしかして、となりのスレッドと同じ人?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: for文を使用した2次関数のグラフ表示
返信数: 8
閲覧数: 718

Re: for文を使用した2次関数のグラフ表示

コード:

	y = int( x*x/16.f + 0.5f );
intっていう関数がある処理系をお使いなんですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: for文を使用した2次関数のグラフ表示
返信数: 8
閲覧数: 718

Re: for文を使用した2次関数のグラフ表示

表示と計算を別々に考えて、それぞれがそれぞれの役割に集中すると簡単かもしれません。
何か結果おかしくないですか?
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: for文を使用した2次関数のグラフ表示
返信数: 8
閲覧数: 718

Re: for文を使用した2次関数のグラフ表示

何か暇だったので遊んでみた。 #include <stdio.h> #include <math.h> #define YMAX (49) void plot(void) { int y, mx, i; for (y = YMAX; y >= 0; y--) { int x = sqrt(16 * y) + 1; if (y == YMAX) mx = x; for (i = -mx; i <= mx; i++) { putchar((i == 0) ? '|' : (i == -x || i == x) ? '*' : ' '); } putchar('\n'); } } int main(...
by box
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: for文を使用した2次関数のグラフ表示
返信数: 8
閲覧数: 718

Re: for文を使用した2次関数のグラフ表示

こんな感じ? #include <stdio.h> #include <math.h> #define YMAX (49) int func(double y) { return sqrt(16 * y) + 1; } void plot(int y) { int x = func((double) y), i; static int mx; if (y == YMAX) mx = x; for (i = -mx; i <= mx; i++) { if (i == 0) putchar('|'); else if (i == -x || i == x) putchar('*'); else p...
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: stdin はどこから読み込む?
返信数: 4
閲覧数: 580

Re: stdin はどこから読み込む?

そうですか。それは知りませんでした。
区別できて何がうれしいんだろうとは思いますけどね。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: stdin はどこから読み込む?
返信数: 4
閲覧数: 580

Re: stdin はどこから読み込む?

プログラム側では知るすべはありません。
パイプであろうがリダイレクトであろうが
同じ標準入力として扱うのみです。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
返信数: 3
閲覧数: 714

Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m

コード:

    char *youbi[] = { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" };
ここなんですけどね、仮に、曜日の出力形式が
Su Mo Tu We Th Fr Sa
てな具合に1とおりしかないのであれば、わざわざ配列にせずとも

コード:

    char *youbi = "Su Mo Tu We Th Fr Sa";
でよいです。どういう風に出力したいかは質問者さん次第。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
返信数: 3
閲覧数: 714

Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m

あと、何でもかんでもmain()でやろうとしないこと。
main()は下請け関数を呼び出すことに専念して、
必要な処理はmain()から呼ばれた関数群で実施することがポイント。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: RLC回路の数値計算がエクセルとずれてしまいます
返信数: 4
閲覧数: 600

Re: RLC回路の数値計算がエクセルとずれてしまいます

つまりね、Excelでの処理内容と処理結果、
C言語による処理結果をともに提示しないと、
比較対象のしようがないってことです。
わかりますよね?
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: RLC回路の数値計算がエクセルとずれてしまいます
返信数: 4
閲覧数: 600

Re: RLC回路の数値計算がエクセルとずれてしまいます

Excelではどういう処理をして
どういう結果を得たのか「も」提示しないと、
どうズレているかがこちらには判断できません。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
返信数: 3
閲覧数: 714

Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m

どんな出力がほしいんですか? 仮に、仮にですよ、年と月を入力してその月1ヶ月分のカレンダーが ほしいのであればですよ、 do{ printf("what day"); scanf("%d",&day); }while(day <1 || day > 31); } この入力、いらなくないですか? int year,month,day; // int day[13]={0,31,28,31,30,31,30,31,31}; // day={"sun,mon,tue,wed,thu,fri,sat\n"} 何で同じ変数名を使い回そうとしてるんですか?そんなことできないでしょ? 何で1ヶ月の日数が8月...
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 746

Re: ポインタとアドレス

こんなサンプルコードを動かしてみると、 arrayのアドレス値 array[0]のアドレス値 array[1]のアドレス値は main()とf()とで不変(∵コピー値が渡っている)であり、 また、関数に配列を渡すときはその先頭要素のアドレス値が渡っており、 array[0]とarray[1]が指している先の内容(アドレス値そのものじゃないですよ)が 1増えたり2増えたりして異なっていることに気づくかもしれません。 #include <stdio.h> void f(int array[]); int main(void) { int array[2] = { 123, 456 }; print...
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 746

Re: ポインタとアドレス

関数f()には、main()て定義した配列array[]の先頭要素のアドレスっていう値(ここがちょっとややこしい)を
渡しています。
f()は配列の先頭要素のアドレスを受け取っていますので、f()の中で施した変更が
main()に反映されてます。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 746

Re: ポインタとアドレス

別に二段構えにしなくても…。

コード:

#include <stdio.h>

void f1(int *gn);

int main(void)
{
    int gn = 1234;

    f1(&gn);
    printf("%d\n", gn);
    return 0;
}

void f1(int *gn)
{
    *gn += 100;
}
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 691

Re: 最小値が出力できない、(ド素人質問です)

typoその他があったので一部手を加えました。よかったら適当に使ってください。 #include <stdio.h> int main(void) { int n, max, min, total = 0, times = 0; while (1) { printf("input integer(if you input 0, this program will end) "); scanf("%d", &n); if (n == 0) { break; } if (times == 0) { max = min = n; } else { if (n > max) { max = n; } ...
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 691

Re: 最小値が出力できない、(ド素人質問です)

いきなりゼロを入力したときにゼロ割りが起きそうなので、 こんな風にするのがよいでしょう。フラグ変数は使いませんでした。 #include <stdio.h> int main(void) { int n, max, min, total = 0, times = 0; while (1) { printf("input number(if you inout 0, this program will end) "); scanf("%d", &n); if (n == 0) { break; } if (times == 0) { max = min = n; } else { if (n >...
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 691

Re: 最小値が出力できない、(ド素人質問です)

仕様の確認です。
10回数値を入力して
数字を入力して下さい(0で終了)
10回という回数が決まっているのか、0を入力するまでずっと
入力し続けるのか、どちらですか?
本質とはあまり関係ないかもしれませんが、コードを書く上ではずいぶん違ってくると思います。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sqlite3_prepare_v2でエラー処理に入ってしまいます
返信数: 7
閲覧数: 2113

Re: sqlite3_prepare_v2でエラー処理に入ってしまいます

sqlite系関数から返ってきたリターンコードを
printf()してみる、などという、最もシンプルな
デバッグ手法は試していますか?
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: sqlite3_prepare_v2でエラー処理に入ってしまいます
返信数: 7
閲覧数: 2113

Re: sqlite3_prepare_v2でエラー処理に入ってしまいます

SQLのど素人が横から失礼します。
投げているSQL文の
insert into MY_DATA values (?, ?, ?, ?);
?, ?, ?, ?の部分、本当にそれでいいんですか?
それとも伏せ字にしているだけですか?
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー
返信数: 6
閲覧数: 2501

Re: C言語でカレンダー

まずはコンパイルが通るように修正しましょう。
エラーメッセージをよく読んで、今のコードはどこが間違っているかを
よく調べてください。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー
返信数: 6
閲覧数: 2501

Re: C言語でカレンダー

コンパイルが通らないコードだけを示して、何が質問したいのですか?
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 中央値をifで
返信数: 4
閲覧数: 794

Re: 中央値をifで

データが3つしかないならif文でもよいかもしれませんが、
データがもっと多くなったときや個数が偶数の場合などに
対応することを考えると、別の回答にあるとおり
ソートして求める(関数を作る)のが妥当ではないかと思います。
by box
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 変数のスコープについて
返信数: 1
閲覧数: 630

Re: 変数のスコープについて

変数のスコープとは全然関係ないです。
関数の呼び出し・実行順は
1)mainの先頭でsub1を呼んでいる。
2)sub1の先頭でsub2を呼んでいる。
3)sub2でaの値を出力している。
4)sub1に戻り、cの値を出力している。
5)mainに戻り、bの値を出力している。
ってだけです。
by box
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: main関数の引数argvとcharについて
返信数: 4
閲覧数: 748

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

こんなサンプルコードをコマンドプロンプトかどこかで 実行ファイル名 hoge foobar <enter> みたいに実行してみると、何か体感できるかもしれません。 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { int i, j; for (i = 1; i < argc; i++) { printf("%s\n", argv[i]); for (j = 0; j < strlen(argv[i]); j++) { putchar(argv[i][j]); putchar('\n'); } pu...
by box
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: main関数の引数argvとcharについて
返信数: 4
閲覧数: 748

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

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

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

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

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
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 違いを教えてください
返信数: 4
閲覧数: 965

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

コード:

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

コード:

#include <stdio.h>

int main(void)
{
    int *w;

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

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

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

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

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

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
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: バブルソートの結果がうまく表示されない
返信数: 4
閲覧数: 1055

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
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインタの仕組みについて
返信数: 2
閲覧数: 1335

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

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

Re: c++ リンクエラー

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

Re: c++ リンクエラー

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

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインター
返信数: 2
閲覧数: 1506

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインター
返信数: 2
閲覧数: 1506

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 乱数から最大値と最小値を求める
返信数: 3
閲覧数: 1579

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 乱数から最大値と最小値を求める
返信数: 3
閲覧数: 1579

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 質問
返信数: 5
閲覧数: 1689

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
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 質問2
返信数: 4
閲覧数: 1667

Re: 質問2

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

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

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
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 3883

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

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

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

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

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

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

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
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語について質問
返信数: 2
閲覧数: 2151

Re: C言語について質問

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

コード:

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

Re: 質問

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

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

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

Bytecheck()のNerror

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

あと、なんでもかんでもmain()に押し込んでいるのが気になります。
main()は司令塔の役割を果たすだけにして、
データ入力用の関数とか表示用の関数とかに分割する方が
プログラム全体の見通しがよくなると思うんですけど。
仮に自分が質問者さんの上司か何かなら、
「設計やり直し!」
って言うところです。

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