c语言中怎么表示两个两位数相乘等于一个两位数和一个三位数相乘?限定这些数为1~9,且不重复。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中怎么表示两个两位数相乘等于一个两位数和一个三位数相乘?限定这些数为1~9,且不重复。相关的知识,希望对你有一定的参考价值。

输出所有的可能性.

这是你要的效果么

用了穷尽法代码有点复杂

#include <stdio.h>

#include <stdlib.h>


int main(void)

long a = 1, b = 1, c = 1, d = 1;

int aa[9] = 0, flag = 1, i = 1, j = 1;


for(a = 10; a < 100; a++)

for(b = 10; b < 100; b++)

for(c = 10; c < 100; c++)

for(d = 100; d < 1000; d++)

if(a * b == c * d)

aa[0] = a / 10;

aa[1] = a % 10;

aa[2] = b / 10;

aa[3] = b % 10;

aa[4] = c / 10;

aa[5] = c % 10;

aa[6] = d / 100;

aa[7] = d % 100 / 10;

aa[8] = d % 10;

for(i = 0; i < 9; i++)

for(j = i + 1; j < 9; j++)

if(aa[i] == aa[j])

flag = 0;

else

continue;

if(flag)

printf("%ld * %ld = %ld * %ld\\n", a, b, c, d);

else

flag = 1;

return 0;

追问

数组中要不包含0

追答#include <stdio.h>
#include <stdlib.h>

int main(void)

long a = 1, b = 1, c = 1, d = 1;
int aa[9] = 0, flag = 1, i = 1, j = 1;

for(a = 10; a < 100; a++)

for(b = 10; b < 100; b++)

for(c = 10; c < 100; c++)

for(d = 100; d < 1000; d++)

if(a * b == c * d)

aa[0] = a / 10;
aa[1] = a % 10;
aa[2] = b / 10;
aa[3] = b % 10;
aa[4] = c / 10;
aa[5] = c % 10;
aa[6] = d / 100;
aa[7] = d % 100 / 10;
aa[8] = d % 10;
for(i = 0; i < 9; i++)

if(aa[i] == 0)

flag = 0;
continue;

for(j = i + 1; j < 9; j++)

if(aa[i] == aa[j])
flag = 0;
else
continue;


if(flag)
printf("%ld * %ld = %ld * %ld\\n", a, b, c, d);
else
flag = 1;





return 0;

追问

左边的两个乘数交换算同一算式,不能重复输出..

追答
参考技术A 循环吧
for(a1)
for(b1)
.......

if((a1*10+b1)*(a2*10+b2)==( a3*10+b3)*(a4*100+b4*10+c))
printf(....);
大概思路

C语言中求两数相乘的程序

最好详细一点.

思路:double类型的范围: -1.7*10(-308)~1.7*10(308),如果两个数的乘积不超过这样的精度,可以直接使用*符号进行运算。

参考代码:

#include<stdio.h>
int main()

double a,b;
scanf("%lf%lf",&a,&b);
printf("%.2lf",a*b); //保留两位小数
return 0;

/*
运行结果:
1205 5985
7211925.00
*/
参考技术A #include "stdafx.h"
#include<stdio.h>

long int main(int argc, char* argv[])

long int x,y,num;
scanf("%d,%d",&x,&y);
num=x*y;
printf("num=%d\n",num);

return 0;


已经验证过,绝对可用。输入数字式格式格式为 34,35(就是2个数字) 然后点回车,就OK了.
一楼那位仁兄的程序我调试过了,运行没问题,但是输出格式有问题,看不懂得。
参考技术B #include<stdio.h>
void main()

double d;
scanf("%lf,%lf\n",&i,&j);
d=ji(i,j);
printf("%lf",d);

double ji(double i,double j)

double z;
z=i*j;
return z;

随手遍的不知道对不对呵呵
参考技术C int main()

double a, b;
scanf("%lf %lf", &a, &b);
printf("%lg\n", a * b);
return 0;
参考技术D 这个问题太低级了吧……

以上是关于c语言中怎么表示两个两位数相乘等于一个两位数和一个三位数相乘?限定这些数为1~9,且不重复。的主要内容,如果未能解决你的问题,请参考以下文章

C语言得到的数保留两位小数应该怎么写语句?

蓝桥杯准备

c语言怎么实现这个的,两位数三位数怎么保证对齐的

算法笔记_220:猜算式(Java)

javascript 计算两个数相乘,保留两位小数,四舍五入。

c语言如何让输出结果精确到两位小数