我正在做一个程序来计算1和另一个数之间的完美平方数,我希望计数器只取整数的第一个数,其余的数加0,例如:计算结果是31,我想显示30,如果是190,那么显示100,依此类推。
int number;
int i = 1;
int perfectCounter = 0;
printf("Enter a number: ");
scanf("%d", &number);
while (i <= number) {
float tempSquare = sqrt(i);
int integerPart = tempSquare;
if (tempSquare == integerPart)
perfectCounter++;
i++;
}
printf("%d", perfectCounter);
这是我现在拥有的代码,如果我插入1000,它将显示31,我希望它显示30,我想不出解决方案。
最佳答案
将数字除以数字下面10的最大幂使用整数运算来实现,这样它就得到了除法的整数部分。然后乘以10的幂。
#include <math.h>
int powerOf10 = pow(10, (int)log10(perfectCounter));
int roundedCounter = (perfectCounter/powerOf10)*powerOf10;
printf("%d", roundedCounter);
关于c - 四舍五入以始终以0结尾的整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32772579/