2012-05-08 5 views
-2

私は両方の配列に含まれている値とそれらの値の数を見つけるプログラムを作ったが、私のプログラムは動作しません:配列間の共通の値を見つけるにはまた、数を見つける必要があります

#include<stdio.h> 
#define SIZE 100 
void search(char arr1[10][10],char arr2[10][10]) 
    {  //int x = sizeof(arr1); int y = sizeof(arr2) 
     int j,k; 
      for(j=0;j<SIZE-1;j++) 
      { 
       for(k=0;k<SIZE-1;k++) 
       { int count = 0; 
        if(arr1[j][0] == arr2[k][0]) 
        { 
         count += 1; 
        } 

       } 
       return count; 
      printf("StudentID\t : BooksTanken\t\n"); 
        printf("%c \t\t %d \t\n",arr1[j][0],count); } 
    } 
int main() 
{ 
// char array1[2][1],array2[5][1]; 
    char array1[3][2]={ 
            {'ID1','srini'}, 
            {'ID2','Albie'}, 
            {'ID3','Kaasi'}}; 
      char array2[6][2]={ 
            {'ID1','OOPS'}, 
            {'ID2','STS'}, 
            {'ID1','STS'}, 
            {'ID1','CTC'}, 
            {'ID3','MAT'}, 
            {'ID2','MAT'}}; 
    printf("We're Begining the Comaprison Here !!\n\n"); 

    search(array1,array2); 
} 

助けてください。

+0

/*上記のiveから人名と彼が取った本の数を調べる*/ –

+1

あなたの質問のコードには非常に多くのコンパイルエラーがあり、簡潔な方法で答えにくいです。代わりに、投稿する前に基本的なCプログラミングを読んでから、あなたの質問を非常に具体的にしてください。例えば'ID1'はあなたがそれと思うものではない –

答えて

3

Cの文字列を読み上げる必要があります。これは文字列として表現する必要があります。 strcmp()は、手動ループではなく、比較を実行します。また、structについて学習して、裸の配列ではなく、そのような配列を使用することで、大きな利益を得ることができます。

+0

文字から文字列への変換を行っていますが、コンパイラはそれを認識しません –

3

スニペット:

#define SIZE 100 
void search(char arr1[10][10],char arr2[10][10]) 
.... 
      for(j=0;j<SIZE-1;j++) 

.... 
char array1[3][2]={ 

あなたは矛盾を見ていますか? 100、10、3

EDITHは:

arr[0] = 0; 
arr[1] = 0; 
arr[2] = 0; 
arr[3] = 0; 
arr[4] = 0; 
arr[5] = 0; 
arr[6] = 0; 
arr[7] = 0; 

... ARR [98] = 0:

for (i < 0; i < SIZE-1; i++) { 
    arr[i] = 0; 
} 

がにコンパイラによって拡張することができる:あなたの問題を表示します;

あなたの配列には、arr [0]、arr [1]、arr [2]に割り当てられたメモリのみがあります。だから参照するARR [3]は悪いことかもしれません...

EDITH 2:質問:なぜ「SIZE-1」ですか?

+0

ピーターと同意しますが、確かに、配列のサイズが大きいプログラムが機能しなければなりません。 –

+0

hmmm、私は懐疑的にさせてください:あなたは3by 2要素の配列を持っていますが、この配列の100以上の要素を繰り返します。これはエラーにつながるだけです。 –

関連する問題