网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月01日漏签0天
c语言吧 关注:801,688贴子:4,374,387
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 19回复贴,共1页
<<返回c语言吧
>0< 加载中...

写个计算器怎么写都写不对

  • 只看楼主
  • 收藏

  • 回复
  • V盟丶许小林
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <Windows.h>
#define PRI printf
int main(void)
{
float a,b;
double add(float, float);
float mins(float, float);
double times(float, float);
double by(float, float);
double power(float,int);
double result;//存储结果
char ope,next;
PRI("Please enter the formula:");
scanf("%d%c%d",&a,&ope,&b);
switch(ope)
{
case *+*:result = add(a,b);
case *-*:result = mins(a,b);
case ***:result = times(a,b);
case */*:result = by(a,b);
case *^*:result = power(a,b);
}
PRI("Result is %-7.2lf",result);//输出结果
system("pause");
return 0;
}
double add(float a, float b)
{
return (a+b);
}
float mins(float a, float b)
{
return (a-b);
}
double times(float a, float b)
{
return (a*b);
}
double by(float a, float b)
{
return (a/b);
}
double power(float a,int b)
{
double i,c;
for (i=1,c=1; i<=b; i++)
c *= a;
return c;
}
求大神


  • V盟丶许小林
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
怎么’复制过来就变成了*


2026-01-01 10:50:06
广告
不感兴趣
开通SVIP免广告
  • V盟丶许小林
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
到底是哪整错了


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把函数预声明放到main函数外面去


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还有%qf是输出double函数用的 应该改成%f


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还有math.h有专门计算平方的函数的


  • V盟丶许小林
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
a和b作为float变量应该用%f读取,不过你所有的自定义函数都是double类型,转换的过程中会有数据丢失,要么全用float,要么全用double


2026-01-01 10:44:06
广告
不感兴趣
开通SVIP免广告
  • V盟丶许小林
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不管算什么结果都是1.00 感觉问题出在scanf函数上


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <math.h>
#define PI 3.141592653589793238
int main(void)
{
long double num1;
long double num2;
char fuhao;
printf("\n可以计算n的n次方,但每次只能计算一个等式。");
printf("\n开始你的计算吧。\n\n\n");
in:
scanf("%lf%c%lf",&num1,&fuhao,&num2);
switch(fuhao)
{
case '+':
{
printf("\n=%lf\n\n\n",num1+num2);
goto in;
}
case '-':
{
printf("\n=%lf\n\n\n",num1-num2);
goto in;
}
case '*':
{
printf("\n=%lf\n\n\n",num1*num2);
goto in;
}
case '/':
{
printf("\n=%lf",num1/num2);
printf("\n余数为%ld\n\n\n",(long)num1%(long)num2);
goto in;
}
case '^':
{
printf("=%lf\n\n\n",pow((double)num1,num2));
goto in;
}
default:
{
printf("计算无效\n\n\a");
goto in;
}
}
return 0;
}
\\我这里写出来了一个 一个小型计算器最好不要用那么多函数,可读性很差,如果楼主只是为了单纯地练习函数的话,可以试着编写用于计算平均数的程序


  • VendaLau
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

case后面的 break呢?


  • 密码
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#define PRI printf
int main(void)
{
double a,b;
double add(double, double);
double mins(double,double);
double times(double,double);
double by(double,double);
double power(double,double);
double result;//存储结果
char ope,next;
PRI("Please enter the formula:");
scanf("%lf%c%lf",&a,&ope,&b);
switch(ope)
{
case '+':
{
result = add(a,b);
break;
}
case '-':
{
result = mins(a,b);
break;
}
case '*':
{
result = times(a,b);
break;
}
case '/':
{
result = by(a,b);
break;
}
case '^':
{
result = power(a,b);
break;
}
}
PRI("Result is %-7.2lf",result);//输出结果
return 0;
}
double add(double a, double b)
{
return (a+b);
}
double mins(double a, double b)
{
return (a-b);
}
double times(double a, double b)
{
return (a*b);
}
double by(double a, double b)
{
return (a/b);
}
double power(double a,double b)
{
int c;
int i=(int) b;
for (c=1; c<=b; c++)
c *= a;
return (double)c;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 19回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示