検索結果 1997 件

by box
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 可変長引数の個数の取得
返信数: 2
閲覧数: 705

Re: 可変長引数の個数の取得

C言語 可変長引数 個数
あたりのキーワードでググってみると、
解決への道が開けるかもしれませんし、開けないかもしれません。
by box
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体には上限がある?
返信数: 6
閲覧数: 1344

Re: 構造体には上限がある?

提示された構造体を使って、
・どこに(関数のローカル領域?staticな領域?globalな領域?)
・どれくらいの大きさの
メモリーを取ろうとしてるかな?
そらコンピューターの記憶域を超えるような領域を確保しようと
してるんなら、何が起きるかはわからんわな。別に構造体でなくても
intでもdoubleでも同じやで。
by box
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c言語のint char
返信数: 2
閲覧数: 1044

Re: c言語のint char

そもそも、getchar関数の戻り値の型はintです。
また、本当にchar moji[]と書いたのであれば、
要素数がわからない配列を定義しようとしているので
コンパイルが通らないはずです。
by box
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 自然数x,yの合計値を求めるプログラム
返信数: 6
閲覧数: 2106

Re: C言語 自然数x,yの合計値を求めるプログラム

a, bとかいう中間的な変数はいらんかったね。 #include <stdio.h> void inputData(int *a, int *b) { printf("1個目の自然数を入力:"), scanf("%d", a); printf("2個目の自然数を入力:"), scanf("%d", b); } int mysum(int *x, int *y) { int t, i, sum = 0; if (*x >= *y) { t = *x, *x = *y, *y = t; } for (i = *x; i <= *y; i++) { sum += i; } return sum; }...
by box
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 自然数x,yの合計値を求めるプログラム
返信数: 6
閲覧数: 2106

Re: C言語 自然数x,yの合計値を求めるプログラム

お好きなように改変してかまいません。 なお、main文ではなくてmain関数ね。 #include <stdio.h> void inputData(int *a, int *b) { printf("1個目の自然数を入力:"), scanf("%d", a); printf("2個目の自然数を入力:"), scanf("%d", b); } int mysum(int *x, int *y) { int a = *x, b = *y, t, i, sum = 0; if (*x >= *y) { t = a, a = b, b = t; } for (i = a; i <= b; i++) ...
by box
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 数値を大きくすると動かなくなる
返信数: 8
閲覧数: 2416

Re: 数値を大きくすると動かなくなる

外部シンボルが未解決っちゅうんは
配列のサイズの問題やなくて
関数名のスペリングが間違うてるとかいう感じで
あるはずのない関数を呼んでしもてる、とかとちゃうかな?
確認してみては?
あるいは、そのときのエラーメッセージを提示するとか?
by box
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 数値を大きくすると動かなくなる
返信数: 8
閲覧数: 2416

Re: 数値を大きくすると動かなくなる

ソースコードが提示されてへんから何とも言えんけど、
配列をstaticにしてみるとか?
by box
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語のエンキューの問題の答えと合わない
返信数: 4
閲覧数: 1625

Re: C言語のエンキューの問題の答えと合わない

https://okwave.jp/qa/q10086024.html
に対する回答にも、適切にレスポンスを返してくださいね。
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 大学の乱数についての課題
返信数: 8
閲覧数: 2988

Re: 大学の乱数についての課題

コード:

	boy = 0;
	girl = 0;
これらの変数を0で初期化している箇所、
ループの「中」でいいんでしょうか。何か疑問です。
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: printfの有無によるsegmentation faultの発生について
返信数: 7
閲覧数: 1975

Re: printfの有無によるsegmentation faultの発生について

それで、問題は解決したんですか?
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: printfの有無によるsegmentation faultの発生について
返信数: 7
閲覧数: 1975

Re: printfの有無によるsegmentation faultの発生について

コード:

    di = dist(argv[2], argv[3], argv[1]);
    if (dist < 0)
ここで引用した2行のうち下の方で、
関数名であるdistの値が負かどうかを判断しているのはマズくないですか?
di
が正しいのでは?
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 4桁の連番に1桁のチェックディジットを付加して5桁のコードを生成したい
返信数: 12
閲覧数: 2440

Re: 4桁の連番に1桁のチェックディジットを付加して5桁のコードを生成したい

ところで
手続codeMakeは、商品の開発順に割り振られた連番を基に5桁の商品コードを生成する。
って書いてあるので、codeMakeっていう関数を書く必要があると思うのですが、ここは大丈夫ですか?
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 4桁の連番に1桁のチェックディジットを付加して5桁のコードを生成したい
返信数: 12
閲覧数: 2440

Re: 4桁の連番に1桁のチェックディジットを付加して5桁のコードを生成したい

48
とかっていう謎の即値をかくより
'0'
とかってかく方が
可読性が高くなるような気がしないでもない。
by box
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を交互に
返信数: 11
閲覧数: 2858

Re: 文字列を交互に

実行結果例 st ABC st1 ZXW st2 AZBXCW
何を入力したときにそうなってほしいかを具体的に述べてください。
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 何故、引数にconstがついているのか
返信数: 2
閲覧数: 1653

Re: 何故、引数にconstがついているのか

s2の値を変更したら(つまりs2に何かを代入したら)ダメだよ、警告を出すよ
てなくらいの意味です。
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最大と平均を同時に出します。
返信数: 5
閲覧数: 1858

