Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 要查找数组之间的公共值,还需要查找计数_C_Arrays_String - Fatal编程技术网

C 要查找数组之间的公共值,还需要查找计数

C 要查找数组之间的公共值,还需要查找计数,c,arrays,string,C,Arrays,String,我制作了一个程序,可以查找两个数组中包含的值以及这些值的计数,但我的程序不起作用: #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++)

我制作了一个程序,可以查找两个数组中包含的值以及这些值的计数,但我的程序不起作用:

#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);
}
#包括
#定义大小100
无效搜索(char arr1[10][10],char arr2[10][10])
{//int x=sizeof(arr1);int y=sizeof(arr2)
int j,k;

对于(j=0;j您需要阅读C中的字符串。这应该表示为字符串,并且您应该使用例如
strcmp()
来进行比较,而不是手动循环。学习
struct
s,并使用这样的数组而不是简单的字符数组,您也会受益匪浅。

代码片段:

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

....
char  array1[3][2]={
。。。 arr[98]=0

您的阵列仅为arr[0]、arr[1]、arr[2]分配了内存;因此引用arr[3]可能是一件坏事


伊迪丝2:问题:为什么“大小1”?

/*从上面我找到了这个人的名字和他读了多少本书?*/你问题中的代码有很多编译错误,很难用简洁的方式回答。你应该在发帖之前先阅读基本的C编程,然后尽量让你的问题非常具体。例如,“ID1”i这并不是你认为的那样,即使我正在从char转换为string编译器也不承认这一点,peter,我同意你的看法,但我肯定声明了大小为100,以备将来的情况下,如果数组的大小可能更大,程序必须运行。嗯,让我怀疑一下:你有一个由3×2个元素组成的数组,但在这个数组中迭代100个元素这只会导致出错。
for (i < 0; i < SIZE-1; i++) {
   arr[i] = 0;
}
arr[0] = 0;
arr[1] = 0;
arr[2] = 0;
arr[3] = 0;
arr[4] = 0;
arr[5] = 0;
arr[6] = 0;
arr[7] = 0;