#include<stdio.h>
int main()
{
float a=10;
float* p=&a;
printf("%u\n",p);
p=p+3;
printf("%u",p);
}
Run Code Online (Sandbox Code Playgroud)
执行该程序后,我得到 2 个内存地址作为输出,后者的值比前者大 12。
#include<stdio.h>
int main()
{
float a=10;
float* p=&a;
printf("%u\n",p);
p=p+3.5;
printf("%u",p);
}
Run Code Online (Sandbox Code Playgroud)
我尝试将 3 更改为 3.5,但得到的输出具有两个地址的相同值。我预计在这两种情况下该值都会至少增加 12。可能是什么原因 ?
我是 C 编程的新手我想找出给定数字的阶乘中尾随零的数量
{
long int n=0,facto=1,ln=0;
int zcount=0,i=1;
printf("Enter a number:");
scanf("%ld",&n);
if(n==0)
{
facto=1;
}
else
{
for(i=1;i<=n;i++)
{
facto=facto*i;
}
}
printf("%ld",facto);
while(facto>0)
{
ln=facto%10;
facto/10;
if(ln=!0)
{
break;
}
else
{
zcount+=1;
}
}
printf("Tere are Total %d Trailing zeros in given factorial",zcount);
}
Run Code Online (Sandbox Code Playgroud)
我试图计算将返回给定数字的最后一位作为余数的数字的模数,然后n/10;将删除最后一个数字。
执行程序后,输出总是将尾随零的数量显示为“0”,if(ln =! 0)即使有零也总是满足条件。