想知道这个代码错在哪里,还有数组的字符比较问题

问题遇到的现象和发生背景 ,

离谱啊,想知道这个代码错在哪里,还有数组的字符比较问题

#include 
#include 
int solution(int m, char (*str)[]){
    int result=0;
for(int i=0;iif((*str)[i]=="ak")
        result+=1;
    else if((*str)[i]=="m4a1")
        result+=1;
     else if((*str)[i]=="skr")
        result+=1;
}
    // TODO: 请在此编写代码

    return result;
}


int main() {

    int n;
    scanf("%d", &n);
    
    char (*str)[100];
    str = (char(*)[100])malloc(n * sizeof(char *));


    for (int i = 0; i < n; i++)
    {
        scanf("%s", str[i]);
    }
        
    int result = solution(n, str);

    printf("%d", result);

    return 0;
}

img

题目要求是:

img

img

字符串比较要用strcmp函数,不能用==
另外if((*str)[i]=="ak")也是错误写法,应该是 strcmp(str[i],"ak") == 0