欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: c語言計算器程序(簡單) [打印本頁]

作者: liuyuxi    時間: 2015-1-11 00:18
標題: c語言計算器程序(簡單)
/*************************************************
名稱:計算器程序日期:2015年月1月11號
編寫:掃帚菜(大鶴)
內容:通過此程序,實現簡單的四則運算
**************************************************/
#include "stdio.h"
#include "stdlib.h"
float get_num(char **);

int main()
{
    char a[80];
    int sign = 1;/*正負號的標志*/
    float result = 0;
    char *p;
    clrscr();
    gets(a); /*由此輸入字符*/
    p=a;
    if(*p=='-') /*如果第一個字符為'-'號則標志為負*/
    {
        sign=-1;
        p++;   /*指向下一個字符*/
    }
    while(*p!=0)
    {
        float  m;
        m=sign*get_num(&p);/*m被賦值為字符串的第一個數*/
        while(*p=='*'||*p=='/')/*如果字符為'*'或'/'則一直進行*/
        {
            if(*p=='*')
            {
                p++;
                m*=get_num(&p);
            }
            else
            {
                int div;
                p++;
                div=get_num(&p);
            if(div==0)
            {
                printf("個驢!除數怎么為0?瘋了吧~~~\n");
                exit(1);
            }
            else
            m/=div;
        }
    }
    if(*p!='+'&&*p!='-'&&*p!=0)
    {
         printf("哈哈,非法字符=非法同居: %c\n",*p);
         exit(0);
    }

    result+=m;
    if(*p=='+')
    {
        sign=1;
        p++;
     }
    else if(*p=='-')
    {
        sign=-1;
        p++;
    }
    else
        break;
   }
printf("The result is %f\n", result);
getch();
return 0;
}
/*****************************************************
以下函數為計算函數,涉及較多指針和二級指針的知識,為C程
序比較難的部分,不做過多注釋,因為只會越注越亂看不懂可
以問我,在下雖然是個菜鳥,但在這個程序上還得算是個老鳥
******************************************************/
float get_num(char **p)
{
    float n =0, m = 10;
    if(**p!='.'&&(**p<'0'||**p>'9'))
   {
        printf("不長腦子。亂輸什么?運算符后面不是數行吧\n");
        exit(1);
   }
    while(**p>='0'&&**p<='9')
    {
        n=n*10+**p-48;
        (*p)++;
    }
   if(**p=='.')
   {
        (*p)++;
        while(**p>='0' &&**p<='9')
        {
             n+=(**p-48)/m;
             (*p)++;
             m*=10;
        }
   }
return n;
}







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1