当前位置: 代码迷 >> C语言 >> 出一道题目让大家做做
  详细解决方案

出一道题目让大家做做

热度:127   发布时间:2007-12-31 02:05:07.0
这个题目并不简单。其实是正则式的处理。如果只要两个数做运算,当然容易,可是如果是若干个呢?用逆波兰式确实可以解决问题,但仅是一种方法。大家是否想过一个shell是如何处理命令的参数的呢?
----------------解决方案--------------------------------------------------------
现在的bash是很高效的东西,它的算法一定很好的,很多程序甚至都是shell脚本写,速度也不见得慢(虽然的确比二进制程序慢一些)。
----------------解决方案--------------------------------------------------------
不管怎样都只是一个简单的数字运算程序
----------------解决方案--------------------------------------------------------
/* 随便写了一个 */

#include <stdio.h>

int fun(double a, double b, char ch, double * z);

int main(void)
{
    double a, b, c;
    char ch = '\0';
    int k;
   
    while(ch != 'q')
    {
        k = scanf("%lf%c%lf", &a, &ch, &b);
        while(getchar() != '\n')
            continue;
        (k == 3 && fun(a, b, ch, &c) ) ? printf("   = %g\n\n", c)
                                       : puts("无效输入!\n");
    }
   
    puts("Bye!");
    return 0;
}

int fun(double a, double b, char ch, double * z)
{
    switch(ch)
    {
        case '+':
            *z = a + b;
            break;
        case '-':
            *z = a - b;
            break;
        case '*':
            *z = a * b;
            break;
        case '/':
            *z = a / b;
            break;
        default :
            return 0;
    }
    return 1;
}


[[italic] 本帖最后由 cosdos 于 2007-12-31 03:19 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
楼主说明一下用意啊,是要得到一个考虑全面的程序还是一个讲究效率的程序?
----------------解决方案--------------------------------------------------------
就cosdos的代码而言存在很多个的问题.
现在我重新申明一下这是一道面试题目.
或者说这是一个客户对你描述它的一个
需求文档.所以考虑的东西是全面的.
----------------解决方案--------------------------------------------------------
就一个人写了个代码...不够看啊......当是帮我们新手....大家多弄几个不同的代码..
----------------解决方案--------------------------------------------------------
'/'除的要怎么算呢??
比如输入98/3=32.666666
那要怎么算呢?
----------------解决方案--------------------------------------------------------
得写个处理字符串的才行啊
----------------解决方案--------------------------------------------------------
程序必须按照程序必须按照一定的格式进行输入,才能有响应
命名行程序几乎都这样。
----------------解决方案--------------------------------------------------------
  相关解决方案