抛弃数十& C中有数百列的int

时间:2014-02-17 10:58:54

标签: c gcc

我想仅测试其单位列值的整数值,我不关心数十或数百列。 int值是倒数计时器

因此当单位列为0到4时,我希望屏幕显示某些内容,当单位为5到9时,我希望屏幕显示其他内容。我想基本上隔离单位列值

不能想到一个快速而肮脏的方法,不用除以100并减去100的数量,然后用10的数量做同样的事情。在单位列

中是否有更简单的方法来移动和测试0到4或5到9

到目前为止,我正在尝试:

int zero_count_units = a_zero_count - (((a_zero_count / 100) * 100) + ((a_zero_count / 10) * 10));

if( (zero_count_units >= 0) && (zero_count_units < 5) )     // 0-4 units column
{
}
else if( (zero_count_units >= 5) && (zero_count_units <= 9) )   // 5-9 units column
{
}

今天早上我的大脑运作不太好!任何建议表示赞赏 非常感谢

2 个答案:

答案 0 :(得分:5)

您需要使用%modulo)运算符。

两个整数n % mn的{​​{1}}表达式会在m除以n之后计算余数。

在你的情况下m将是10,因为你对除以10之后的余数感兴趣:

m

答案 1 :(得分:0)

int yourNumber = 324687              /* whatever your number is */
int temp = yourNumber;
                                     /* i is to track which digit you're at */
for ( int i = 1; temp != 0; i++ ) {  /* ( temp != 0 ) is the same as ( temp ) alone */
    if ( i > 3 ) {
        if ( temp % 10 < 5 ) {       /* the current last digit of temp */
            /* display something */
        }
        else {
            /* display something else */
        }
    }
    temp /= 10;                      /* this cuts off the last digit */
}

我认为这会做你想要的。你说你不想要数十(i == 2),数百(i == 3),我以为你也不想要那些(i == 1),但是你可以玩那个如你所愿。