这个事TC的自身的问题么,搞不懂。哦,是自己的问题

在知道里帮别人答题写写小程序的时候发现了个小东西,不知道是不是TC自身的问题。

下面是代码:

主要是实现对输入的数,计数其数字中0的个数,以及其阶乘。输出。

#include<stdio.h>
void main(){
long int i,k,l,m=1;
int j,count=0;
printf("PLEASE INPUT THE NUM:/n");
scanf("%ld",&i);/*输入要操作的数*/
k=i;
for(l=i;l>=1;--l){
m*=l;
}
while(i>0){
j=i%10;
if(j==0) count+=1;/*count进行计数*/
i=i/10;
}
printf("THERE ARE %d ZERO IN %ld/n%d!=%ld/n",count,k,k,m);/*输出结果*/

}

我在TC环境下进行编译以及跟踪结果的时候,用例子i=3,跟踪,得到count=0,m=6,F7单步执行是这样,但是到了输出的那屏时,出现的m值却不是6,几次都是这样,不知道为什么。

后面我试了下在VC6.0下编译运行,同样用i=3进行,得到了正确的结果。哎!~~,谁能告诉下我这是怎么回事。

 

哦,找到问题了,全是自己的粗心所致,哎~~~,最后第二个k打印格式出了问题

再次领会题目意思后,改了如下:

#include<stdio.h>
void main(){
long int i,k,l,m=1,n;
int j,count=0;
printf("PLEASE INPUT THE NUM:/n");
scanf("%ld",&i);/*输入要操作的数*/
k=i;
for(l=i;l>=1;--l){
m*=l;
}
n=m;
while(m>0){
j=m%10;
if(j==0) count+=1;/*count进行计数*/
m=m/10;
}
printf("THERE ARE %d ZERO IN %ld!/n%ld!=%ld/n",count,k,k,n);/*输出结果*/
getch();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值