求折点个数!运行老是自动终止,求助求助!谢谢!!

Miqiuha 2016-08-25 11:10:33
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
getchar();
int *aa=new int[n];
int i,count=0;
for(i=0;i++;i<n)
cin>>aa[i];
for(i=1;i++;i<n-1){
if(aa[i]>aa[i-1]&&aa[i]<aa[i-1])
count++;
}
delete []aa;
cout<<count;
return 0;
}
给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。
给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。
  为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1≠ai。注意,如果两天不相邻,销售量可能相同。

输入格式
  输入的第一行包含一个整数n。
  第二行包含n个整数,用空格分隔,分别表示a1, a2, …, an。
输出格式
  输出一个整数,表示折点出现的数量。
样例输入
7
5 4 1 2 3 6 4
样例输出
2
...全文
225 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-08-26
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
小灸舞 版主 2016-08-26
  • 打赏
  • 举报
回复
1.getchar()可以去掉
2.for的第二部分和第三部分你搞错顺序了
3.if判断也有问题,应该是if (aa[i]>aa[i - 1] && aa[i]<aa[i + 1])

#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
//getchar();
int *aa = new int[n];
int i, count = 0;
for (i = 0; i < n; i++)
cin >> aa[i];
for (i = 1; i<n - 1; i++){
if (aa[i]>aa[i - 1] && aa[i]<aa[i + 1])
count++;
}
delete[]aa;
cout << count << endl;
return 0;
}
idzeta 2016-08-26
  • 打赏
  • 举报
回复
for语句的格式……
for (/*初始化*/; /*条件*/; /*循环末子句*/) { /* ... */ }
  • 打赏
  • 举报
回复
你的for(i=0;i<n;i++)你写反了 你要是单步调式你就明白了为什么只能这样写

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