ID非公開

2022/6/23 13:48

44回答

c言語について質問です写真の問題を配列を使って解こうと思うんですが、ほかにいい方法はありませんか??

画像

ベストアンサー

0

その他の回答(3件)

0
ID非公開

2022/6/23 14:16

いや、配列なんか要らないでしょ。静的変数で、呼ばれた回数と、それまでの正数の合計値を覚えておけば良いだけですから。 switch文だけだと「0以上」と「-3以下」の両方を判定する事が出来ないので、if文で判定するのが簡単かつ妥当です。

0

int acc (int n) { static int result,count; if (n <= -3) { return -1; } else if (n == -2) { return count; } else if (n == -1) { return result; } else if (n >= 0) { result += n; return result; } } 配列だと上限を仕様で先に決めておく必要がある。 -3と0で範囲指定が入るからswitchは厳しい。どちらか一つならできるのだが。 合計とカウントのリセットが示されていないのでそのままにしてある。必要なら適宜挿入されたい。

0

#include <stdio.h> int acc(int x) {     static int sum = 0, cnt = 0;     if (x < -2) {         return -1;     }     if (x == -1) {         return sum;     }     if (x == -2) {         return cnt;     }     sum += x;     cnt++;     return sum; }