C言語関係掲示板

過去ログ

No651 関数プロトタイプ宣言

[戻る] [ホームページ]
No.7094

関数で合計値と平方根の和をもとめたいのですが??
投稿者---A=A=ERI(2003/06/04 22:12:31)


学校の課題なんですが。
関数で合計と平方根の和の値を出したいのですが?
合計値の関数はgoukei関数でもとめるのですが、平方根の関数もheihou関数で求めって、両方とも合計値を戻り値としてかえすのですが。
#include <stdio.h>
main()
{
int first,last;
int goukei(int,int);
double heihou(int,int);
first=1;
last=5;
printf("first=%d,last=%d\n",first,last);
printf("goukei=%d\n",goukei(first,last));
printf("heihou=%4.5f\n",heihou(first,last));
}
goukei(int first,int last)
{
int i,sum=0;
for(i=first;i<=last;i++)
sum=sum+i;
return sum;
}
heihou(int first,intlast)
{
int i,sum=0;
sum=sum+i;
return sum;
}
平方根の合計をだしたいのですが、どうやってだしたらいいのかわかりません。どうすればいいのですか??

No.7096

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---ともじ(2003/06/04 22:27:06)


こんばんは。

ソースを添付するときには、上記の注意書きに従って字下げしてください。
上に「C言語ソース⇒HTML形式ツール」も用意してあります。

>平方根の合計をだしたいのですが、どうやってだしたらいいのかわかりません。どうすればいいのですか??

平方根は、標準ライブラリ関数のsqrtを使って求めます。
■sqrt:x の平方根を返却
【書 式】#include <math.h>
     double sqrt(double x); 
【機 能】x の平方根を返却します。
【戻り値】平方根



No.7098

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---通りすがり(2003/06/04 22:30:18)


mainがvoidなのとプロトタイプ宣言がmainの中なのは
C++の記述なのかな・・・
それにしても、引数に型しか書いてないし、これはありなのか?
知らんけど動くならとりあえずいいか・・・。
それよりタブ効いてないから見辛い。

heihouのi未定義だし・・・
質問は箇条書きのほうが良いかと思います。
平方根の合計が求めたいそうですが、個別なら出せるのかな?
後はそれを毎回加算して返してもいいし、毎回関数をよびだして
mainで加算して合計を求められてはいかかですか?




No.7107

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---YuO(2003/06/05 01:06:59)


>mainがvoidなのとプロトタイプ宣言がmainの中なのは
>C++の記述なのかな・・・

Cでも関数内で関数を宣言できます。
#C/C++ともに定義はできませんが……C++のinline classのinline member関数を除く。


>それにしても、引数に型しか書いてないし、これはありなのか?

int goukei(int, int);
は,
declaration
  declaration-specifiers
    type-specifier
      'int'
    declaration-specifiers(opt)
  init-declaration-list
    init-declarator
      declarator
        pointer(opt)
        direct-declarator
          direct-declarator
            identifier
              'goukei'
          '('
          parameter-type-list
            parameter-list
              parameter-list
                parameter-declaration
                  declaration-specifiers
                    type-specifier
                      'int'
                    declaration-specifiers(opt)
                  abstract-declarator(opt)
            ','
            parameter-declaration
              declaration-specifiers
                type-specifier
                  'int'
                declaration-specifiers(opt)
              abstract-declarator(opt)
          )

と解釈されますから,問題ないです。

関数定義時に識別子が無いとエラーになるのは,関数定義において,
If the declarator includes a parameter type list, the declaration of each parameter shall include an identifier,

と別途要求されているからです。
#ISO/IEC 9899:1999 6.9.1 Function definitionより引用。


No.7111

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---通りすがり(2003/06/05 02:21:40)


自分のレスの疑問に答えて頂いてありがとうございます。
私はいつもプロトタイプ宣言をして、mainは最後に書くので
書式に違和感を感じましたがmainの中でも可能なんですね。
記述の仕方も知ることができて良かったです。
勉強中の身なものですから。


No.7113

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---かずま(2003/06/05 15:13:39)


 1: declaration
 2:   declaration-specifiers
 3:     type-specifier
 4:       'int'
 5:     declaration-specifiers(opt)
 6:   init-declaration-list
 7:     init-declarator
 8:       declarator
 9:         pointer(opt)
10:         direct-declarator
11:           direct-declarator
12:             identifier
13:               'goukei'
14:           '('
15:           parameter-type-list
16:             parameter-list
17:               parameter-list
18:                 parameter-declaration
19:                   declaration-specifiers
20:                     type-specifier
21:                       'int'
22:                     declaration-specifiers(opt)
23:                   abstract-declarator(opt)
24:             ','
25:             parameter-declaration
26:               declaration-specifiers
27:                 type-specifier
28:                   'int'
29:                 declaration-specifiers(opt)
30:               abstract-declarator(opt)
31:           )

少し間違いがあるようなので、指摘しておきます。

 6:   init-declarator-list
24〜30: もう一段右に
31:           ')'
32:    ';' を追加


No.7128

Re:関数で合計値と平方根の和をもとめたいのですが??
投稿者---YuO(2003/06/05 19:59:18)


> 少し間違いがあるようなので、指摘しておきます。

ありゃ。


> 6: init-declarator-list

確かに……。

> 24〜30: もう一段右に

最初はULとLI使って書いていたのですけど,それをPREに直したときに変になったようです。
#UL/LIがそのまま表示された……。

> 31: ')'

あ……。


> 32: ';' を追加

すっかり忘れていました。
宣言だから必須ですよね……。


ご指摘&訂正,ありがとうございます。