我正在做一个程序来计算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/

10-11 12:20