问题 问答题

改错题下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。若high的值为100,则函数的值为1060。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #includeint fun(int high){ int sum=0,n=0, j, yes; while(high>=2) { yes = 1; for(j=2; j<=high/2; j++)/**********************found***********************/ ifhigh%j==0 { yes=0;break; }/**********************found***********************/ if(yes==0) {sum+=high;n++; } high--; } return sum;}main(){ clrscr(); printf("%d\n",fun(100));}

答案

参考答案:(1)错误:ifhigh%j==0 正确:if(high%j==0)(2)错误:if(yes==0) 正确:if(yes)

解析:错误1:if语句的两侧要加括号。错误2:yes为1时,说明被判断的数为素数,要加入总和。

单项选择题
判断题