前提・実現したいこと
10000以下の完全数を探す簡単なプログラムを作成しました、そのままプログラムを実行するのではなくそれを関数にしてから実行したいです。
発生している問題・エラーメッセージ
最初にあるのが完全数を探すプログラムです。
2つ目がそれを関数にしようとして失敗したものです。関数の戻り値がよくわかっていない状態です。
エラーメッセージ
#include <stdio.h> int main(void) { int i, j, amari; /*1~10000まで探す*/ for (i = 1; i < 10000; i ++){ int sum = 0; for (j = 1; j < i; j ++){ amari = i % j; /*約数だけ足す*/ if (amari == 0){ sum = sum + j; } } /*完全数かどうか判定*/ if (sum == i){ printf("%dは完全数です\n", sum); } } } /*関数化しようとしたもの*/ #include <stdio.h> /*完全数を探す関数*/ int kanzen(int kanzen) { int i, j, amari; /*1~10000まで探す*/ for (i = 1; i < 10000; i ++){ int sum = 0; for (j = 1; j < i; j ++){ amari = i % j; /*約数だけ足す*/ if (amari == 0){ sum = sum + j; } } } return kanzen; } int main(void) { int kanzen; printf("%dは完全数です\n", kanzen); } ```c言語です ### 試したこと いろいろ書き替えたりしましたが以下の出力が返ってくるだけでした。 「0は完全数です」 1つ目のプログラムは10000万以下の完全数がしっかりと出力されます。 ### 補足情報(FW/ツールのバージョンなど) https://replit.com/languages/c こちらのサイトでプログラミングをしています
回答4件
あなたの回答
tips
プレビュー