アプリ版:「スタンプのみでお礼する」機能のリリースについて

専門学生です。コードについてなんですがわからなかったので質問させてください。
上から順にどんな動きをするのかを教えてください。特にに23行目のfor文のどんな動作を期待して実際にどう動くのかを知りたいです。

#include <stdio.h>

void main()
{
int a;
int b;
int sum;
int num;
for(a = 1; a < 10000; a++)
{
sum = 0;
num = 0;
for(b = 1; b < a; b++)
{
if(a % b == 0)
{
sum += b;
}
}
if(sum == a)
{
printf("%d", a);
for(b = 1; b < a; b++)
{
if(a % b == 0)
{
if(num != 0)
{
printf("+");
num = b;
printf("%d", num);
}
}
}
printf("\n");
}
}
}

A 回答 (2件)

おそらく自然数の中から、


約数の総和が自身と等しい数を探す
というプログラムの様ですが、
バグがあるので 23-34 行目が無意味になっています。

if(num == 0) の条件で実行させるべき処理を考えてみましょう
    • good
    • 0

うーん、こういうのって一体何が目的でこういうコード書いたのか、とか明示されてないとどうだ、って言うのは難しいですよ。


やってるこたぁ単純そうな気はするけど、あんま綺麗なコードじゃないしね。
(そもそも void main() で書きはじめる、とかロクなコードじゃないです、って言ってるようなモンです)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!