求助,这两个代码只有s[n+1]与s[1001]的区别,为什么结果不同
  • 板块学术版
  • 楼主wszlxa
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/1/27 15:01
  • 上次更新2023/11/5 04:18:56
查看原帖
求助,这两个代码只有s[n+1]与s[1001]的区别,为什么结果不同
428886
wszlxa楼主2021/1/27 15:01
#include<stdio.h>
int main(){
	int n,i,j,m,t,b,d=0,e=0,sum=0,a;
	scanf("%d",&n);
	int s[1001];
	for(i=1;i<=n;i++)
	{scanf("%d",&m);
	 for(j=1,a=1;j<=m;j++)
	 {scanf("%d",&t);
	  if(j==1){b=t;continue;}
	  if(t<=0)b+=t;
	  if(t>0)
	  {if(t<b)
	  {if(a){d++;a--;}
	   s[i]=1;b=t;}
	  }
	 }sum+=b;}
	for(i=1;i<=n;i++)
	{if(i<=n-2)if(s[i]&&s[i+1]&&s[i+2])e++;}
	 if(s[n-1]&&s[n]&&s[1])e++;
	 if(s[n]&&s[2]&&s[1])e++;
	printf("%d %d %d",sum,d,e);
	return 0;
}

#include<stdio.h>
int main(){
	int n,i,j,m,t,b,d=0,e=0,sum=0,a;
	scanf("%d",&n);
	int s[n+1];
	for(i=1;i<=n;i++)
	{scanf("%d",&m);
	 for(j=1,a=1;j<=m;j++)
	 {scanf("%d",&t);
	  if(j==1){b=t;continue;}
	  if(t<=0)b+=t;
	  if(t>0)
	  {if(t<b)
	  {if(a){d++;a--;}
	   s[i]=1;b=t;}
	  }
	 }sum+=b;}
	for(i=1;i<=n;i++)
	{if(i<=n-2)if(s[i]&&s[i+1]&&s[i+2])e++;}
	 if(s[n-1]&&s[n]&&s[1])e++;
	 if(s[n]&&s[2]&&s[1])e++;
	printf("%d %d %d",sum,d,e);
	return 0;
}

2021/1/27 15:01
加载中...