@[81179332_](/user/53994) 开小了嘛,我试试开大点
by missrh @ 2020-02-10 14:47:38
@[missrh](/user/267894) 数组需要开大一点,做题时要看数据范围
by Eon_Sky @ 2020-02-10 14:47:39
@[键盘真香](/user/239075) 好的谢谢,我试试呢
by missrh @ 2020-02-10 14:48:01
@[missrh](/user/267894) 10的6次方(至少)
by Eon_Sky @ 2020-02-10 14:48:07
@[81179332_](/user/53994) 谢谢大佬,是开小了,谢谢,之前在编译器开太大 运行不了,就不敢开大
by missrh @ 2020-02-10 14:49:28
@[键盘真香](/user/239075) 谢谢大佬,确实是小了,之前在编译器开太大 运行不了,就不敢开大
by missrh @ 2020-02-10 14:49:45
@[键盘真香](/user/239075) 感谢(膜拜( *^-^)ρ(^0^* ))
by missrh @ 2020-02-10 14:50:26
````
//这是被我改过的代码,应该最大的错误就是你数组开太大了,应该用输入的n来作为声明数组的依据
#include<iostream>
using namespace std;
int main()
{
int i;
int n,max,count = 1, c = 0;// a[200005], cnt[200005] = { 0 },
cin >> n;
int a[n],cnt[n];
for ( i = 0; i < n; i++)//输入
cin >> a[i];
for ( i = 0; i < n ; i++)//找寻并且记录所有气温上升天数
{
// if (i + 1 == n )
// {
// if (a[i + 1] > a[i])
// {
// count++;
// cnt[c] = count;
// }
// else cnt[c] = count;
// }
if (a[i + 1] > a[i]) count++;
else
{
cnt[c] = count;
c++;
count = 1;
}
}
for (i = 0; i < c; i++)//此处的n被我改成了c
{
if (cnt[i+1] == 0 ) break;
else if (cnt[i + 1] > cnt[i]) max = cnt[i + 1];
else if (cnt[i + 1] < cnt[i])
{
max = cnt[i];
cnt[i + 1] = max;
}
}
cout << max; //输出
return 0;
}
````
by 故魇 @ 2020-02-10 16:51:59
######其实为什么不在循环时就找到最长的那个数就行了,不用执行多次循环
````
for(i=0;i<N;i++)
{
if(i==0)
cin>>a[i];
if(i!=0)
{
cin>>a[i];
if(a[i]>a[i-1] flag++;
else
{
if(day<flag+1)
{
day=flag+1;
flag=0;
}
else
flag=0;
}
}
}
by 故魇 @ 2020-02-10 17:04:41