导弹拦截问题这里为什么没过。

 #include<bits/stdc++.h>
 using namespace std;
 int main()
 {
  int a[1001],b[1001]={0};
  int n=1,t;
  int i=0;
  while(cin>>a[i])
  i++;
  for(int j=0;j<i;j++)
  if(a[j+1]>a[j])
  	n++;
  cout<<n<<endl;
return 0;
 }

 

你这代码有问题啊,应该是for(int j=0;i<i-1;j++)

不然当j=i-1时,a[j+1]就越界了

该加大括号的地方加一下,你这都很容易导致写错。加点打印信息。

 #include<bits/stdc++.h>
 using namespace std;
 int main()
 {
     int a[1000]={0};
     int n=1;
     int i=0;
     int d;
     cin>>d;
     while(d!=0 && i<1000)
     {
         a[i++] = d;
         cin>>d;
     }
     for(int j=0;j<i-1;j++)
         if(a[j+1]>a[j])
  	         n++;
     cout<<n<<endl;
     return 0;
 }

 

http://ybt.ssoier.cn:8088/problem_show.php?pid=1322

这是题目原文