帮忙看下哪里不对 急急急!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/14 06:14:18
#include <stdio.h>
#include<stdlib.h>
void main()
{int a=1;
int b=1;
float *num;
float *op;
printf("请输入运算表达式:\n例如5+3*2-1= 输入等号后回车\n");

num=malloc(a*sizeof(float));
op=malloc(b*sizeof(char));
do
{
scanf("%f",num+a-1);
scanf("%f",num+b-1);
a++;
b++;
}
while (*(op+b-2)!='=');
void yunsuan(op,b,num);
}
void yunsuan(char *op,int b,float *num)
{int i,j,k;
int f=0;
int add=0;
do
{
add=1;
for(k=0;k<b-1;k++)
{
if((*(op+k)=='*')||(*(op+k)=='/'))
add=0;
}
for(i=0;i<b;i++)
{
switch(*(op+i))
{
case '*':
if((*(op+i-1)!='*')&&(*(op+i-1)!='/'))
{
(*(num+i+1))=(*(num+i))*(*(num+i+1));
*(op+i)='+';
*(num+i)=0;
}
break;
cas

#include <stdio.h>
#include<stdlib.h>

void yunsuan(char *op,int b,float *num)
{int i,j,k;
int f=0;
int add=0;
do
{
add=1;
for(k=0;k<b-1;k++)
{
if((*(op+k)=='*')||(*(op+k)=='/'))
add=0;
}
for(i=0;i<b;i++)
{
switch(*(op+i))
{
case '*':
if((*(op+i-1)!='*')&&(*(op+i-1)!='/'))
{
(*(num+i+1))=(*(num+i))*(*(num+i+1));
*(op+i)='+';
*(num+i)=0;
}
break;
case '/':
if((*(op+i-1)!='*')&&(*(op+i-1)!='/'))
{
(*(num+i+1))=(*(num+i))/(*(num+i+1));
*(op+i)='+';
*(num+i)=0;
}
break;
case '+':
if(add)
{
(*(num+i+1))=(*(num+i))+(*(num+i+1));
*(op+i)='+';
*(num+i)=0;
}
break;
case