C语言请大佬解答下面这个程序是怎么运行的?输入-125
主函数中输入-125后打印出-号,然后将-125取绝对值,用125调用函数fun——
k==2,用2去除125余1,所以r=125%2中r为1。由于!1为0,所以跳过while循环进入for下一次循环。
k==3,用3去除125余2,所以r=125%3中r为2。由于!2为0,所以再跳过while循环进入for下一次循环。
k==4,用4去除125余1,所以r=125%4中r为1。由于!1为0,也跳再过while循环进入for下一次循环。
k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于25>1则再打印出*号。这一循环结果输出是5*。下面r=n%k即r=25%5==0,而!0为1,所以进入while第二次轮循环。
第二次while循环中先打印出5(k的值),再n=n/k即n=25/5==5,并打印*号,屏幕显示5*5*。
r=n%k即r=25%5==0,!0==1,所以再次进入while循环体:打印5,n=n/k即n=5/5==1,由于n>1不再成立,所以不再打印*号。这时屏幕显示5*5*5。
下面n=n%k即n=1%5==1,而!1==0,所以退出while循环进入for循环。
这时k==5,而sqrt(n)即sqrt(1)==1,显然5<1不成立而退出for循环。
最后因n==1而这执行print退出fun函数(最后那句输出是解决n是质数的)。
由于主函数中先打印了-号,所以最后显示结果是-5*5*5。
2023-06-12 广告