2016-11-09 8 views
-2

ポインタで偶数を見つけようとしています。arr[100];ポインタを使用しています。ポインタを使って配列内の偶数を検索する

int main() 
{ 

    int ar[100],*i,*j,n=0,even,*peven=&even; 
    scanf("%d",&n); 
    for(i=ar;i<ar+n;i++) 
    { 
     scanf("%d",ar+n); 
    } 
    for(i=ar;i<ar+n;i++) 
    { 
     *peven=0; 
     for(j=ar;j<ar+n;j++) 
     { 
      if((*ar+n)%2==0) 
      { 
       (*peven)++; 
      } 
     } 
     printf("%d",*peven); 

    } 

    return 0; 
} 
+0

サンプル入力と予想される出力を投稿してください。 – Carcigenicate

+0

配列へのインデックスに基づいて配列をループすることをお勧めします。 for(int index = 0; index yano

+0

' if(* ar + n)%2 == 0) 'は' if(*(ar + n)%2 == 0) 'でなければなりません。何らかの理由で添字の代わりにポインタ演算を使用する理由があると仮定しています(割り当て要件かもしれません)。 –

答えて

0

ar+nは、arr[n]へのポインタです。これはあなたのforループの限界に当てはまりますが、ループ本体の内部で使用しないでください。ループでは、iは配列の現在の要素へのポインタです。

偶数要素を見つけるときにネストされたループの理由もありません。

for(i=ar;i<ar+n;i++) 
{ 
    scanf("%d",i); 
} 
*peven = 0; 
for(i=ar;i<ar+n;i++) 
{ 
    if (*i % 2 == 0) 
    { 
     (*peven)++; 
    } 
} 
printf("%d",*peven); 
関連する問題