丶桃小白er吧 关注:2贴子:160
  • 2回复贴,共1

【题库】以后的题我就发这了

只看楼主收藏回复

这次做出来一道题,不过,只写出两个空。看看?
//给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去
//除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回 所指变量。
//例如,输入一个数:27638496,新的数:为739。
//请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。
//注意:源程序存放在考生文件夹下的BLANK1.C中。
//不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
void fun(unsigned long *n)
{
unsigned long x=0, i;int t;
i=1;
while(*n)
{
t=*n % 10 ;//为什么
if(t%2!=0)
{
x=x+t*i; i=i*10;}
*n =*n /10;
}
*n=x;
}
main()
{
unsigned long n=-1;
while(n>99999999||n<0)
{
printf("Please input(0<n<100000000): ");
scanf("%ld",&n);}
fun(&n);
printf("\nThe result is: %ld\n",n);
}
不明为什么那儿写10,我试试小的数字,也觉得有问题似得


1楼2014-05-12 00:01回复
    写10 是为了除以10取余数,也就是取出个位上的那个数字,再判断这个数能不能被2除,如果能被2除说明是偶数,一个很大的数字比如你上面的27638496,先除10得到个位的6就变成2763849,再不断除以10,倒过来依次取到6、9、4、8、3、6、7、2 分别判断是不是偶数。如果是偶数就进行下面的【判断,如果是奇数就存下来,最后得到只有奇数的多位数依次乘以10拼起来


    IP属地:江苏2楼2014-05-18 00:07
    回复
      2025-08-17 23:54:43
      广告
      不感兴趣
      开通SVIP免广告
      换个方法说:987%10 结果得到的是 7,987/10 得到的才是98,%10 就是为了得到个位上的数字


      IP属地:江苏3楼2014-05-18 00:09
      回复