C语言编程简单计算器

2025-03-24 02:31:58
推荐回答(2个)
回答(1):

#include 

int num[20]= {0};
char op[20]={0};

void calc(int cnt)
{
int i=0,m=0;
float resultf = 0;
for (i=0;i {
if (i==0)
{
resultf = num[i];
printf("%d",num[i]);
}else
{
//printf("here int\n");
switch (op[m++])
{
case '+':resultf+=num[i];
printf("+%d",num[i]);
break;
case '-':resultf-=num[i];
printf("-%d",num[i]);
break;
case '*':resultf*=num[i];
printf("*%d",num[i]);
break;
case '/':resultf/=num[i];
printf("/%d",num[i]);
break;

}
}
printf("=%f\n",resultf);
}

int main()
{
int i=0,k=0,L=0,n=0;
char str[100] = {0},cnum[20]={0};
gets(str);
for (i=0;str[i]!='\0';i++)
{
if (str[i]>='0' && str[i]<='9')
{
cnum[L++] = str[i];
}
if (str[i]=='+' ||str[i]=='-'|| str[i]=='*'
 || str[i]=='/' || str[i]=='=' )
{
cnum[L] = '\0';
L=0;
num [n++] = atoi(cnum);
op[k++] = str[i];
}
}

for (i=0;i {
printf("num[%d]=[%d]\n",i,num[i]);
}
for (i=0;i {
printf("op[%d]=[%c]\n",i,op[i]);
}

calc(n);

return 0;
}

回答(2):

如图