【问题标题】:Can someone explain me the working of the code? This code is supposed to print the reverse of a number有人可以解释一下代码的工作原理吗?此代码应该打印数字的反面
【发布时间】:2016-04-23 19:43:35
【问题描述】:

// 使用 for 循环打印数字的倒数的 C 程序

#include<stdio.h>
int main()
{
long int num,i;
int d;
printf("\n enter number");
scanf("%ld",&num);
printf("\n the reverse of number %ld is ",num);
     for(i=0;num>0;i++)
{
       d=num%10;
       num=num/10;
       printf("%d",d);

 }

  return 0;
} 

我认为这段代码中没有给出终止,因为 for 循环将运行无限次,但是这段代码运行良好,那么有人可以解释一下这段代码吗?

【问题讨论】:

  • 您在每个循环中打印num 的最低有效数字,并将其除以10。它最终到达0。循环结束。 i 是 red herring。
  • for(;num&gt;0;) 在这里会很好。

标签: c for-loop output


【解决方案1】:

为了理解循环,您需要了解 % 10 和 /= 10 操作的工作原理。

第一个,除以十的余数,去掉最后一个十进制数字。第二个从数字中删除该数字,因为除法是以整数完成的。

重复将一个数字除以 10 将在迭代次数等于数字中的位数后使其为零,因此您的循环将停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多