C程序错误-输出0
我已经试着让它工作了好几天了,但我仍然无法找出错误。当我输出代码时,它会打印,但它不会找到友好对(第一个的除数==第二个,反之亦然)C程序错误-输出0,c,C,我已经试着让它工作了好几天了,但我仍然无法找出错误。当我输出代码时,它会打印,但它不会找到友好对(第一个的除数==第二个,反之亦然) #包括 #包括 #定义使用数学定义 #包括 整数累加器(整数); 整数加法器(整数) { 整数计数器,总计; 用于(计数器=1;计数器
#包括
#包括
#定义使用数学定义
#包括
整数累加器(整数);
整数加法器(整数)
{
整数计数器,总计;
用于(计数器=1;计数器 对于(lowx=lower;lowx您没有在代码中为total赋值:
int sumDivisors( int num )
{
int counter, total;
for( counter = 1; counter < num; counter++ )
{
if( num % counter == 0 )
{
total += counter;
}
}
return ( total );
}
int求和因子(int num)
{
整数计数器,总计;
用于(计数器=1;计数器
所以它包含垃圾,而不是可预测的值
它应该是这样的:int counter,total=0;
您没有在代码中为total赋值:
int sumDivisors( int num )
{
int counter, total;
for( counter = 1; counter < num; counter++ )
{
if( num % counter == 0 )
{
total += counter;
}
}
return ( total );
}
int求和因子(int num)
{
整数计数器,总计;
用于(计数器=1;计数器
所以它包含垃圾,而不是可预测的值
它应该是这样的:int-counter,total=0;
考虑将内部循环写入(lowy=lowx+1;lowy很好,这使它更有效。谢谢!进一步思考后,你可能误解了友好数的定义,这是。你可以在上找到第一对的列表。看看这是一个更有趣的优化。耶,这是一个逻辑错误。我改变了if(sumDivisors(lowx)=sumDivisors(lowy))对于if(求和因子(lowx)==lowy&&if(求和因子(lowy)==lowx),可以考虑将内部循环写入(lowy=lowx+1;lowy很好,这使它更有效。谢谢!进一步思考后,你可能误解了友好数的定义,这是。你可以在上找到第一对的列表。看看这是一个更有趣的优化。耶,这是一个逻辑错误。我改变了if(sumDivisors(lowx)=sumDivisors(lowy))到if(summeditors(lowx)==lowy&&if(summeditors(lowy)==lowx),这就行了天哪…谢谢你…你救了我。我习惯了空值zero@Submersed24null为零与此有什么关系?我以前认为变量默认为0,所以不需要将它们设置为0zero@Submersed24,我很高兴它有帮助!:)
噢,天哪……谢谢你……你救了我。我已经习惯了空值zero@Submersed24null为零与此有什么关系?我以前认为变量默认为0,所以不需要将它们设置为0zero@Submersed24,我很高兴它有帮助!:)