C语言将1-9九个数分成3组,组成一个两位数和一个一位数,将这个两位数与一位数相乘,找出所有乘积相等的情况,并输出这三组数,用C语言写出算法.要C语言写的.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/21 04:29:35
![C语言将1-9九个数分成3组,组成一个两位数和一个一位数,将这个两位数与一位数相乘,找出所有乘积相等的情况,并输出这三组数,用C语言写出算法.要C语言写的.](/uploads/image/z/5219788-4-8.jpg?t=C%E8%AF%AD%E8%A8%80%E5%B0%861-9%E4%B9%9D%E4%B8%AA%E6%95%B0%E5%88%86%E6%88%903%E7%BB%84%2C%E7%BB%84%E6%88%90%E4%B8%80%E4%B8%AA%E4%B8%A4%E4%BD%8D%E6%95%B0%E5%92%8C%E4%B8%80%E4%B8%AA%E4%B8%80%E4%BD%8D%E6%95%B0%2C%E5%B0%86%E8%BF%99%E4%B8%AA%E4%B8%A4%E4%BD%8D%E6%95%B0%E4%B8%8E%E4%B8%80%E4%BD%8D%E6%95%B0%E7%9B%B8%E4%B9%98%2C%E6%89%BE%E5%87%BA%E6%89%80%E6%9C%89%E4%B9%98%E7%A7%AF%E7%9B%B8%E7%AD%89%E7%9A%84%E6%83%85%E5%86%B5%2C%E5%B9%B6%E8%BE%93%E5%87%BA%E8%BF%99%E4%B8%89%E7%BB%84%E6%95%B0%2C%E7%94%A8C%E8%AF%AD%E8%A8%80%E5%86%99%E5%87%BA%E7%AE%97%E6%B3%95.%E8%A6%81C%E8%AF%AD%E8%A8%80%E5%86%99%E7%9A%84.)
C语言将1-9九个数分成3组,组成一个两位数和一个一位数,将这个两位数与一位数相乘,找出所有乘积相等的情况,并输出这三组数,用C语言写出算法.要C语言写的.
C语言
将1-9九个数分成3组,组成一个两位数和一个一位数,将这个两位数与一位数相乘,找出所有乘积相等的情况,并输出这三组数,用C语言写出算法.
要C语言写的.
C语言将1-9九个数分成3组,组成一个两位数和一个一位数,将这个两位数与一位数相乘,找出所有乘积相等的情况,并输出这三组数,用C语言写出算法.要C语言写的.
编译运行正确,结果是18,9和27,6和54,3
#include
#include
typedef struct list{
int x[3];
struct list * next;
}result;
int flag[10];
int a[10];
result* head=NULL;
void print()//打印满足条件的结果
{
if((a[1]*10+a[2])*a[3]==(a[4]*10+a[5])*a[6]&&(a[1]*10+a[2])*a[3]==(a[7]*10+a[8])*a[9])
{
if(head==NULL)
{
result*p=(result*)malloc(sizeof(result));
p->x[0]=a[1]*100+a[2]*10+a[3];
p->x[1]=a[4]*100+a[5]*10+a[6];
p->x[2]=a[7]*100+a[8]*10+a[9];
p->next=head;
head=p;
printf("结果是:%d,%d\t%d,%d\t%d,%d\n",a[1]*10+a[2],a[3],a[4]*10+a[5],a[6],a[7]*10+a[8],a[9]);
}
else{//判断结果是否重复
result*q=head;
while(q!=NULL)
{
if((q->x[0]!=a[1]*100+a[2]*10+a[3])&&(q->x[1]!=a[1]*100+a[2]*10+a[3])&&(q->x[2]!=a[1]*100+a[2]*10+a[3]))
q=q->next;
else break;
}
if(q==NULL)
{
result* p=(result*)malloc(sizeof(result));
p->x[0]=a[1]*100+a[2]*10+a[3];
p->x[1]=a[4]*100+a[5]*10+a[6];
p->x[2]=a[7]*100+a[8]*10+a[9];
p->next=head;
head=p;
printf("结果是:%d,%d\t%d,%d\t%d,%d\n",a[1]*10+a[2],a[3],a[4]*10+a[5],a[6],a[7]*10+a[8],a[9]);
}
}
}
}
void fun(int i)//递归计算1~9的全排列
{
int k;
if (i==10)
{
print();
}
else
{
for(k=1;k