• 2022-06-30
    2、给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中.高位仍在高位,低位仍在低位.
  • 解释如楼上所说.不过你的代码错了,按照你的代码运行的结果只可能是7050301,也就是说你没有从本质上把十位,千位和十万位上的数字取消,只是把他们换成了0.下面这个是我写的,你看下,最好运行一下.#include#includelongmain(void){longs,total;inti,val;i=0;total=0;printf("Enterthenumber:");scanf("%ld",&s);while(s>0){val=s%10;//求每个位数上的数值,if(val%2!=0)/*判断,如果是奇数,依次将它们和10的递增幂数相乘,**比如,分离出的数值为1,则total=1*pow(10,0),第二**次分离的是3,则total=3*pow(10,1),如此下去,直到**while结束,并且每次将total相加*/{total+=val*pow(10,i);i++;}s=s/10;}printf("%ld",total);return0;}

    举一反三

    内容

    • 0

      {[br][/br]给定程序MODI1.C中函数fun的功能是:将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。[br][/br]例如:当s中的数为:87653142时,t中的数为:8642[br][/br]void fun (long s, long *t)[br][/br]{ int d;[br][/br]long sl=1;[br][/br]*t = 0;[br][/br]while ( s > 0)[br][/br]{ d = s%10;[br][/br]/************found************/[br][/br]if (d%2=0)[br][/br]{ *t=d* sl+ *t;[br][/br]sl *= 10;[br][/br]}[br][/br]/************found************/[br][/br]s \= 10;[br][/br]}[br][/br]}[br][/br]}

    • 1

      程序改错题:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为:7654321时,t中的数为:7531。 #include[stdio.h] voidmain() {longs,t,s1=10; printf("\nPleaseenters:"); scanf("%ld",&s); /*********found*************/ while(s>0)[br][/br] { s=s/100; t=s%10*s1+t; /*********found************/ s1=s1*10; } printf("Theresultis:%ld\n",t); }

    • 2

      给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。

    • 3

      从低位开始取出整型变量s偶数位上的数,依次构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:642。 要求: 输出时显示的格式为:“The result is:?”(其中?为程序中自己的输入、输出数据) 例如:输入7654321,输出显示格式为:The result is:642 补充下面的代码,完成上述功能: t=0 ss=1 s= eval(input('Please enter datas:')) #在下面一行开始写你的代码

    • 4

      输入正整型数据s,从低位开始取出s奇数位上的数,依次构成一个新数放在t中。例如:当s中的数为:7654321时,t中的数为:7531 要求: 输出数据的格式为: 1)?(?为处理后的结果) 例如:输入7654321,输出:7531 2)或者:error!(当输入数据s不符合要求时:正整数数据s) 补充下面的代码,完成上述功能: s = eval(input('input a data:')) #在下面一行开始写你的代码