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条回答

    报告相同问题?

    悬赏问题

    • ¥15 jupyterthemes 设置完毕后没有效果
    • ¥15 matlab图像高斯低通滤波
    • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
    • ¥15 钢筋实图交点识别,机器视觉代码
    • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
    • ¥50 400g qsfp 光模块iphy方案
    • ¥15 两块ADC0804用proteus仿真时,出现异常
    • ¥15 关于风控系统,如何去选择
    • ¥15 这款软件是什么?需要能满足我的需求
    • ¥15 SpringSecurityOauth2登陆前后request不一致