「int value = ar [n]」のようなインデックスから配列のintを取得する場合、私は常に大きな整数を取得します。それは最大のサイズを表しています(私は思う)。Hackerrank Objective-c intポインターが正しくない値
入力(stdin)
4
3 2 1 3
コード:
int main(int argc, const char * argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int n;
scanf("%i",&n);
int ar[n];
int counter = 0;
int tempValue;
for(int ar_i = 0; ar_i < n; ar_i++){
int value = ar[ar_i];
if(tempValue < ar[ar_i]){
counter = 1;
tempValue = ar[ar_i];
printf("%i", tempValue);
}else if(tempValue == value){
counter = counter + 1;
}
}
[pool drain];
return 0;
}
のprintf( "%I"、tempValue)。たとえば、 "1598483120"という出力が得られます。 任意のオブジェクトをキャストして(int)助けません。
私は何か間違っていましたか?または何が起こっている?
「tempValue」は初期化されていません。 –
'int ar [n];'は初期化されていないローカル配列です。 –
私のコメントはCタグのものでした。質問のタイトルに "Objective-c"と書かれているのはなぜですか? 'NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];'はCコードで何をしますか? –