求助
查看原帖
求助
542863
新时代卷王楼主2021/10/12 10:52
#include<bits/stdc++.h>
using namespace std;

int num;
int c,tc;//c用来储存当前字符,tc用来储存上一个数字
int i;//指向数组的位置
int arr[40001];//记录结果
int main()
{
    i = 1;//从1开始因为0用来储存层数
    tc = 48;//0的ASCII码
    while ((c = getchar()) != EOF)//逐个输入字符
    {
        
        if (c == tc)//与上一个输入的字符相同
        {
            num++;
        }
        else if (c == 10)//回车的ASCII码
        {
            arr[0]++;
        }
        else//与上一个不同则记录下一个数的出现次数
        {
            arr[i] = num;
            i++;
            tc = c;
            num = 1;
        }
        
        
    }
    arr[i] = num;//由于输入结束跳出循环而没有输入最后一个数字的出现次数,在此处补上
    for (int j = 0; j <= i; j++)//输出结果
    {
        cout << arr[j] << " ";
    }

    return 0;
}

本地可过,不知道有什么问题

2021/10/12 10:52
加载中...