计算没有问题为啥全错啊?
查看原帖
计算没有问题为啥全错啊?
644089
creeper_666楼主2024/9/2 16:40
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<math.h>
#include<iso646.h>
#include<stdlib.h>

int main()
{
    int flag[60000]={0}, s=0;
    char fo[60000]={'0'};
    int l=-1,r=-1,num=0;
    gets(fo);
    int x= strlen(fo);
    fo[x]='+'; 
    for (int i=0; i<=x; i++)
    {
        if (fo[i]=='+'||fo[i]=='-')
        {
            flag[i]=1;
        }
    }
    for (int i=0; i<=x; i++)
    {
        if(flag[i]==0&&l==-1)
        {
            l=i;
        }
        else if (flag[i]==1&&r==-1)
        {
            r=i-1;
            for (int a=l; a<=r; a++)
                num+=(fo[a]-'0')*pow(10, r-a);
            if (fo[l-1]=='+'||l==0)
            {
                s+=num;
            }
            else if (fo[l-1]=='-')
            {
                s-=num;
            }
            l=-1; r=-1; num=0;
        }
    }
    printf("%d", s);
    //system("pause");
    return 0;
}
2024/9/2 16:40
加载中...