问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言怎么写个计算器

发布网友 发布时间:2022-05-03 09:56

我来回答

4个回答

热心网友 时间:2023-10-20 04:48

一、用户界面是用图形窗口还是命令行窗口。
如果是命令行窗口它的数据输入输出比较简单。
如果是图形窗口则要涉及,图形窗口相同的操作了。这个部分如果你不会,那你需要专门学习一样。

二、支持哪些计算功能。
除了加减乘除外,是否还支持其他高级的计算功能?
加减乘除的计算精度。
32位系统中,如果计算结果为不大于32位二进制的数。(64位系统则为不大于64位数)你可以直接使用C语言的相应的加减乘除表达式完成。
如果是支持超大数的运算,那就需要采取特殊手段了。

比如32位系统中,计算的数超过32位。比如两个128位数相加。
需要将128位拆分成4个32位。将每个32位作为整体。在依照数学的多位数加进行计算。
A1 B1 C1 D1
A2 B2 C2 D2
--------------

D1与D2相加(需要检测是否有进位,也就是计算结构是否有溢出)
C1与C2相加,同样要检测进位,并且要加上D1与D2结果的进位。
B1与B2相加,同样要检测进位,并且要加上C1与C2结果的进位。
B1与B2相加,同上类推。

在实际程序时,可以将用户界面与加减乘除程序分离。即用户界面的代码要与计算程序的代码分在不同的函数中。
又用户界面代码调用计算函数。计算函数将结果返回给用户界面代码。

以命令行界面为例,
用户界面代码,只是等待用户输入,将相应用户信息转换成合适的格式,
然后调用相应计算函数。
计算函数做完计算以后,返回相应数字。
用户界面代码,再将返回的数字转换成适当的格式,显示在窗口上。

热心网友 时间:2023-10-20 04:48

思路很简单,根据输入的数据判断,用一个switch,分别处理加减乘除四种情况
可以再完善的,整个人性化的界面,具体代码网上也有,搜搜就行了

热心网友 时间:2023-10-20 04:49

如果要控制台的,那非常简单,随便一搜索就能找到海量代码。
如果要有界面的,那恐怕没人写,纯SDK编程很累的。

热心网友 时间:2023-10-20 04:49

  #include<stdio.h>
  #include<math.h>
  #include<windows.h>
  #include<conio.h>
  void jisuan()
  {
printf("\t\t\t简单的计算器——2015 -8-9 凌晨 长期熏修 百度知道现场编写\n\n\n\n");
   printf("高次方用 ^ 号 表示 ,时间太晚就没有开方运算 按任意键开始计算\n\n");
   int i=0;
   char c = 'a', c1;
   double a=0, b=0 ,result ;
   system("cls");
   printf("%s\n", __DATE__);
   printf("%s\n", __TIME__);

   printf("\t\t\t请输入你的计算式[ ]");
   for(;i<27;i++)putchar('\b');
   scanf("%lf", &a);
   while( ' '== (c =getchar()) );
   //c = getchar();
   scanf("%lf", &b);
   do c1 = getchar(); while(c1!='\n');
   switch(c){case '+':result = a+b;break;
   case '-':result = a-b;break;
   case '*':result = a*b;break;
   case '/':result = a/b;break;
   case '^':result = pow(a,b);break;
   default:;break;
   }
   printf("\n\n\n\t\t\t\t结果为 =%.4lf \n\n\n",result);
  }
  int main()
  {
       do
   {jisuan();
   printf("按任意键重新运算,esc键退出:");
   }while(getch() != 27 );
   return 0;
  }

热心网友 时间:2023-10-20 04:48

一、用户界面是用图形窗口还是命令行窗口。
如果是命令行窗口它的数据输入输出比较简单。
如果是图形窗口则要涉及,图形窗口相同的操作了。这个部分如果你不会,那你需要专门学习一样。

二、支持哪些计算功能。
除了加减乘除外,是否还支持其他高级的计算功能?
加减乘除的计算精度。
32位系统中,如果计算结果为不大于32位二进制的数。(64位系统则为不大于64位数)你可以直接使用C语言的相应的加减乘除表达式完成。
如果是支持超大数的运算,那就需要采取特殊手段了。

比如32位系统中,计算的数超过32位。比如两个128位数相加。
需要将128位拆分成4个32位。将每个32位作为整体。在依照数学的多位数加进行计算。
A1 B1 C1 D1
A2 B2 C2 D2
--------------

