求助这程序错哪了,一个点也过不了
查看原帖
求助这程序错哪了,一个点也过不了
22025
御天楼主2020/6/19 10:56

把第一个点下载出来了,自己试也没问题,但一评测就WA。。。

#include<stdio.h>

int main()
{
    char c[10000];
    char ch;
    int a[10000];
    a[0]=1;
    int x,i,j,k,l=1,s=0,t=0;
    float ans,ss,tt;
    int p();
    scanf("%c",&c[1]);
    while(c[l]!=10)
    {
        l++;scanf("%c",&c[l]);
        if(c[l]==43)a[l]=1;
        if(c[l]==45)a[l]=2;
        if(c[l]>45)a[l]=0;
        if(c[l]==61){x=l;a[x]=1;}
        if(c[l]>61)a[l]=7;
    }
    i=1;while(a[i]!=7)i++;ch=c[i];
    for(i=1;i<x;i++)if(a[i]==7)
    {
        j=i-1;while(a[j]==0)j--;
        for(k=i-1;k>j;k--){if(a[j]==1)s+=p(10,i-k-1)*(c[k]-48);else s-=p(10,i-k-1)*(c[k]-48);a[k]=9;}
        a[i]=9;a[j]=9;
    }
    for(i=x-1;i>0;i--)if(a[i]==0)
    {
        j=i;while(a[j]==0)j--;
        for(k=i;k>j;k--){if(a[j]==1)t-=p(10,i-k)*(c[k]-48);else t+=p(10,i-k)*(c[k]-48);a[k]=9;}
        a[i]=9;a[j]=9;
    }
    for(i=x+1;i<l;i++)if(a[i]==7)
    {
        j=i-1;while(a[j]==0)j--;
        for(k=i-1;k>j;k--){if(a[j]==1)s-=p(10,i-k-1)*(c[k]-48);else s+=p(10,i-k-1)*(c[k]-48);a[k]=9;}
        a[i]=9;a[j]=9;
    }
    for(i=l-1;i>x;i--)if(a[i]==0)
    {
        j=i;while(a[j]==0)j--;
        for(k=i;k>j;k--){if(a[j]==1)t+=p(10,i-k)*(c[k]-48);else t-=p(10,i-k)*(c[k]-48);a[k]=9;}
        a[i]=9;a[j]=9;
    }
    tt=t;ss=s;ans=tt/ss;
    printf("%c=%.3lf\n",ch,ans);
return 0;
}

int p(int x,int y)
{
    int n=1,i;
    for(i=0;i<y;i++)n*=x;
    return(n);
}

2020/6/19 10:56
加载中...