请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

#include <stdio.h>
unsigned fun(unsigned w) 
{
    if (w < 10) 
	{
        return 0;
    }

    unsigned temp = w;
    unsigned count = 0;

    while (temp > 0)
	{
        temp /= 10;
        count++;
    }

    unsigned pow_value = 1;
    for (unsigned i = 0; i < count - 1; i++) 
	{
        pow_value *= 10;
    }

    unsigned result = w % pow_value;

    return result;
}

int main()
 {
    unsigned w = 12345;

    unsigned result = fun(w);

    printf("从 w 中提取的后 n-1 位数为:%u\n", result);

    return 0;
}

posted on 2024-06-16 23:09  wessf  阅读(22)  评论(0)    收藏  举报