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

用c语言实现长整数四则运算 高分!!!

发布网友 发布时间:2022-05-19 03:13

我来回答

3个回答

热心网友 时间:2024-03-03 17:05

我贴个找的自己调试修改,win-tc调试成功
输入:4+(6+8)/2
输出:11.000000
中文显示乱码,我英语不行,呵呵
楼主可以根据需要适当修改
---------------------------------------------
#include<stdio.h>
#include<malloc.h>
union nuionnum
{
double num1;
char num2;
};
struct lianbiao
{
struct lianbiao *p;
union nuionnum num;
int flage;/* 标志是数字还是符号 */
};

void main()
{
char c;
struct lianbiao lianhe;
struct lianbiao *next;
printf("请输入一个计算机能识别的四则运算表达式,如:a+b*(c+d)/e\n");
while(1)
{
first:
next=&lianhe;
while((int)(c=getchar())!=10)
{
loop:
/* 将表达式放入复合链表中 */
if (c=='+'||c=='-'||c=='*'||c=='/'||c=='('||c==')')
{
next->num.num2=c;
if (c== '+' || c== '-' )
next->flage =1;
else if(c== '*' ||c== '/' )
next->flage =2;
else if(c== '(' )
next->flage =3;
else if(c== ')' )
next->flage =4;
next->p=calloc(1,sizeof(struct lianbiao));
next=next->p;
next->p=NULL;
}
else if(c>='0'&&c<='9')
{ long int t=1;
int flag=0;
next->num.num1=c-48;
while(((c=getchar())>='0'&&c<='9')||c=='.')
{
if (flag==1 && c!='.')
{
t=t*10;
next->num.num1=next->num.num1+(c-48.0)/t;
}
else if(c>='0'&&c<='9')
next->num.num1=next->num.num1*10+c-48;
if (c=='.')
{
flag=1;
}
}
next->flage =0;
next->p=calloc(1,sizeof(struct lianbiao));
next=next->p;
next->p=NULL;
if (c=='\n')break;
goto loop;
}
else
{
printf("不是合法的算术表达式!!!\n请重新输入:\n");
while(getchar()!='\n') ;/* 设置重新输入 */
goto first;
}
}
/* 将链表中的数字和符号分别入栈 */
next=&lianhe;
{
int i=0,j=0;/* 用来标记栈的顶点 */
double arrd[100];
char arrc[2][100];
while(next->p!=NULL)
{
if (next->flage !=0&&next->num.num2==')')/* 括号的外理 */
{
while(arrc[0][i-1]!='(')/* 出栈 */
{
if (arrc[0][i-1]=='+')
{
arrd[j-2]=arrd[j-2]+arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='-')
{
arrd[j-2]=arrd[j-2]-arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];
i=i-1;
j=j-1;
}
}
i=i-1;
}
else if (next->num.num2 =='(')/* 入栈 */
{
arrc[1][i]=next->flage;
arrc[0][i]=next->num.num2;
i++;
}
else if (next->flage !=0)/* 对运算复符的理 */
{
front:
if (i>0&&next->flage<arrc[1][i-1]&&arrc[1][i-1]!=3)
{
if (arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];
i=i-1;
j=j-1;
}
goto front;
}
arrc[1][i]=next->flage;
arrc[0][i]=next->num.num2;
i++;
}
else
{
arrd[j]=next->num.num1; /* 对数字的理 */
j++;
}
next=next->p;
}
while(i!=0)/* 全部入栈之后对椎的外理 */
{
if (arrc[0][i-1]=='+')
{
arrd[j-2]=arrd[j-2]+arrd[j-1];
i=i-1;
j=j-1;
}
else if (arrc[0][i-1]=='-')
{
arrd[j-2]=arrd[j-2]-arrd[j-1];
i=i-1;
j=j-1;
}
else if (arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];/* 1+2*3/4+5 5 ++ 1 1.5 */
i=i-1;
j=j-1;
}
}
printf("%lf\n",arrd[0]);
}
}
}

热心网友 时间:2024-03-03 17:05

你说的是高精度运算吧?

热心网友 时间:2024-03-03 17:06

分不高。懒得做。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
武汉大学在职研究生考试科目有哪些 报考武汉大学在职研究生录取率高吗? 武汉大学mpa在职研究生好考吗 忘记车子买哪家保险 怎么查 67年的羊和什么生肖最配夫妻 67年的羊和69年鸡相配吗? 67年羊男与69年鸡女同是11月出生婚配如何? 67年9月和69年十月的结婚 “新菊亦侵篱”的出处是哪里 “闲绕篱头看菊花”的出处是哪里 求 净化之时 百度云免费在线观看资源 求 净化之时 The Cleansing Hour 百度云免费在线观看资源 手机阅读软件 安卓 可换源 打开后是网页阅读 有网页净化这个功能 净化后就是普通小说的阅读样式 求 净化大师 The Cleanse 百度云免费在线观看资源 在线防毒墙是什么业务? 华为ET5321s忘了密码怎么办 在线防毒墙服务网站的服务网站是什么呀? 净化工程怎么找 在日本在线血液透析滤过违法吗? 我电脑弹出有在线防毒墙业务,在线防毒墙有些什么功能? 在线防毒墙是什么? 在线防毒墙是啥? 红蜻蜓女鞋b575261黑色,高跟鞋 用C语言编写“四则运算”的关键是啥,完全新手,指针都不熟练,各位英雄指点下啊,题目在下面 在线防毒墙有什么功能? 求一个C语言程序:递归整数四则运算 求用C语言写的“大整数的四则运算”程序源代码,请看详细描述,刷分勿近! 在线油净化是什么意思 C语言编程 设计一个100以内的整数四则运算测试程序 「烫」女鞋的新款网布高跟单鞋有人尝试过吗?觉得很好准备入手了。 一些动漫手机壁纸 个税法税金计算时,对采用的税率和速算扣除数为什么要以月度税率?依据呢?个税师证书是国家认可吗? 你好,这个劳务费个人税是按一次所得算还是一个月累计所得算?谢谢 汉斯顿饮水机怎样解除童锁 摇摇车能赚钱吗? 直播个人所得税为什么只有一个月的 打开全民任务我的名字下面未认证三个字什么意思? QQ空间,邮箱,腾讯微博,校友,只要在QQ里面想打开的网页都打不开,到底是怎么了。 我的QQ空间、腾讯微博、腾讯朋友、怕怕乐享图标同时打不开了-点击没反应,从没遇过这情况,请教了! 在超市门口,母婴店门口放摇摇车,游戏机,赚钱吗?哪个比较赚的多一点? 火死了 为什么QQ微博打不开 现在连qq空间也打不开了 按网上的说清理文件 压根没用 换浏览器老样子 QQ刚更新 进QQ空间还有腾讯微博 直接变IE浏览器了 360浏览器医生也修复不了(准确来说是没了那个选项) 创作中心点进去有个未认证是什么意思? 朋友开了间面包店,抱怨不赚钱,每天就靠门口两台摇摇车,苦苦挣扎!+我:“_百度问一问 为什么我的抖音开通企业服务中心以后,创作者服务中心没有了_百度问一问 我在小区出口旁加盟快递,店铺比较大,还有个20平方想做点其它生意,另一边还有个幼儿园,做什幺好呢? 投放摇摇车赚钱用交税吗? 为何微软远程桌面安卓版客户端连接不上,提示没有证书,不知是什么证书? 微软远程桌面控制怎么用啊?在百度搜过了,看不懂。 感觉最近嗓子很累,声音也变粗了些立体了点,唱歌假声不像以前一样,有点唱不出来了。。