大佬们,可以请路过的大佬帮忙改正一下嘛

P1567 统计天数

@[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


上一页 |