2016-07-20 4 views
-3

okay ist, ist der untere mein Code in einem Wettbewerb, ich habe gerade angefangen, diese Dinge zu tun. also wenn ich das in xcode kompiliert habe, ist es in Ordnung, aber wenn ich es in Terminal kompiliert, gibt es als Fehler. Kann jemand bitte den Fehler erkennen?Laufzeitfehler im Terminal bekommen, während es in 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); 
} 
+9

Denken Sie nicht, es wäre eine gute Idee, uns genau zu sagen, was der Fehler ist? – kaylum

+5

Schritt 1: kompilieren mit '-Wall' und beheben Sie alle Warnungen. – user3386109

Antwort

0

auf den Code der Suche kann ich einige Fehler

  1. Überprüfen Sie die Rückgabewerte Ihrer scanf Anrufe sehen, wie sie return the number of values parsed sollte es jeder sein könnte 0
  2. ans nicht initialisiert werden garantiert Wert dort gelassen (ich würde raten, es in Xcode laufen oder ein Debugger würde es initialisiert haben)
  3. Setzen Sie geschweifte Klammern um Ihre bedingte Anweisung, Sie sind ein Anfang r und das Setzen geschweifter Klammern würde Ihnen helfen, Ihren eigenen Code zu lesen.
+0

Vielen Dank, es war die 2, die ich vermisst habe. Es hat jetzt funktioniert. –

Verwandte Themen