C言語マスター来い!!

1: 2019/06/27(木) 11:30:24.01 ID:YCcQ4N7zd
main関数 (入力用)
関数1(計算用)
関数2(結果表示用)

入力された計算式を最初に表示してそのあと結果を表示したいんだけとどうすればいい?

2: 2019/06/27(木) 11:30:36.01 ID:YCcQ4N7zd
分かりにくいか

4: 2019/06/27(木) 11:31:29.34 ID:OfvymiHi0
入力された計算式を最初に表示してそのあと結果を表示すればいいぞ

9: 2019/06/27(木) 11:32:03.95 ID:YCcQ4N7zd
>>4
計算1
計算2
結果1
結果2 って表示する方法がわからん

24: 2019/06/27(木) 11:34:45.45 ID:FDlcgOGq0
>>9
int i;

/* 結果1を生成 */
printf("◆計算1\n");
for(i=0;i<3;i++)
printf("312dshksj = 176\n", i+1, rand());

/* 結果1を表示 */
i = RAND_MAX;
printf("\n◆ 計算1\n");
printf("RAND_MAX = \n", i);

return 0;



計算/結果2も同様でできる

28: 2019/06/27(木) 11:35:21.61 ID:YCcQ4N7zd
>>24
いみわからん

14: 2019/06/27(木) 11:33:12.18 ID:Gaya3IfKM
>>4
これ
入力の内容受け取っとるんやから出来るやろ
マスターレベルちゃうやろ
そこらの本に書いてあるやろ

15: 2019/06/27(木) 11:33:31.90 ID:YCcQ4N7zd
>>14
わからん

5: 2019/06/27(木) 11:31:29.81 ID:YCcQ4N7zd
結果表示がわからん

6: 2019/06/27(木) 11:31:38.63 ID:5z9TdlCCd
式入力って関数電卓つくるんか

11: 2019/06/27(木) 11:32:43.60 ID:YCcQ4N7zd
>>6
そんなつもりはない

7: 2019/06/27(木) 11:31:46.78 ID:gRND/ch/a
入力された計算式を最初に表示してその後結果を表示すればええんちゃうか

12: 2019/06/27(木) 11:32:56.65 ID:YCcQ4N7zd
>>7
それがわからん

8: 2019/06/27(木) 11:31:54.62 ID:2POWv0wjd
表示はprintfだろ

10: 2019/06/27(木) 11:32:32.80 ID:YCcQ4N7zd
計算1
結果1
計算2
結果2なら簡単だけど

13: 2019/06/27(木) 11:33:10.31 ID:YCcQ4N7zd
関数2の方をどうすべきか

16: 2019/06/27(木) 11:33:39.37 ID:M/De+zkyM
入力された計算式最初に表示させればええやん

19: 2019/06/27(木) 11:34:05.00 ID:YCcQ4N7zd
>>16
それでどうすんの

20: 2019/06/27(木) 11:34:28.61 ID:YCcQ4N7zd
結果表示が最後に入力されたやつだけになっちゃう

21: 2019/06/27(木) 11:34:36.42 ID:886jt6Tj0
入力された計算式をパースするんやろ
そんなのパッとできんぞ

26: 2019/06/27(木) 11:34:47.65 ID:YCcQ4N7zd
>>21
わからん

22: 2019/06/27(木) 11:34:40.07 ID:x7on+MDx0
なにができないのかわからん

23: 2019/06/27(木) 11:34:44.91 ID:82VZ9BBAp
入力と出力の変数をそれぞれ用意すればええんちゃうか
数増やしたいなら配列にすればいいし

25: 2019/06/27(木) 11:34:45.80 ID:Gaya3IfKM
どっかの変数でも用意して入力内容保存しときゃええやろ

27: 2019/06/27(木) 11:35:20.32 ID:YdaMwycEM
単にキーボードから入力受付をどうにかしろってことやろ

29: 2019/06/27(木) 11:35:24.17 ID:2POWv0wjd
何が分からないのかはっきり言え
あとプログラミング関係のことはteratailで聞くのが一番良い

33: 2019/06/27(木) 11:35:57.01 ID:YCcQ4N7zd
>>29
関数2の式がわからん

37: 2019/06/27(木) 11:36:57.48 ID:2POWv0wjd
>>33
計算した値を出力するだけやろ?

40: 2019/06/27(木) 11:37:43.37 ID:YCcQ4N7zd
>>37
bmiを3つ計算したあと出力する式がわからん
1個になっちゃうしループさせるにしても式がわからん

30: 2019/06/27(木) 11:35:24.19 ID:G3ggQrJy0
関数2ってなんの意味があんねん

31: 2019/06/27(木) 11:35:29.17 ID:x7on+MDx0
結果の変数2つ使えばいいだろ

32: 2019/06/27(木) 11:35:47.98 ID:3Egt47Pk0
入力された式が逆ポーランド記法で書かれてるならいける

34: 2019/06/27(木) 11:36:24.53 ID:YCcQ4N7zd
うーん

35: 2019/06/27(木) 11:36:26.00 ID:9JN9Yhyfa
まずクラスを定義してコンストラクタをデストラクタしてインスタンスのインターフェースにデコレータつければできるで

