33,311
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
#define N 100
int fun_calculation(int para1, char para2, char operat)
{
int ret = 0;
switch(operat)
{
case '+':
ret = para1 + (para2 - '0');
break;
case '-':
ret = para1 - (para2 - '0');
break;
case '*':
ret = para1 * (para2 - '0');
break;
case '/':
ret = para1 / (para2 - '0');
break;
default:
break;
}
return ret;
}
void main()
{
int i,j,l,result,Flag = 0;
int count1 = 0;//for initilize result
int count2 = 0;//continue operator count
char a[N];
char b[N/2];
printf("input expression:\n");
gets(a);
l = strlen(a);
j = 0;
//get all valid data
for(i = 0;i < l; i++)
{
if(a[i] != ' ')
b[j++] = a[i];
}
//look for operator
for(i = 0;i < j;i++)
{
if((b[i] < '0') || (b[i] > '9'))
{
Flag = 1;
if(Flag == 1)
count2++;
//initilize result
count1++;
if(count1 == 1)
{
result = b[i-1] - '0';
}
result = fun_calculation(result,b[i-count2*2],b[i]);
}
else
{
Flag = 0;
count2 = 0;
}
}
printf("result :%d\n",result);
}
#include<stdio.h>
#include<string.h>
#define N 100
int fun_calculation(int para1, char para2, char operat)
{
int ret = 0;
switch(operat)
{
case '+':
ret = para1 + (para2 - '0');
break;
case '-':
ret = para1 - (para2 - '0');
break;
case '*':
ret = para1 * (para2 - '0');
break;
case '/':
ret = para1 / (para2 - '0');
break;
default:
break;
}
return ret;
}
void main()
{
int i,j,l,result,Flag = 0;
int count1 = 0;//for initilize result
int count2 = 0;//continue operator count
char a[N];
char b[N/2];
printf("input expression:\n");
gets(a);
l = strlen(a);
j = 0;
//get all valid data
for(i = 0;i < l; i++)
{
if(a[i] != ' ')
b[j++] = a[i];
}
//look for operator
for(i = 0;i < j;i++)
{
if((b[i] < '0') || (b[i] > '9'))
{
Flag = 1;
if(Flag == 1)
count2++;
//initilize result
count1++;
if(count1 == 1)
{
result = b[i-1] - '0';
result = fun_calculation(result,b[i-count2-1],b[i]);
}
else
{
if(count2 > 1)
result = fun_calculation(result,b[i-count2*2],b[i]);
else
result = fun_calculation(result,b[i-1],b[i]);
}
}
else
{
Flag = 0;
count2 = 0;
}
}
printf("result :%d\n",result);
}
#include<stdio.h>
#include<string.h>
#define N 100
void main()
{
int i,j,l,result,temp;
char a[N];
char b[N/2];
printf("input expression:\n");
gets(a);
l = strlen(a);
j = 0;
//get all valid data
for(i = 0;i < l; i++)
{
if(a[i] != ' ')
b[j++] = a[i];
}
//look for operator
for(i = 0;i < j;i++)
{
if((b[i] < '0') || (b[i] > '9'))
break;
}
//start calculation
temp = i;
result = b[temp-1] - '0';
for(i = 0; i < (temp - 1); i++)
{
switch(b[temp+i])
{
case '+':
result = result + (b[temp - i -2] - '0');
break;
case '-':
result = result - (b[temp - i -2] - '0');
break;
case '*':
result = result * (b[temp - i -2] - '0');
break;
case '/':
result = result / (b[temp - i -2] - '0');
break;
default:
break;
}
}
printf("result :%d\n",result);
}