lingduyuanwei 2014-07-12 01:01
浏览 769

在C语言环境下的算12问题

给定三个数,问你使用加减乘除能否得到12,要求三个数的顺序可以改变,计算的中间结果必须为整数。
输入:输入三个整数,均大于0,小于1000。
输出:输出为一个整数,当可以得到12时输出1,否则输出0。
输入样例:
2 2 3
输出样例:
1
提示:输出格式:printf("%d\n",1);
主要功能:
(1)从文件中读出题目的输入;
(2)向屏幕上打印出题目的计算结果。

PS:最好能有多文件结构多函数结构,能有界面处理
(这些我还不太会,所以只能附上一小部分代码,望能得到完善)
#include
#include
bool canBe12(float m, float n, float h)
{
int i, j, k;
float arr[3] = {m, n, h};

for(i = 0; i < 3; i++)
{
    for(j = (i + 1) % 3; j < 3; j++)
    {
        k = (j + 1) % 3;
        if(arr[i] + arr[j] + arr[k] == 12 ||
                arr[i] + arr[j] - arr[k] == 12 ||
                arr[i] - arr[j] + arr[k] == 12 ||
                arr[i] - arr[j] - arr[k] == 12 ||
                arr[i] * arr[j] + arr[k] == 12 ||
                arr[i] + arr[j] * arr[k] == 12 ||
                arr[i] / arr[j] + arr[k] == 12 ||
                arr[i] + arr[j] / arr[k] == 12 ||
                arr[i] * arr[j] - arr[k] == 12 ||
                arr[i] - arr[j] * arr[k] == 12 ||
                arr[i] * arr[j] * arr[k] == 12 ||
                arr[i] * arr[j] / arr[k] == 12 ||
                arr[i] / arr[j] * arr[k] == 12 ||
                arr[i] / arr[j] / arr[k] == 12 ||
                arr[i] / arr[j] - arr[k] == 12 ||
                arr[i] - arr[j] / arr[k] == 12
          )
        {
            return 1;
        }
    }
}

return 0;

}
int main()
{
FILE *fp;
float m, n, k;
int i;
if((fp=fopen("input.txt","r"))==NULL)
printf("ERROR");
while(fscanf(fp,"%f%f%f",&m,&n,&k)==3)
if((int)m==m&&(int)n==n&&(int)k==k)
{
printf("%f %f %f result is:\n",m,n,k);
if(canBe12(m,n,k))
printf("1\n");
else
printf("0\n");
}
return 0;
}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!