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

admin2010-11-26  35

问题 请编写一个函数unsigned fun (unsigned w),w 是一个大于 10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后 n-1位的数作为函数值返回。
   例如:w值为5923,则函数返回923;若w值为923,则函数返回23。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
   试题程序:
   #include<conio. h>
   #include<stdio. h>
   unsigned fun(unsigned w)
   {
   }
   main()
   {
    unsigned x;
    clrscr ();
    printf("Enter a unsigned integer
           number: ");
    scanf  ("%u",&x);
    printf("The original data is:%u\n",x);
    if (x<10)
       printf ("Data error! ");
    else
       printf ("The result :%u\n", fun(x) );
   }

选项

答案unsigned fun (unsigned w) { if(w>=10000) return w%10000; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w%1000; if(w>=100) return w%100; if(w>=10) return w%10; }

解析 我们首先应该明白无符号整数的定义形式,若它大于10000(5位)时,将10000对它求余则结果为后4位;当它大于1000(4位)时,将1000对它求余则结果为后3位,花此类推。特别注意这里所有if()的顺序不能颠倒。
转载请注明原文地址:https://kaotiyun.com/show/QJID777K
0

最新回复(0)