问下C语言一个程式的做法,刚学不会

来源:百度知道 编辑:UC知道 时间:2024/07/07 05:46:57
有1~9个数字,其中4个数字加减乘除后要等于我给定的结果,且数字不能重复使用,求这4个数字分别是多少,该如何做呢?如()+()*()-()=10
我用的TC,最下面的大哥的代码我照到打了,RUN不了,有错误呢

是加减乘除随意, 比如这个程式做出来了,它可以让你随意输入一个公式,4个数字分别为a b c d, 如我输入a+b*c/d=10 它就会分别显示abcd各为多少

8 * 9 + 7 - 1 = 78
最大为78
1 * 2 + 3 - 9 = -4
最小为-4
int a[10][10];
int main(void)
{
int a1 ,a2 ,a3 ,a4 ;
int i = 0 , j = 0 ,k = 0 , temp , temp2 = 0 ;
for(i =1 ;i < 10 ; i++)
for(j = 1 ; j <= i ; j++)
{
b[k++] = a[i][j] = a[j][i] = i * j ;
}

for(i =1 ;i < 10 ; i++)
for(j = i; j <= 10 ; j++)
{
if(b[i]>b[j])
{
temp = b[i] ;
b[i] = b[j] ;
b[j] = temp ;
}
}
scanf("%d", &num);
while(1){
for(i = 0 ; i < k ; i++)
{
if(b[i+1] - num)>0)
if(((num - b[i]) > ( b[i+1]-num )))
{
temp = b[i] ;
break ;
}
else
{
temp = b[i + 1] ;
break ;
}
}
for(i =1 ;i < 10 ; i++)
for(j = 1 ; j <= i ; j++)
{
if(b[i][j] == temp)
{
temp2 = num - temp ;
a2 = i ;
a3 = j;
break ;
}
}
for(i = 1 ; i < 10 ; i++)
{
if