在终端中获得运行时错误,而在xcode中没问题

时间:2016-07-20 07:04:11

标签: c clang

以下是我在比赛中的代码,我刚刚开始做这些事情。所以当我在xcode中编译它时它很好但是当我在终端编译它时它给出了错误。有人可以发现错误。

#include<stdio.h>
int main()
{
    int n, i,count=0,ans,prev=0;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]==0)
            ans++;
        else if(a[i]==3)
        {
            if(i>=1)
            {if(a[i-1]==1||a[i-1]==2)
                prev=a[i-1];
            }
            count++;
        }
        else if(a[i]==2||a[i]==1)
        {if(i!=0){
            if(a[i]!=prev&&((count-1)%2)==0)
                ans++;
            if(a[i]==prev&&(count%2)==0)
                ans++;
            prev=a[i];
            count=0;}
        }
    }   
    printf("%d",ans);
}

1 个答案:

答案 0 :(得分:0)

查看代码我可以看到一些错误

  1. 检查scanf来电的返回值return the number of values parsed
  2. ans无法保证初始化为0它可能是任何值(我猜想在Xcode中运行它或者调试器会初始化它)
  3. 在条件语句周围加上花括号,你是初学者,使用花括号可以帮助你阅读自己的代码。