找到尾随零数的我的C程序输出错误。循环在1个测试用例后终止并返回垃圾输出。这是我的代码:
#include <stdio.h>
#include <math.h>
int main()
{
int testcase, no_of_zeroes, i, c, number;
scanf(" %d \n", &testcase);
for(i = 0; i<testcase; i++)
{
no_of_zeroes = 0;
printf(" %d \n", &number);
c = 5;
while((number/c) > 0)
{
no_of_zeroes += (number/5);
c *= 5;
}
printf(" %d \n", no_of_zeroes);
}
return 0;
}
答案 0 :(得分:3)
您永远不会初始化number
,然后您打印指向它的指针而不是数字本身。 当然你打算打印垃圾结果。
另外,我不明白你的算法应该如何工作。除以5并将其加到零的数量?如果我使用数字100,那将增加20,但100不会有20个尾随零。
答案 1 :(得分:2)
警告:格式'%d'需要类型为'int'的参数,但参数2的类型为'int *'
printf(" %d \n", number);
您必须初始化它,int number =0;
或者你的意思是(?):
scanf(" %d \n", &number);