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 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
    • ¥15 fluent的在模拟压强时使用希望得到一些建议
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
    • ¥15 模糊pid与pid仿真结果几乎一样
    • ¥15 java的GUI的运用
    • ¥15 Web.config连不上数据库
    • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
    • ¥15 怎么配置广告联盟瀑布流