大佬看看我哪里错了,有一个测试点一直过不了

姜汁热窝鸡蛋 2022-11-25 00:09:11

这是题目

 这是我的代码

#include<stdio.h>
int n;
int i;
int a[100010];
//一个用于临时存储
//一个用于储存最终结果 
int cache[100010];
int result[100010];
//两个数组对应的长度 
int c;
int r;
//计数器 
int count;

int main(){
	//初始化线性表 
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	
	/*//测试是否输入 
	for(i=0;i<=n;i++){
		printf("%d ",a[i]);
	}*/
	
	//初始化递增序列
	//递增序列第一个设为0
	//目的是为了如果第二个是递增序列的开始
	//这样直接跟第一个比较就行
	result[0]=0;
	cache[0]=0;
	c=0;
	r=0;
	count=0;
	
	while(count<n){
		//跟前一个数字比大小 
		if(a[count]>cache[c]){
			c++;
			cache[c]=a[count];
		}else{
			if(c>r){
				for(i=1;i<=c;i++){
					result[i]=cache[i];
				}
				r=c;
			}
			c=1;
			cache[c]=a[count];
		}
//	printf("%d测试\n",m);
		count++;
	}
	
	//输出 
	if(r!=0){
		//有多个子序列 
		for(i=1;i<r;i++){
			printf("%d ",result[i]);
		}
		printf("%d",result[r]);
	}else{
		//只有一个子序列 
		for(i=1;i<c;i++){
			printf("%d ",cache[i]);
		}
		printf("%d",cache[c]);
	}
	
	return 0;
}

这是测试结果

 求助大佬,谢谢谢谢

 

...全文
122 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2022-11-25
  • 打赏
  • 举报
回复

随机最大n ,是不是没有对输入的 n 进行限定检验啊,预定义的是 100010,输入比这更大的呢?

70,038

社区成员

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

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