検索結果 21 件

by turasan
4年前
フォーラム: C言語何でも質問掲示板
トピック: コンパクトに!
返信数: 3
閲覧数: 665

Re: コンパクトに!

とりあえず1箇所ですが、 下記2関数は同様の処理をしていますので、汎用的な1つの関数にするのはいかがでしょうか? //林檎の合計金額 void sub0(int a, int b) { soukei = a * b; } //蜜柑の合計金額 void sub2(int i, int j) { goukei = i * j; } その場合、soukeiとgoukeiをグローバル変数として宣言すると、 上記2関数を1関数にまとめることができないので、main内でローカル変数として宣言し、 returnで合計金額を受け取ればよいかと思います。 e.g. void sum(int i, int j) ...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に数値を入力して、文字に変換
返信数: 2
閲覧数: 564

Re: 配列に数値を入力して、文字に変換

返信おそくなりました。

1バイトのchar型の配列にint型の整数を直接入力しているので、メモリがうまく使われていませんでした。
ありがとうございます。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に数値を入力して、文字に変換
返信数: 2
閲覧数: 564

配列に数値を入力して、文字に変換

char型の配列に、scanfを使用して数値(文字コード)を入れていき、文字として出力 するプログラムを作りました。 納得できない点があるので質問させてください。 要素数11のchar型の配列に、数値を代入し、最後のfor文で文字として出力しようとしたのですが、 これを実行すると、「stack around the variable 'ary' was corrupted」というエラーが表示されてしまいます。(環境はMicrosoft Visual C++ 2010 です。) 試しに、 char ary[12] = {0}; を、 int ary[12] = {0}; と、int型で宣言したと...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: clock関数について
返信数: 6
閲覧数: 691

Re: clock関数について

ありがとうざいました。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: clock関数について
返信数: 6
閲覧数: 691

Re: clock関数について

OSやコンパイラによって、CLOCKS_PER_SECの定義が違うということなのですか?。
表示の精度はこの定義に依存しているのでしょうか。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: clock関数について
返信数: 6
閲覧数: 691

Re: clock関数について

要素数を10000個にしたところ、表示されました。
ちなみに0.8秒ほどでした。

clock関数の精度は環境に依存しているのでしょうか。
だとすると、自分のPC上でより高い精度を表示をしたい場合、clock関数では不可能ということなのでしょうか。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: clock関数について
返信数: 6
閲覧数: 691

clock関数について

バブルソートにかかった時間を測定するコードを書きました。 実際にバブルソートを行っているfor文の前後で、clock関数を呼び出し、 その二つの差をとることによって、for文にかかった時間を測定しています。 しかしprintf関数で、その時間を出力すると、 0.00000となってしまい、ずっと0が続いてしまいます。試しに小数点以下のケタ数を、 %.10fと書き直してみたのですが、やはりずっと0としか表示されません。 これは、for文にかかった処理時間が、このケタ数では表示できないほどもっと速いということなのでしょうか。 それとも他に何か原因が考えられますでしょうか。 #include<stdi...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

なるほど、
ありがとうございます
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

ありがとうございました
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

ありがとうございました、
たしかに先ほどprintfでも試しに出力させていたのですが、
そのような数値が出てきました。

もともとの質問も解決できました。

(次からは自分で動かしてから、トピック立たてるようにします、、。)
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

すみません、自分で動かすのを怠っていました。
x = c;
と書き換えてコンパイルしてみたのですが。
これだと、getchar()でキーボードから数字を読み込んだとしても、「整数」としては認識されてないようです、、。
ただの「文字」ですよね、。
そこで、一度ストリームに戻してから、再びscanfで「整数」として読み込むということですね。。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

ありがとうございます。
返信おそくなって申し訳ありません。

いったん読み取ったその1文字を、一度入力ストリームに戻してから、再びscanfで読み取ることに
どのようなメリットがあるんでしょうか、、。
入力ストリームに流さずに、そのまま直接、x = c;と書いて変数xに直接cを代入すればよいのではないか思ったのですが。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

Re: 逆ポーランド電卓

isdigit(c)はcが数字(0~9)なら真(0以外の数)を返し、 c が数字以外なら偽(0)を返す標準ライブラリ関数ではないでしょうか、、。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 2110

逆ポーランド電卓

現在、『Cプログラマのための アルゴリズムとデータ構造』という本を読んでいます。 アルゴリズムのスタックの具体例として、ポーランド電卓を作るソースコードが記載されていました。 ソースコードはインターネット上で公開されています。 このソースコードの一部で理解できない部分があるので質問させていただきます。 まず、ソースコードは以下の通りです。 #include <stdlib.h> #include <stdio.h> #include <ctype.h> typedef long ELEM; /* スタックの要素の型 */ #define STACK_SIZE 100 /* スタックの大きさ *...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

ありがとうございました
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

ありがとうございます、、。
人に見てもらうと自分の気づかないことが多々あり、
大変勉強になりました。
指摘されたこと、今後に活かしたいと思います。

みなさんありがとうございました。
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

完成しました!!一応、目的達成です! ありがとうございます、、。みなさんのおかげです 泣きそうです。。 いくつか疑問あるので質問させてください。 以下が僕の完成版のコードなのですが、 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { char name[20]; /* 名前 */ int height; /* 身長 */ int weight; /* 体重 */ } S_MEMBERS; /*関数プロトタイプ宣言*/ void Display(char *inputname, S_MEMBERS *...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

ご助力お願いします。 構造体配列の要素に対する、削除用の関数を作りました。 自分の意図としては、ユーザーが削除したい人の名前を入力したら、 その要素を抜かした構造体を作り、その構造体をまるまる元の構造体にコピーしようというものです。 for文のなかにある、if文において、 その人の要素に対し、+1の次の要素を挿入することで、 その人の要素を削除しようとしています。 この操作を次の要素にも次々おこなうことで、copymembersという構造体配列は、削除したい人を抜かした構造体となっているはずなのですが、うまくいってないようです。 うまく行っていない原因はどこにあるでしょうか、、。 ※kazu ...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

できました!!!
次、削除関数つくります...。すみません
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

一度書き直しました。 void AllDisplay(S_MEMBERS members[])によって、すべての入力したデータを表示させたいのですが、 このコードをコンパイルすると、 void AddData()内において、mallocによって確保した領域に挿入したデータを、AllDisplayで表示させることができません。どのような原因が考えられますでしょうか。質問攻めですみません。 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { char name[20]; /* 名前 */ int heig...
by turasan
5年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 19
閲覧数: 857

Re: 構造体配列

mallocで次々と領域を確保していった場合、 追加はできますが、一つ一つ任意のデータを削除できるものなのでしょうか。 mallocで新たな領域を確保した場合、それは S_MEMBERS members[100] = /*構造体配列*/ { {"A",180,60}, {"B",170,50}, {"C",165,45} }; における、 残り97個の配列とは別に新たな領域を確保しているんですよね、、。 とりあえず、AddData関数でmallocを使用して作ってみました。 void AddData() { char addname[20]; int addheight = 0; int ad...

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