D1与D2相加(需要检测是否有进位,也就是计算结构是否有溢出)
C1与C2相加,同样要检测进位,并且要加上D1与D2结果的进位。
B1与B2相加,同样要检测进位,并且要加上C1与C2结果的进位。
B1与B2相加,同上类推。

在实际程序时,可以将用户界面与加减乘除程序分离。即用户界面的代码要与计算程序的代码分在不同的函数中。
又用户界面代码调用计算函数。计算函数将结果返回给用户界面代码。

以命令行界面为例,
用户界面代码,只是等待用户输入,将相应用户信息转换成合适的格式,
然后调用相应计算函数。
计算函数做完计算以后,返回相应数字。
用户界面代码,再将返回的数字转换成适当的格式,显示在窗口上。

热心网友 时间:2023-10-20 04:48

一、用户界面是用图形窗口还是命令行窗口。
如果是命令行窗口它的数据输入输出比较简单。
如果是图形窗口则要涉及,图形窗口相同的操作了。这个部分如果你不会,那你需要专门学习一样。

二、支持哪些计算功能。
除了加减乘除外,是否还支持其他高级的计算功能?
加减乘除的计算精度。
32位系统中,如果计算结果为不大于32位二进制的数。(64位系统则为不大于64位数)你可以直接使用C语言的相应的加减乘除表达式完成。
如果是支持超大数的运算,那就需要采取特殊手段了。

比如32位系统中,计算的数超过32位。比如两个128位数相加。
需要将128位拆分成4个32位。将每个32位作为整体。在依照数学的多位数加进行计算。
A1 B1 C1 D1
A2 B2 C2 D2
--------------

D1与D2相加(需要检测是否有进位,也就是计算结构是否有溢出)
C1与C2相加,同样要检测进位,并且要加上D1与D2结果的进位。
B1与B2相加,同样要检测进位,并且要加上C1与C2结果的进位。
B1与B2相加,同上类推。

在实际程序时,可以将用户界面与加减乘除程序分离。即用户界面的代码要与计算程序的代码分在不同的函数中。
又用户界面代码调用计算函数。计算函数将结果返回给用户界面代码。

以命令行界面为例,
用户界面代码,只是等待用户输入,将相应用户信息转换成合适的格式,
然后调用相应计算函数。
计算函数做完计算以后,返回相应数字。
用户界面代码,再将返回的数字转换成适当的格式,显示在窗口上。

热心网友 时间:2023-10-20 04:48

思路很简单,根据输入的数据判断,用一个switch,分别处理加减乘除四种情况
可以再完善的,整个人性化的界面,具体代码网上也有,搜搜就行了

热心网友 时间:2023-10-20 04:48

思路很简单,根据输入的数据判断,用一个switch,分别处理加减乘除四种情况
可以再完善的,整个人性化的界面,具体代码网上也有,搜搜就行了

热心网友 时间:2023-10-20 04:49

如果要控制台的,那非常简单,随便一搜索就能找到海量代码。
如果要有界面的,那恐怕没人写,纯SDK编程很累的。

热心网友 时间:2023-10-20 04:49

如果要控制台的,那非常简单,随便一搜索就能找到海量代码。
如果要有界面的,那恐怕没人写,纯SDK编程很累的。

热心网友 时间:2023-10-20 04:49

  #include<stdio.h>
  #include<math.h>
  #include<windows.h>
  #include<conio.h>
  void jisuan()
  {
printf("\t\t\t简单的计算器——2015 -8-9 凌晨 长期熏修 百度知道现场编写\n\n\n\n");
   printf("高次方用 ^ 号 表示 ,时间太晚就没有开方运算 按任意键开始计算\n\n");
   int i=0;
   char c = 'a', c1;
   double a=0, b=0 ,result ;
   system("cls");
   printf("%s\n", __DATE__);
   printf("%s\n", __TIME__);

   printf("\t\t\t请输入你的计算式[ ]");
   for(;i<27;i++)putchar('\b');
   scanf("%lf", &a);
   while( ' '== (c =getchar()) );
   //c = getchar();
   scanf("%lf", &b);
   do c1 = getchar(); while(c1!='\n');
   switch(c){case '+':result = a+b;break;
   case '-':result = a-b;break;
   case '*':result = a*b;break;
   case '/':result = a/b;break;
   case '^':result = pow(a,b);break;
   default:;break;
   }
   printf("\n\n\n\t\t\t\t结果为 =%.4lf \n\n\n",result);
  }
  int main()
  {
       do
   {jisuan();
   printf("按任意键重新运算,esc键退出:");
   }while(getch() != 27 );
   return 0;
  }

