新时代卷王 @ 2021-10-12 10:52:02
#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;
}
本地可过,不知道有什么问题
by S00021 @ 2021-10-12 12:07:53
你这种菜鸡还在做红题,看我一秒一个神仙题