質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

1493閲覧

c言語 関数プロトタイプ宣言 nの階乗

yamani

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2021/06/07 13:59

前提・実現したいこと

関数プロトタイプ宣言をして、nの階乗を求めるプログラムを作りたいです。
関数sum()、fact()の本体を追加してプログラムをを完成させたいのですが、どこに本体を追加すればいいか分かりません。お願いします

発生している問題・エラーメッセージ

/usr/bin/ld: /tmp/Main-3bdd75.o: in function `main': /workspace/Main.c:14: undefined reference to `sum' /usr/bin/ld: /workspace/Main.c:15: undefined reference to `fact' clang: error: linker command failed with exit code 1 (use -v to see invocation)

該当のソースコード

#include <stdio.h> int sum(int n); double fact(int n); int main() { int n; printf("n を入力してください ==> "); scanf("%d", &n); printf("1 から %d までの総和は %d です。\n", n, sum(n)); printf("1 から %d までの総乗は %g です。\n", n, fact(n)); return 0; }

試したこと

#include <stdio.h>

int sum(int n);
double fact(int n);

int main()
{
int n;

printf("n を入力してください ==> "); scanf("%d", &n); printf("1 から %d までの総和は %d です。\n", n, sum(n)); printf("1 から %d までの総乗は %g です。\n", n, fact(n)); return 0;

}//以下を入力した
int sum(int n);
double fact(int n);
{
int n;
return n;
}

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/07 14:01 編集

わからないのは「どこに」であって、関数自体の内容である「何を」という点は問題ない、ということでしょうか。
yamani

2021/06/07 14:07

回答ありがとうございます。 「どこに」も「何を」も分かっていません。よろしくお願いします
guest

回答1

0

ベストアンサー

ソースコードのmain関数の下もしくは上に追加できます。
以下は実装例です。(factは総乗になっていないので注意。)

#include <stdio.h> int sum(int n); double fact(int n); int main() { int n; printf("n を入力してください ==> "); scanf("%d", &n); printf("1 から %d までの総和は %d です。\n", n, sum(n)); printf("1 から %d までの総乗は %g です。\n", n, fact(n)); return 0; } int sum(int n) { int ret = 0; for (int i = 1; i <= n; ++i) { ret += i; } return ret; } double fact(int n) { return n; }

投稿2021/06/07 14:03

fukatani

総合スコア626

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問