- ベストアンサー
C言語の関数sub()について
- 関数sub()は、与えられた配列の要素の合計を返す関数です。
- プログラムでは、引数の配列の要素の中から指定した範囲の要素の合計を求めています。
- ただし、引数の範囲が正しくない場合はエラーメッセージが表示されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 0と0入力したら2だと思うのですが、これは問題のミスでしょうか なぜそう思うのでしょう? startからendまでを足すのですから、 start=0,end=0なら a[0]だけ = 1 start=3,end=4なら a[3] +a[4] = 7 + 9 = 16 start=3,end=5なら a[3] +a[4] +a[5] = 7 + 9 + 11 = 27 となります。
その他の回答 (2)
- ninoue
- ベストアンサー率52% (1288/2437)
#2でsub()関数の誤り、関数名のつけ方の問題点等を指摘されているので、 見直せば直ぐに問題点は見つかる筈です。 分らない場合にはデバッガを使ったり、print文を挿入して計算にどのデータが使われているかをプリントしたりして確認して下さい。 (ループ変数:i, 計算対象データ a[start], a[end] atai 等) (それでも分らなかったら .... ????? 処置無しかも). もう少し真面目にC言語の教科書なり、書店で参考書なりを入手して最初から説明や例題を辿って勉強して下さい。 例えば次のサイトも参考になります。 http://www.kumei.ne.jp/c_lang/ 猫でもわかるプログラミング C言語編 第1部 (名前に似合わず真面目に基本的な事が学べます) 同じく右上の検索窓やgoogleなどで例えば次のように入力して調べて下さい。 "C言語 入門 フリーサイト" "C言語 入門 サイト"、 "C言語 入門 参考書"
お礼
参考にさせていただきます
補足
参考書はあるのですが、それを見てもわからないのです・・・ 自分には才能がないということですか・・・
- TooManyBugs
- ベストアンサー率27% (1472/5321)
問題のミスではないが回答のsub()が間違っているからそう思うのでは。 しかしsubという関数名は最悪の命名。
補足
むう?a[3]+a[4]+a[5]のはどうやって作ればいいのでしょうか・・
お礼
a[0]+a[0] = 1+1=2だと思いました。 そうするとプログラムでは forかif文でしょうか i=start;i<=end;i++ という感じでしょうか。 携帯からなので詳しくかけません。すいません