pta 购物代码问题求解

img


代码如下

#include 
int main(void){
    double p1=0,p;
    int n,i,sum=0;
    char c,c1;
while(scanf("%d",&n)!=EOF){
    for(i=0;iscanf("%c %lf",&c,&p);
        sum+=p;
        if(p-p1>=0){   /*与上一次的价格比较,如果这次大于上次就会重新赋值p1 c1*/
            p1=p;
            c1=c;
        }
    }
    printf("%c %.1f",p1,sum/n);
    }
    return 0;
}

while(scanf("%d",&n)!=EOF){
下面加上
sum = 0;
p1=0;

printf("%c %.1f",p1,sum/n);
应该是
printf("%c %.1f",c1,sum/(float)n);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 看下这篇博客,也许你就懂了,链接:PTA输出倒三角格式错误
  • 除此之外, 这篇博客: pta函数题精选及解答中的 实现代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    char *search(char *s, char *t)
    {
        int lens=strlen(s);
        int lent=strlen(t);
        int i,j,k;
        int x=lens-lent;
        for (i=0; i<=x; i++)
        {
            for (j=0,k=i; j<lent; j++,k++)
            {
                if (s[k]!=t[j]) break;
            }
            if (j==lent)
                break;
        }
        if (i<=x) return s+i;
        else return NULL;
    }

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^