C语言初学者求源代码解释
题目:一个数如果恰好等于它的所有因子之和,这个数就称为“完数”。请编写一个判别m是否为完数的函数,并编写主函数,通过调用此函数统计自然数1~100完数的个数。main()...
题目:一个数如果恰好等于它的所有因子之和,这个数就称为“完数”。请编写一个判别m是否为完数的函数,并编写主函数,通过调用此函数统计自然数1~100完数的个数。
main() //懂
{ //懂
int r,j,i; //懂
for(i=1;i<100; i++) /* 穷举法,从1循环到100 */
{
r = 0; //懂
for(j=1;j<i;j++) /* 求i的所有因子,并将其相加 */
if(i%j == 0) //懂
r = r + j; //懂
if(r == i) /* 判断i的因子之和是否等于i,如果等于则为完数。 */
printf("%d\n",r); //懂
r = 0; //不懂
}
getch(); //不懂
return 0; //不懂
}
要是我把源代码弄成这样也行啊:
main()
{
int r,j,i;
for(i=1;i<100; i++) /* 穷举法,从1循环到100 */
{
r = 0;
for(j=1;j<i;j++) /* 求i的所有因子,并将其相加 */
if(i%j == 0)
r = r + j;
if(r == i) /* 判断i的因子之和是否等于i,如果等于则为完数。 */
printf("%d\n",r);
}
} 展开
main() //懂
{ //懂
int r,j,i; //懂
for(i=1;i<100; i++) /* 穷举法,从1循环到100 */
{
r = 0; //懂
for(j=1;j<i;j++) /* 求i的所有因子,并将其相加 */
if(i%j == 0) //懂
r = r + j; //懂
if(r == i) /* 判断i的因子之和是否等于i,如果等于则为完数。 */
printf("%d\n",r); //懂
r = 0; //不懂
}
getch(); //不懂
return 0; //不懂
}
要是我把源代码弄成这样也行啊:
main()
{
int r,j,i;
for(i=1;i<100; i++) /* 穷举法,从1循环到100 */
{
r = 0;
for(j=1;j<i;j++) /* 求i的所有因子,并将其相加 */
if(i%j == 0)
r = r + j;
if(r == i) /* 判断i的因子之和是否等于i,如果等于则为完数。 */
printf("%d\n",r);
}
} 展开
展开全部
getch();
函数用途:从控制台读取一个字符,但不显示在屏幕上
用getch();会等待你按下任意键,再继续执行下面的语句;
return 0;
是函数main()的返回值,在你这里,完整的函数头部相当于
void main()
其中,void表示无返回值,所以你不写return 0是不会影响函数的运行的;
如果函数开始写的是 int main() ,那么表示你的函数应该返回一个整形,就 必须使用return 语句,针对main函数,一般使用return 0;
r = 0;
这句话使得每次进行下一次for循环之前都保证r=0,因此,当下一次开始for循环时,r是从0开始的。
函数用途:从控制台读取一个字符,但不显示在屏幕上
用getch();会等待你按下任意键,再继续执行下面的语句;
return 0;
是函数main()的返回值,在你这里,完整的函数头部相当于
void main()
其中,void表示无返回值,所以你不写return 0是不会影响函数的运行的;
如果函数开始写的是 int main() ,那么表示你的函数应该返回一个整形,就 必须使用return 语句,针对main函数,一般使用return 0;
r = 0;
这句话使得每次进行下一次for循环之前都保证r=0,因此,当下一次开始for循环时,r是从0开始的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询