已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。

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

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
unsigned fun(unsigned w)
{
    int i,m=1,n=0,k=w;
    while(k)
    {
        k=k/10;
        n++;
    }
    if(n>=2)
    {
        for(i=0;i<n-1;i++)
        {
            m*=10;
        }
        k=w%m;
    }
    return k;
}
void main()
{ 
  FILE *wf;
  unsigned x;
  system("CLS");
  printf("Enter a unsigned integer number: ");
  scanf ("%u",&x);
  printf("The original data is:%u
",x);
  if(x<10) 
    printf("Data error! ");
  else 
    printf ("The result :%u
", fun(x));
/******************************/
  wf=fopen("out.dat","w");
  fprintf(wf,"%u",fun(5923));
  fclose(wf);
/*****************************/
}

二.运行结果

原文地址:https://www.cnblogs.com/wlei5206/p/12769801.html