36: 2019/06/27(木) 11:36:51.61 ID:YCcQ4N7zd
>>35
いみわからん

38: 2019/06/27(木) 11:37:04.69 ID:YCcQ4N7zd
bmi計算するやつ

39: 2019/06/27(木) 11:37:33.44 ID:L0hJc30n0
main () {
int inn, data;
scanf("入力して:", &inn);
data = 関数1(inn);
関数2(data);
}
関数2(int data) {
printf("結果表示です:", data);
}

45: 2019/06/27(木) 11:38:23.40 ID:YCcQ4N7zd
>>39
計算1個じゃん

41: 2019/06/27(木) 11:37:47.96 ID:pkcvG7HbM
まずは入力された計算式を最初に表示するんや
そのあと結果を表示すればええで

42: 2019/06/27(木) 11:37:48.97 ID:v9wQLBcHM
変数2つおいといて答え一つづつ表示すりゃええやん

44: 2019/06/27(木) 11:38:18.83 ID:n5waiIFpd
逆ポーランド記法だ

46: 2019/06/27(木) 11:38:47.03 ID:YCcQ4N7zd
んんん

47: 2019/06/27(木) 11:39:08.16 ID:YCcQ4N7zd
むずかしいね

48: 2019/06/27(木) 11:39:23.01 ID:n5waiIFpd
入力された計算式はエコーバックじゃダメなの?

49: 2019/06/27(木) 11:39:34.79 ID:YCcQ4N7zd
main関数では身長 体重を任意の回数入力します

50: 2019/06/27(木) 11:39:38.51 ID:x7on+MDx0
関数2を1回使って複数の結果を表示するってこと?

52: 2019/06/27(木) 11:40:05.39 ID:YCcQ4N7zd
>>50
そういうこと

55: 2019/06/27(木) 11:40:46.38 ID:n5waiIFpd
それようの構造体をキューにして使えば

56: 2019/06/27(木) 11:41:04.60 ID:YCcQ4N7zd
>>55
キューってなに

57: 2019/06/27(木) 11:41:11.74 ID:2zDkoRv7d
関数1
double sum(double d1,double d2)

関数2
void show(douele dSum)

としてないぶ

58: 2019/06/27(木) 11:41:29.93 ID:2zDkoRv7d
ミスった内部実装しろ

59: 2019/06/27(木) 11:41:48.70 ID:YCcQ4N7zd
>>58
わからん
ほかのやり方で

61: 2019/06/27(木) 11:42:26.11 ID:2zDkoRv7d
>>59
これ以上シンプルなやりかた無い

62: 2019/06/27(木) 11:42:46.20 ID:YCcQ4N7zd
>>61
ほか

63: 2019/06/27(木) 11:42:51.51 ID:n5waiIFpd
値を先入れ先出しする仕組み
a,b,cの順に格納するとその順で取り出せる
まあ2つしか結果が要らないなら2つの変数を用意するだけでもいいか

66: 2019/06/27(木) 11:43:16.97 ID:YCcQ4N7zd
>>63
任意の数要る

68: 2019/06/27(木) 11:44:13.13 ID:YCcQ4N7zd
計算までは上手くいってるからあとは表示だけ

69: 2019/06/27(木) 11:44:36.49 ID:JJbhRD6kd
関数2の呼び出し1回でN個の結果を表示するってこと?
関数2に配列のポインタ渡すか可変長引数使え

72: 2019/06/27(木) 11:45:27.17 ID:YCcQ4N7zd
>>69
ポインタの式がわからん

85: 2019/06/27(木) 11:48:25.16 ID:JJbhRD6kd
>>72
void show(double *result, int count)
でループ回せ

70: 2019/06/27(木) 11:44:36.94 ID:YCcQ4N7zd
関数1ではポインタつかって計算してます

71: 2019/06/27(木) 11:44:51.35 ID:gRND/ch/a
任意の数がわかってるなら変数で保持して配列渡して表示したらええんちゃう

84: 2019/06/27(木) 11:48:06.23 ID:gRND/ch/a
>>74
線形リストでも作ってNULLになるまで出力したらええんちゃう

73: 2019/06/27(木) 11:45:32.55 ID:n5waiIFpd
任意の数入力する必要があるなら値をキューにセットするたびまだ入力するか確認すればいい

76: 2019/06/27(木) 11:46:39.39 ID:izGrVLCT0
この程度自力で解決できないならやっても意味ないよ
時間の無駄

79: 2019/06/27(木) 11:47:16.84 ID:e39EbUzN0
関数22回使いたいなら計算結果文字列変換しなあかんで

80: 2019/06/27(木) 11:47:50.09 ID:BA0834TUd
構造体とポインタの併用で頭にいかれる

90: 2019/06/27(木) 11:50:17.00 ID:+ICVFxrQa
何が言いたいか分からんわ
mainでprintfしたらあかん縛りなんか?

91: 2019/06/27(木) 11:50:31.88 ID:BA0834TUd
>>90
うん

