搜索
查看: 919|回复: 8
打印 上一主题 下一主题

计算器

[复制链接]
楼主
发表于 2014-3-22 11:34:04 | 显示全部楼层
/*这行不?*/
#include <stdio.h>
#include <string.h>                             
#include <stdlib.h>
#include <ctype.h>
#define STR "Enter the operation of your choice"

float first(void);
float second (void);
void star (char ch, int num);
void temp (float num);
int main (void)
{
        float add,subtract,multiply,divide;
        float num,num1;
        char ch;

        begin:                         // goto 跳转
        star ('-' ,strlen(STR));       // 程序头
        printf("%s \n",STR);
        printf(" a) add         b) subtract \n");
        printf(" c) multiply    d) divide \n");
        printf(" q) quit \n");
        star('-',strlen(STR));
        while ((ch = getchar())  != 'q')
        {
         if (isalnum(ch))             // 调用isalnum() 函数
                 switch(ch)
           {
                         case 'a':
                                num = num1 = 0;
                                num = first();
                                num1 = second();
                                printf ("%.2f + %.2f = %.2f \n",num,num1,num+num1);
                           goto begin;
                                break;

                         case 'b':
                                num = num1 = 0;
                                num = first();
                                num1 = second();
                                printf ("%0.2f - %0.2f = %0.2f \n",num,num1,num-num1);
                           goto begin;
                                break;

                         case 'c':
                                num = num1 = 0;
                                num = first();
                                num1 = second();
                                printf ("%0.2f * %0.2f = %0.2f \n",num,num1,num*num1);
                           goto begin;
                                break;

                          case 'd':
                                num = num1 = 0;
                                num = first();
                                while (num == 0)
                                  num = first();
                                num1 = second();
                                while (num1 == 0)
                                   num1 = second();
                                printf ("%0.2f / %0.2f = %0.2f \n",num,num1,num/num1);
                           goto begin;
                                break;

                          default:
                                printf ("你的输入有错误,请重新输入 \n");
                                goto begin;
                                break;
                }
           }
        printf ("程序退出 \n");
        system("PAUSE");
        return 0;
}



void star (char ch, int num)
{
   int temp;
   for (temp = 0; temp < num; temp++) {
           putchar(ch);
   }
   printf ("\n");
}

float first (void)
{
        float fir;
        char ch;

        printf ("Enter first number :  ");
        while (scanf("%f",&fir) != 1)
        {
                while ((ch = getchar()) != '\n')
                        putchar(ch);
                printf (" is not an nubmer \n");
                printf (" Please enter a number, such as 2.5 . -1.78E8 or 3 \n");
                printf ("Enter first number :  ");
        }
   return fir;
}

float second (void)
{
         float sec;
         char ch;

         printf ("Enter second number : ");
         while (scanf ("%f",&sec) != 1)
         {
                 while ((ch = getchar()) != '\n')
                        putchar(ch);
                printf (" is not an nubmer \n");
                printf (" Please enter a number, such as 2.5 . -1.78E8 or 3 \n");
                printf ("Enter first number : ");
         }
         return sec;
}

评分

参与人数 1啊哈币 +3 收起 理由
李掌柜 + 3 赞一个!

查看全部评分

沙发
发表于 2014-3-23 10:18:34 | 显示全部楼层
rosynirvana 发表于 2014-3-22 12:46
谁能解释一下楼主在说什么……

我也想知道。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表