qq_51590660 2021-06-22 10:59 采纳率: 100%
浏览 18
已结题

PTA甲1007 第六个点怎么都不对

#include<bits/stdc++.h>
using namespace std;

int main() {

	int k;
	cin >> k;
	int s[100001];
	int max = 0;
	int tmp = 0;
	int first = 0;
	int last = 0;
	int n = 0;
	int flag = 0;
	for(int i = 0; i < k; i++) {
		cin >> s[i];
		tmp += s[i];
		if(s[i] >= 0) {
			flag = 1;
		}
		if(tmp > max) {
			max = tmp;
			last = i;
		}

		if(tmp < 0) {
			tmp = 0;
		}
	}
	printf("%d ",max);
	int t = max;
	while(max != 0) {
		max -= s[last - n];
		n++;
	}
	while(1) {
		if(s[last - n] != 0) {
			break;
		}
		n++;
	}
	max = t;
	if(max != 0) {
		printf("%d ",s[last - n + 1]);
		printf("%d\n",s[last]);
	} else if(max == 0 && flag == 0) {
		printf("%d ",s[0]);
		printf("%d\n",s[k - 1]);
	} else {
		printf("0 ");
		printf("0");
		printf("\n");
	}
	return 0;
}
/*

1.负数和0 :输出 0 0 0
2.已知报错 
5
0 0 5 0 -1
理想输出
5 0 0
实际
5 0 5 
 */
  • 写回答

2条回答 默认 最新

  • 老衲要还俗娶婆娘 2021-06-22 15:47
    关注

    if(tmp >= max)       //第21行

    改一下就可以解决你代码下面的用例,其他类似的也可以解决

    原因的话,那就只针对0这种特殊的情况来讲的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日

悬赏问题

  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题