while(scanf("%d%d",&b,&e) && (b||e) )什么意思

发布网友

我来回答

4个回答

热心网友

#include <stdio.h>
#include <math.h>

// 计算正整数 n 的位数
int getLength(unsigned int n)
{
return (int)log10(n)+1;
}
// 取出正整数 n 的后 m 位
int getSubfix(unsigned int n,unsigned int m)
{
unsigned int i,p=1;
for(i=1;i<m;i++) p*=10;
return n%p;
}
int main(int argc, char *argv[])
{
unsigned int a,b;
printf("输入两个三位数:");
while(scanf("%d%d",&a,&b)!=EOF)
{
if(getLength(a)!=3)
printf("第一个数 %d 不是三位数!请重新输入。\n",a);
else if(getLength(b)!=3)
printf("第二个数 %d 不是三位数!请重新输入。\n",b);
else
printf("%d*%d 的结果的后四位是:%04d。\n",a,b,getSubfix(a*b,4));

printf("输入两个三位数:");
}

return 0;
}

热心网友

给你个笨方法...最近玩大数运算有点着迷了...
看到二楼的答案才发现自己对你的题目有点想多了...
不管怎么样 代码贴上来吧
#include<stdio.h>
main()
{
int a,b,c,d,e,f,g,h,i,j;
long int k;//用来测试答案是否正确

int m,n;
scanf("%d %d",&m,&n);
a=m/100%10;
b=m/10%10;
c=m%10;
d=n/100%10;
e=n/10%10;
f=n%10;

//scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
//abc*def=...ghij
j=c*f%10;
i=(c*f/10+c*e+b*f)%10;
h=((c*f/10+c*e+b*f)/10 +c*d+b*e+a*f)%10;
g=(((c*f/10+c*e+b*f)/10+c*d+b*e+a*f)/10+b*d+a*e)%10;
k=(long int)(100*a+10*b+c)*(long int)(100*d+10*e+f);
printf("%d%d%d%d\n%ld",g,h,i,j,k);
}

热心网友

#include <stdio.h>
int main()
{
int a,b;
printf("请输入两个三位数,a,b\n");
scanf("%d%d",&a,&b);
printf("%d",a*b%10000);//两个三位数相乘,用取余运算得到最后的四位数
return 0;
}

热心网友

54188

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com