nine_forever 2020-10-27 23:43 采纳率: 0%
浏览 50

不懂为什么一直是WA呀,有大神能救救小菜鸡吗?

图片说明
图片说明

题目如上,就是根据字母代表的值和其输入的位置计算出和,虽然写的非常非常麻烦(别骂了别骂了),但是真的不知道错在哪呀,救救孩子吧

#include<stdio.h>
#include<string.h>
void cal(char* p);
int main()
{
    int i = 0;
    char ch;
    char str[100];
    do{
        scanf("%c",&ch);
        if(ch != '\n')
        {
            str[i] = ch;
            i++;
        }
        else
        {
            str[i] = ch;
            i = 0;
            cal(str);
        }
    }while(ch != '#');
    return 0;
}

void cal(char* p)
{
    int sum = 0; 
    int counter = 1;
    while(*p != '\n')
    {
        if(*p != ' ' && *p - 'A' < 26 && *p - 'A' >= 0)
        {
            sum = sum + (*p - 'A' + 1) * counter;
            p++;
            counter++;
        }
        else
        {
            p++;
            counter++;
        }
    } 
    printf("%d\n",sum);
}
  • 写回答

1条回答 默认 最新

  • 小学狗喵喵叫 2020-10-28 09:34
    关注

    str的宽度太小了,要求1-255个字符

    评论

报告相同问题?