热心网友 时间:2023-10-20 04:49

  #include<stdio.h>
  #include<math.h>
  #include<windows.h>
  #include<conio.h>
  void jisuan()
  {
printf("\t\t\t简单的计算器——2015 -8-9 凌晨 长期熏修 百度知道现场编写\n\n\n\n");
   printf("高次方用 ^ 号 表示 ,时间太晚就没有开方运算 按任意键开始计算\n\n");
   int i=0;
   char c = 'a', c1;
   double a=0, b=0 ,result ;
   system("cls");
   printf("%s\n", __DATE__);
   printf("%s\n", __TIME__);

   printf("\t\t\t请输入你的计算式[ ]");
   for(;i<27;i++)putchar('\b');
   scanf("%lf", &a);
   while( ' '== (c =getchar()) );
   //c = getchar();
   scanf("%lf", &b);
   do c1 = getchar(); while(c1!='\n');
   switch(c){case '+':result = a+b;break;
   case '-':result = a-b;break;
   case '*':result = a*b;break;
   case '/':result = a/b;break;
   case '^':result = pow(a,b);break;
   default:;break;
   }
   printf("\n\n\n\t\t\t\t结果为 =%.4lf \n\n\n",result);
  }
  int main()
  {
       do
   {jisuan();
   printf("按任意键重新运算,esc键退出:");
   }while(getch() != 27 );
   return 0;
  }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
缘起缘灭美文 个人取得交易手续费返还收入需缴个人所得税吗 个人所得税返还手续费交增值税吗 输血有什么不良反应? 总是梦见很恐怖的快速飞 梦里面还知道自己在做梦想赶紧醒来 问题... 武汉商学院地址是什么 武汉商学院交通方便吗。离市区远吗 武汉商学院地理位置很偏吗 ...2013年10月10日, 农历2013年9月6日, 阴历二零一三癸巳年九月初六日12... 男孩 出 生于2013年10月10日(农历九月初六)凌晨3:07分五行缺什么啊? 555555555x999999999 =? 如何在Java中利用图形界面技术设计一个能够完成加、减、乘、除和取余运算的图形用户界面应用程序? 6的37次方,计算器没那么多位数,有专业计算器的帮我算一下 请教使用计算器的技巧. 用Scratch做计算器程序,以支持多位数的任意四则运算(加减乘除)? 急!科学计算器的多位数显示! VB编程:简单多位数相加的计算器 求能算很多位数的计算器 linux如何执行一个命令用于打开一个程序,使这个程序不会随终端的关闭而关闭 如何用Linux命令使用GUI启动程序? 怎么做通讯录防护啊 vivo手机 通讯录防护怎么做? 绝代神主完结了怎么还在更新 绝代神主天姿榜是那一章 绝代神主_by百里龙虾_txt全文免费阅读 我的支付宝账号,已经好长时间没用了。但是现在里面有钱。手机号码空号了。怎么才能取到钱。 在人人车上买的车出了问题,怎么办? 支付宝账号不用了,里边还有钱怎么取出来 想买一个蓝牙耳机手表,看上华为B2了,1000多感觉有点贵,其他的手表没有这两个功能,可以一个耳机 1000多元的蓝牙耳机值得购买吗 8减5手指算怎么做 如何多位数计算10个3 33……33×33……33 10个3 唐朝的哪一个将军独守孤城四十年,却不忘自己是唐人? 孤军死守西域四十载,最后一战三军将士尽白头,这场唐朝最悲壮的一战是哪一战? 唐朝的白发兵是怎么回事?为什么受到后世很大推崇? 大漠孤城苦战十余载,城未破却献城投降的人为何成了民族英雄? 郭昕的介绍 一己之力孤守西域42年,吐蕃不敢进寸步,铁血安西军如何练成? 郭昕的基本概况 解读大唐“安西都护府”亡于何时 清朝灭亡10多年,*发现清军仍在此巡逻,清军问:大清真亡了吗? 唐朝实力强大,能够灭掉突厥和高句丽,为何征服不了吐蕃呢? 大唐帝国最精锐的部队安西军是什么样的? 贞观之治唐朝败给吐蕃人嘛? 在真实的历史中,哪一位才是中国下西洋的第一人? 大唐将士是如何抗击吐蕃攻占河西、陇右诸州的? 独守孤城四十载,满城皆白发的唐朝将军有多悲壮? 企业使用钉钉,但无法拉我进群,进群显示: 该用户无法加入企业会话 是怎么回事? 求海尔洗衣机 大神童XQB75-M1268 关爱,那个桶干燥怎么用?是洗完衣服... 历史上的琅琊王氏为何能经久不衰呢?