c语言编写计算器程序

c语言编写计算器程序,第1张

C语言编写计算器

我们可以用printf和scanf函数输出结果和获取用户的输入。需要<stdio.h>头文件。scanf函数在读取数据的时候不需要再一行上输入每个数据,只要数据和数据之间留出空白就可以了。先声明两个变量number1和number2,operation变量用来存储运算符。用scanf函数获取这两个数字和运算符。分别用%lf %c %lf

请点击输入图片描述

然后需要检测输入是否是正确的,检查是不是+ - * / %,在这里要用到switch函数,用来看operation变量是否别传入了正确的值。

switch(operation)

{

case '+':

printf........

}

具体的运算我们只需要再case之后的printf语句中设定和输出就可以了。

请点击输入图片描述

由于除法和取余运算比较特殊,我们单独说明。除法的除数不能为零,所以除法需要检测除数是否为零,只需要用if else语句就可以,if(number2 == ),取余运算符对于浮点数没有意义,所以将浮点数转换为long类型,强制类型转换,if((long)number2 == 0)   else ,这样整个代码就完成了。

请点击输入图片描述

简单计算器的编辑并不难,但是要注意一些细节,除法的处理要注意除数不能为零的情况,而且取模运算要将两个 *** 作数转化为整型,当然,作为真正的计算器,只实现这些功能是不够的,还需要更多的功能,不过有一个好的开始也不错。

下面我们就运行一下这个程序吧。25*13的值和8%5的值。可以看到是我们期望的值。

请点击输入图片描述

请点击输入图片描述

#include<stdio.h>

void main()

{

 int i,j,k,a=5,m[6][6]  

  i=1//初始化i的值为1  

  k=(a+1)/2//初始化k的值为(a+1)/2,即k=3  

  /*循环过程如下:  

  j=1, m[1][3]=1, k=4,i=5,a=5  

  j=2, m[5][4]=2, k=5,i=4,a=5  

  j=3, m[4][5]=3, k=1,i=3,a=5  

  j=4, m[3][1]=4, k=2,i=2,a=5  

  j=5, m[2][2]=5, k=2,i=3,a=5 执行第一个if语句,continue了  

  j=6, m[3][2]=6, k=3,i=2,a=5  

  j=7, m[2][3]=7, k=4,i=1,a=5  

  j=8, m[1][4]=8, k=5,i=5,a=5  

  j=9, m[5][5]=9, k=1,i=4,a=5  

  j=10,m[4][1]=10,k=1,i=5,a=5 执行第一个if语句,continue了  

  j=11,m[5][1]=11,k=2,i=4,a=5 

  j=12,m[4][2]=12,k=3,i=3,a=5  

  j=13,m[3][3]=13,k=4,i=2,a=5  

  j=14,m[2][4]=14,k=5,i=1,a=5  

  j=15,m[1][5]=15,k=5,i=2,a=5 执行第一个if语句,continue了  

  j=16,m[2][5]=16,k=1,i=1,a=5  

  j=17,m[1][1]=17,k=2,i=5,a=5  

  j=18,m[5][2]=18,k=3,i=4,a=5  

  j=19,m[4][3]=19,k=4,i=3,a=5  

  j=20,m[3][4]=20,k=4,i=4,a=5 执行第一个if语句,continue了  

  j=21,m[4][4]=21,k=5,i=3,a=5  

  j=22,m[3][5]=22,k=1,i=2,a=5  

  j=23,m[2][1]=23,k=2,i=1,a=5  

  j=24,m[1][2]=24,k=3,i=5,a=5  

  j=25,m[5][3]=25,k=3,i=4,a=5  

  j=26退出循环  */  

     for(j=1j<=a*aj++) //从1到25循环  

  {

         m[i][k]=j  //将循环的索引值j赋值给数组m的第i行第k列   

   if(j%a==0)

   {

    i=(i%a)+1

    continue

   }

   k=(k%a)+1

   i--

   if(i==0)

    i=a

  }

  /*执行结果为:

  17  24   1   8  15

  23   5   7  14  16

  4    6  13  20  22

  10  12  19  21   3

  11  18  25   2   9

  */

  for(i=1i<=ai++)//从1到5循环:控制行 

  {

   for(j=1j<=aj++)//内层从1到5循环:控制列   

    printf("%4d",m[i][j])//以4位整数输出数组中第2行第2列的值到数组最后的值  

   printf("\n")//行结束打印换行符    

  }

 }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12126211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存