92: 2019/06/27(木) 11:50:58.16 ID:BA0834TUd
mainで身長体重を入力
関数1で計算
関数2で表示

94: 2019/06/27(木) 11:51:18.89 ID:BA0834TUd
構造体とポインタを使うことは分かった

96: 2019/06/27(木) 11:52:00.89 ID:L3Evobp50
よくわかんねえけど計算結果を配列に代入して渡せば?

100: 2019/06/27(木) 11:52:29.28 ID:BA0834TUd
>>96
ポインタでやってる

107: 2019/06/27(木) 11:53:22.91 ID:e39EbUzN0
>>100
配列もポインタも使うときはほとんど一緒や
内部のアドレス的にはちゃうが

102: 2019/06/27(木) 11:52:47.14 ID:+ICVFxrQa
てか入力された計算式って電卓みたいな感じじゃないのかよ

入力:1+1
出力:2

って感じかと思ったわ

108: 2019/06/27(木) 11:53:39.55 ID:BA0834TUd
>>102
入力された文字で計算だね

105: 2019/06/27(木) 11:53:08.38 ID:L3Evobp50
ポインタでやるなら構造体ポインタ使って繋げて先頭のポインタだけ渡せ

112: 2019/06/27(木) 11:54:18.79 ID:BA0834TUd
>>105
具体的に式教えて

114: 2019/06/27(木) 11:54:46.49 ID:e39EbUzN0
>>112
そんくらい普通に教科書載っとるやろ
持ってないなら買え

106: 2019/06/27(木) 11:53:13.99 ID:aGXPEcCGa
結果1=関数1(入力1);
結果2=関数1(入力2);
関数2(結果1);
関数2(結果2);

これでだめな理由がわからん

125: 2019/06/27(木) 11:58:00.21 ID:2zDkoRv7d
>>106
内側でやるか外側でやるかだね
関数に一括で渡して全部計算するのもありだし呼び出し元でループするのもアリだとおもう
どちらにしてもこういう時イテレータ的なものが無いのがCは面倒くさいな

110: 2019/06/27(木) 11:54:08.65 ID:JJbhRD6kd
構造体いらんやろ
これは配列とポインタの扱いに関する課題やと思うわ
配列をポインタとして関数に渡せるか、受け取ったポインタを配列として扱えるか

113: 2019/06/27(木) 11:54:41.63 ID:BA0834TUd
>>110
渡してみて

124: 2019/06/27(木) 11:57:35.28 ID:JJbhRD6kd
>>113
ド素人やんけ!

double array[] = {0.1,0.2};

show(array, 2);

116: 2019/06/27(木) 11:56:21.69 ID:BA0834TUd
むずかしいね

118: 2019/06/27(木) 11:56:38.25 ID:L3Evobp50
C言語の書き方忘れたけど
構造体(
計算結果変数
構造体ポインタ
)
で構造体ポインタに繋げていけばええやろ最後はNULLで

119: 2019/06/27(木) 11:56:57.19 ID:L0hJc30n0
じゃあ

int first;
first = 0;
int **ptchain;
*ptchain = &first;
while(1) {
 scanf("体重を入力(マイナスで終了):", &inn);
 if (inn < 0) break;
 **ptchain = 関数1(inn);
 *ptchain = (int *)malloc(sizeof(int));
 ptchain = &ptchain;
}
while (*prevpt = &first) {
 関数2(**prevpt);
 prevpt = &prevpt
}

120: 2019/06/27(木) 11:56:58.57 ID:rz+cR+UFd
何がしたいのか的確に説明出来ない奴にプログラミングは無理やろ

121: 2019/06/27(木) 11:57:12.89 ID:e39EbUzN0
つまり

構造体配列で複数の身長と体重の組を持ってて(入力)
それを1回の計算用関数で一気に全部の組のBMI計算して
その結果を1回の結果表示用関数で一気に表示したい

ってことやろ?

127: 2019/06/27(木) 11:58:39.68 ID:BA0834TUd
>>121
そう

133: 2019/06/27(木) 12:00:14.12 ID:e39EbUzN0
>>127
なら普通に構造体配列参照渡しすればええやん

131: 2019/06/27(木) 12:00:06.60 ID:Gaya3IfKM
>>121
配列で渡してループで表示もループでええやん

122: 2019/06/27(木) 11:57:15.00 ID:BA0834TUd
関数2のループ回数も分からん

128: 2019/06/27(木) 11:58:51.04 ID:L3Evobp50
もしかして配列の参照渡しで解決?

137: 2019/06/27(木) 12:02:30.41 ID:aGXPEcCGa
Cに参照渡しは無いんだよなあ

138: 2019/06/27(木) 12:03:26.92 ID:Qncp+T356
参照渡しってなんや
そんままリターンaとかで送りつけて仕舞えばええだけの話ちゃうんか?

143: 2019/06/27(木) 12:05:10.47 ID:CBxkawS80
>>138
このレベルのイッチでは一生かかっても無理
ゲームボーイ会社とか目指すなよ

144: 2019/06/27(木) 12:05:48.85 ID:YieELfn3M
なんか教えてる方もC言語よく分かってなさそうで地獄絵図なんだ😅