C语言简易科学计算器加减乘除括号#include #include main(){int i,j,h,g,num[20],z,m,n,s;char ch[80],r,sign[20];for (i=0;i
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 08:00:12
C语言简易科学计算器加减乘除括号#include #include main(){int i,j,h,g,num[20],z,m,n,s;char ch[80],r,sign[20];for (i=0;i
C语言简易科学计算器加减乘除括号
#include
#include
main()
{
int i,j,h,g,num[20],z,m,n,s;
char ch[80],r,sign[20];
for (i=0;i
C语言简易科学计算器加减乘除括号#include #include main(){int i,j,h,g,num[20],z,m,n,s;char ch[80],r,sign[20];for (i=0;i
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
\x09int i,j,h,g,num[20]={0},z,m,n,s; //num[20]可以这样初始化
\x09char ch[80],r,sign[20];
\x09gets(ch); //字符串输入
for(i=0;i<strlen(ch);i++)
\x09{
\x09\x09s=0;
\x09\x09switch (ch[i])
\x09\x09{
\x09\x09case '+':sign[s]='+';s++;break; //缺少break;
\x09\x09case '-':sign[s]='-';s++;break;
\x09\x09case '*':sign[s]='*';s++;break;
\x09\x09case '/':sign[s]='/';s++;break;
\x09\x09case '(':sign[s]='(';s++;break;
\x09\x09case ')':sign[s]=')';s++;break;
\x09\x09}
\x09} /*读入符号*/
\x09do{
\x09\x09m=0;
\x09\x09num[m]=atoi(ch);
\x09\x09n=sizeof(num[0]);
\x09 for (i=n+2;i<=(z-n-2);i++)
\x09\x09{
\x09\x09 ch[i-n-2]=ch[i];
\x09\x09}
\x09\x09m++;
\x09}while (ch[0]=='\n'); /*进行数字的读入转换*/
\x09///// 发现下面好多死循环,怎么可能会有结果呢 ////////////////
for (i=0;;i++) /*开始进行计算*/
\x09{
\x09\x09if (sign[i]=='(')
\x09\x09{
\x09\x09\x09for (j=i+1;j<=z;j++)
\x09\x09\x09{
if (sign[j]==')')
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09for (h=i+1;h<=j;h++)
\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09if (sign[h]=='*')
\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09num[h-1]=num[h-1]*num[h];
\x09\x09\x09\x09\x09\x09\x09for (g=h;;g++)
\x09\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09\x09}
if (sign[h]=='/')
\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09num[h-1]=num[h-1]/num[h];
\x09\x09\x09\x09\x09\x09\x09for (g=h;;g++)
\x09\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09for (h=i+1;;h++)
\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09 if (sign[h]=='+')
\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09num[h-1]=num[h-1]+num[h];
\x09\x09\x09\x09\x09\x09\x09for (g=h;;g++)
\x09\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09\x09}
if (sign[h]=='-')
\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09num[h-1]=num[h-1]-num[h];
\x09\x09\x09\x09\x09\x09\x09for (g=h;;g++) //死循环
\x09\x09\x09\x09\x09\x09\x09{
\x09\x09\x09\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09}
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09}
\x09\x09for (h=i+1;h<=j;h++)
\x09\x09{
\x09\x09\x09if (sign[h]=='*')
\x09\x09\x09{
\x09\x09\x09\x09num[h-1]=num[h-1]*num[h];
\x09\x09\x09\x09for (g=h;;g++) //死循环
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09}
\x09\x09\x09}
if (sign[h]=='/')
\x09\x09\x09{
\x09\x09\x09\x09num[h-1]=num[h-1]/num[h];
\x09\x09\x09\x09for (g=h;;g++) //死循环
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09}
\x09\x09for (h=i+1;;h++) //死循环
\x09\x09{
\x09\x09\x09if (sign[h]=='+')
\x09\x09\x09{
\x09\x09\x09\x09num[h-1]=num[h-1]+num[h];
\x09\x09\x09\x09for (g=h;;g++)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09}
\x09\x09\x09}
if (sign[h]=='-')
\x09\x09\x09{
\x09\x09\x09\x09num[h-1]=num[h-1]-num[h];
\x09\x09\x09\x09for (g=h;;g++)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09num[g]=num[g+1];
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09}
\x09}
printf("%d \n",num[0]);
\x09r=getchar();
\x09return 0;
}