默享-唯静美 2019-07-21 15:32 采纳率: 33.3%
浏览 213
已采纳

一个C语言编程,希望大家帮我看看我的代码哪里有问题?

给出一个由O和X组成的串,长度为1~80,统计得分,每个O的得分为目前连续出现的O的个数,X的得分为0,例如OOXXO的得分为1+2+0+0+1.

我的代码如下,不知道哪里有问题

#include<stdlib.h>
#include<string.h>
char s[85];
int main()
{
    int score = 0;
    scanf_s("%s", s, 85);
    for (int i = 0;s[i];i++)
    {
        if (s[i] == 'X')score += 0;
        if (s[i] == 'O')
        {
            int temp = 1;
            if (i == 0)score += 0;
            else
            {
                while (i > 0)
                {
                    if (s[i - 1] == 'O')temp++;
                    else break;
                    i--;
                }
                score += temp;
            }
        }
    }
    printf("%d\n", score);
    system("pause");
    return 0;
}











  • 写回答

2条回答 默认 最新

  • HLihan 2019-07-21 16:32
    关注

    //有一些小问题,改了一下
    #include"stdlib.h"
    #include"string.h"
    #include"stdio.h"
    int main()
    {
    char s[85];
    int score = 0,x;
    scanf("%s",&s);
    for (int i = 0;s[i];i++)
    {

        if (s[i] == 'X')
        score += 0;
        if (s[i] == 'O')
        {
            int temp = 1;
            if (i == 0)score += 1;//这里要改为score+=1;否则当O处于第一个的时候会出统计错误问题
            else
            {
                x=i;//主要问题在于循环查找O的时候外部‘i'与内部i发生冲突
                while (x > 0)
                {
                    if (s[x - 1] == 'O')temp++;
                    else break; 
                    x--;
                }
                score += temp;
            }
        }
    }
    printf("%d\n", score);
        system("pause");
    return 0;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!