酷酷滴Q 2022-09-18 10:46 采纳率: 100%
浏览 29
已结题

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

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

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

#include <stdio.h>
#include <stdlib.h>
int solution(int m, char (*str)[]){
    int result=0;
for(int i=0;i<m;i++)
{
    if((*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

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-18 10:52
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日