c语言计算器小程序,计算器程序完整代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

计算器程序的改进版,主要简化了十进制转八进制和十进制转十六进制的算法。 欢迎大家交流

#include

#include

#include

#define p 3.1415926

#define r p/180 //r=p/180,p=3.14....,p/180是求的1弧度,下面sin(里面要求的是弧度),sin(30弧度)=0.5。 void main()

{

float i,j,k;

int l,m,n,a[10];

char cmd;

LOOP:

system("cls");

printf("***********************\n");

printf("*******小寒计算器******\n");

printf("***********************\n");

printf("\n\n本计算器提供+、-、*、/四种运算。\n");

printf("p-代表圆周率pai。\n");

printf("a-代表十进制转换为二进制。\n");

printf("b-代表十进制转换为八进制。\n");

printf("c-代表十进制转换为十六进制。\n");

printf("d-代表该数值开方。\n");

printf("e-代表该数值开立方。\n");

printf("f-代表求几次方。\n");

printf("S-代表sin。\n");

printf("C-代表cos。\n");

printf("T-代表tan。\n");

printf("\n\n请输入要计算的数字和运算符号,输入“#”时,结束;输入“!”时复位。\n");

scanf("%f",&k);

while((cmd=getchar())!='#')

{

if(i!=0)

switch(cmd)

{

case '+': scanf("%f",&i);

k=k+i;

printf("=%5.2f",k);

break; case '-': scanf("%f",&i);

k=k-i;

printf("=%5.2f",k);

break; case '*': scanf("%f",&i);

k=k*i;

printf("=%5.2f",k);

break; case '/': scanf("%f",&i);

k=k/i;

printf("=%5.2f",k);

break;

case 'p': k=k*p;

printf("%6.4f",k);

break; case 'f': printf("请输入要求该数字的几次方:");

scanf("%d",&n);

i=k;

for(m=0;m

k=k*i;

printf("%5.2f",k);

break; case 'a': printf("转换成二进制\n");

m=0;

while((int)k>0)

{

l=k;

k=k/2;

l=l%2;

a[m]=l;

m++;

}

for(n=m-1;n>=0;n--)

printf("%d",a[n]);

break; case 'b': printf("转换成八进制\n");

printf("0");

m=0;

while((int)k>0)

{

l=k;

k=k/8;

l=l%8;

a[m]=l;

m++;

}

for(n=m-1;n>=0;n--)

printf("%o",a[n]);

break;

case 'c': printf("转换成十六进制\n");

printf("0x");

m=0;

while((int)k>0)

{

l=k;

k=k/16;

l=l%16;

a[m]=l;

m++;

}

for(n=m-1;n>=0;n--)

printf("%x",a[n]);

break;

case 'e': printf("该数值开立方得\n");

i=pow(k,1.0/3);

printf("%5.2f",i );

break;

case 'd': printf("该数值开方得\n");

i=k/2;

j=sqrt(k);

printf("%5.2f",j);

break; case 'S': k=k*r;

i=sin(k);

printf("%5.2f",i);

break;

case 'C': k=k*r;

i=cos(k);

printf("%5.2f",i);

break; case 'T': k=k*r;

i=tan(k);

printf("%5.2f",i);

break; case '!': goto LOOP;

}

} }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值