c++编程解决问题,麻烦注释一下代码,搞不懂啥意思?

题目描述
这是人类历史上最奇怪的一天,空气中充满了冷风、热风和暖风!每个风用一个数字表示其温度,大于35的为热风,小于15的为冷风,除此之外为暖风。小李就在这天骑车上路,被这些奇怪的风各种乱吹!

如果,小李刚被冷风吹又被热风吹或者小李刚被热风吹又被冷风吹,小李会发出“啊”的一声,并且累积一次不舒服状态。

如果小李连续三次被暖风吹,会治愈之前累积的一次不舒服状态。

请计算输出小李一共发出了几声“啊”,以及小李最终累积了多少次不舒服状态。

输入
一行若干个非负整数(不超过60),表示连续遇到的每个风的温度数值。最后一个是负整数,表示结束,不参与题意计算。这一行的所有数值个数不超过100。

输出
两个非负整数,表示答案。

样例输入
15 30 12 36 11 20 19 17 16 18 38 -1
样例输出
2 1
提示
样例解释:

15 30 12 36(啊) 11 (啊) 20 19 17(愈) 16 18 38 -1
我的代码,求改错
#include
using namespace std;
int main(){
int a[100],no=0,i=0,aa=0,uc=0;
do{
cin>>a[i];
if(a[i] if((a[i]35)||(a[i]>35&&a[i-1]=1) aa++,uc++;
if((a[i]>=15&&a[i]<=35)&&(a[i-1]>=15&&a[i-1]<=35)&&(a[i-2]>=15&&a[i-2]<=35)&&(uc>0&&i>=2)&&(i-1!=no&&i-2!=no)) uc--,no=i;
i++;
}while(a[i]>=0);
cout<<aa<<" "<<uc;
return 0;
}

int main()
{
    int a[100], i = 0, aa = 0, uc = 0, nuanfeng=0;
    while (true) {
        cin >> a[i];
        if (a[i++] < 0)
            break;
    };
    i = 1;
    while (a[i] > 0)
    {
        if (a[i] > 35 && a[i - 1] < 15 || a[i] < 15 && a[i - 1]>35)
        {
            aa++;
            uc++;
        }
        if (a[i] > 35 || a[i] < 15)
        {
            nuanfeng = 0;
        }
        else if (a[i] >= 15 && a[i] <= 35)
        {
            nuanfeng++;
        }
        if (nuanfeng >= 3 && uc>0)
        {
            uc--;
            nuanfeng = 0;
        }
        i++;
    }
    cout << aa << " " << uc;
    return 0;
    }