Re: 最大と平均を同時に出します。

じゃあ次。
仮に、
sub1()で10と20を、
sun2()で30と40を入力したとき、
どんな結果がほしいんですか?
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最大と平均を同時に出します。
返信数: 5
閲覧数: 1858

Re: 最大と平均を同時に出します。

いろいろ突っ込みどころのあるコードですが、
まず、
関数sub1()における配列a

関数sub2()における配列a
とは、全く別物であることは理解できていますか?
同じaっていう名前ですけど、両者の間には何の関係もありません。
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最大と平均を同時に出します。
返信数: 5
閲覧数: 1858

Re: 最大と平均を同時に出します。

で、質問は何ですか?
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: scanfでのエラー
返信数: 3
閲覧数: 1670

Re: scanfでのエラー

念のためですけどね。
iをループ制御変数に使うこと自体は正しいです。
その範囲が怪しいってことです。
0以上2以下
または
0以上3未満
になるようなfor文を書いてくださいってことです。
by box
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 無限ループ
返信数: 4
閲覧数: 1731

Re: 無限ループ

これで一応望んだ結果がでたので、課題は成功
ホントですか?
nからmまでの総和を求めたいということは
n ≦ m
の場合を想定しているんでしょうけど、その条件に反する
n > m
という入力があったとき、if文で再入力を促すメッセージを出力しているにもかかわらず
再入力させるコードがないように見えるのはOKですか?
by box
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語の条件分岐
返信数: 1
閲覧数: 1303

Re: C言語の条件分岐

コード:

    if (0 <= x < 3000)
    else if (3000 <= x < 5000)
ここの書き方が違います。

コード:

    if (0 <= x && x < 3000)
    else if (3000 <= x && x < 5000)
のように書いてください。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: ソースファイルの分割について
返信数: 4
閲覧数: 1777

Re: ソースファイルの分割について

test2.c と function.c, function.h, test.c の関連性はどこにありますか?ぱっと見、全然違う内容のソースコードであるように見えたんですけど、 見方が悪いせいでしょうか? function.hでプロトタイプ宣言している関数群の実体は function.cにあるように見えます。ならば、function.hをインクルードすべきは test.cではなく、function.cの方ではないでしょうか。 int_aes関数の仕様は明確になっていますか?いませんか? 何を引数として与えてどう計算して何を返すのか、そのあたりは大丈夫なんでしょうか? function.hの2行...
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: ISBNコードのルーンチェックサムを作成中です。
返信数: 4
閲覧数: 2399

Re: ISBNコードのルーンチェックサムを作成中です。

13桁のISBNコードをチェックしたいのであれば、最後の'\0'を含めて
char なんちゃら[14];
っていう定義が必要なんじゃないかと思うのは当方だけ?
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 配列 数の大きさ
返信数: 4
閲覧数: 2424

Re: C言語 配列 数の大きさ

main()を含めたコンパイル可能なコードが提示されていますが、これだけでは不満なのでしょうか?
「書いたコードを『全部』」とは、この問題に限らず、生まれてから今までに書いたコードを全部でしょうか?
おお、これは失礼なことをしてしまいました。
申し訳ありません。>質問者さん
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 配列 数の大きさ
返信数: 4
閲覧数: 2424

Re: C言語 配列 数の大きさ

rank()「だけ」示されましても、
rank()を「どうやって」使っているかがこちらには全く伝わりません。
main()などを含め、書いたコードを「全部」見せてください。
by box
1年前
フォーラム: C言語何でも質問掲示板
トピック: 降順にソートする
返信数: 8
閲覧数: 3760

Re: 降順にソートする

コード:

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

Re: 降順にソートする

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

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
閲覧数: 3760

Re: 降順にソートする

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

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

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

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

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

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

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

Re: 文字化け

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

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

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

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

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

コード:

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

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

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

Re: char型とint型について

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

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

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

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

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

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

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

コード:

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

コード:

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

コード:

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

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 4926

Re: 条件式のelseの書き方

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

Re: 条件式のelseの書き方

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

コード:

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

Re: 条件式のelseの書き方

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

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

Re: 条件式のelseの書き方

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

Re: 条件式のelseの書き方

ぱっと見なんですけどね

コード:

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

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

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

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

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

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

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

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
閲覧数: 4339

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
閲覧数: 4339

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
閲覧数: 4339

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

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

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

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

コード:

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

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
閲覧数: 2989

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
閲覧数: 2989

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
閲覧数: 2676

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
閲覧数: 5274

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
閲覧数: 5274

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

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

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
閲覧数: 5274

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

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

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

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

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

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

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

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

コード:

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

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

printData()

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

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

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

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

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

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
閲覧数: 5883

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

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

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

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

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

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

コード:

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

コード:

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

コード:

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

コード:

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

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

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

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

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

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

コード:

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

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

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

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

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

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

コード:

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

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

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

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
閲覧数: 3888

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: stdin はどこから読み込む?
返信数: 4
閲覧数: 2656

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

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

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

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

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
返信数: 3
閲覧数: 2935

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

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

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

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

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

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

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 3644

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタとアドレス
返信数: 7
閲覧数: 3644

Re: ポインタとアドレス

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

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 3335

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 3335

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
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 3335

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

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

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

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

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

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

Re: C言語でカレンダー

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

Re: C言語でカレンダー

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

Re: 中央値をifで

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

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

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

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...

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