qq_41938057 2021-03-09 23:00 采纳率: 0%
浏览 79

为什么可以编译出来,但是不能没有结果呢

  • 写回答

3条回答 默认 最新

  • qq_41938057 2021-03-10 13:33
    关注
    #include <string.h>
    #include <stdlib.h>
    #include "student.h"
    
    void intersection(int* A, int* B, int lenA, int lenB, int** C, int* lenC)
    {
    	/*
    	
        A表示数组A,B表示数组B,lenA表示数组A的长度,lenB表示数组
    	B的长度,C表示结果,lenC表示结果的长度
    	需要将交集存放在数组C中。
    	*/
    
    	/*********Begin********/
        int* hash_A = (int*)malloc(100*sizeof(int));
        int* hash_B = (int*)malloc(100*sizeof(int));
        memset(hash_A,0,100);
        memset(hash_B,0,100);
        for(int i=0;i<lenA;++i)
        {
            hash_A[A[i]]++;
        }
        for(int i=0;i<lenB;++i)
        {
            hash_B[B[i]]++;
        }
        int total=0;
        for(int i=0;i<100;++i)
        {
            if(hash_A[i]>0&&hash_B[i]>0)
                total++;
        }
        int* result=(int*)malloc(total*sizeof(int));
        int cur_index=0;
        for(int i=0;i<100;++i)
        {
            if(hash_A[i]>0&&hash_B[i]>0)
                result[cur_index++]=i;
        }
        *C=result;
        *lenC=total;
    	/*********End*********/
    }
    评论

报告相同问题?