A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dream静 中级黑马   /  2014-11-3 21:55  /  1065 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目大致是找出输出的字符串中得A B C D出现的次数,并且按出现次数的从大到小一次输入该字母和出现次数
我得代码是
#include <stdio.h>
void compare4(int s[]);
void charNumprintf(int k[],int x[]);

int main() {
    int charNumCount[4]={0};
   
    int charNumcopy[4]={0};
   
    char *str;
   
    scanf("%s",str);
   
    char *p =str;
   
    while (*p !='\n') {
        switch (*p) {
            case 'A':
                charNumCount[0]++;
                break;
            case 'B':
                charNumCount[1]++;
                break;
            case 'C':
                charNumCount[2]++;
            case 'D':
                charNumCount[3]++;
                break;
            default:
                break;
        }
        p++;
    }
    for (int i = 0; i < 4; i++) {
        charNumcopy[i] = charNumCount[i];
    }
    compare4(charNumCount);
   
    charNumprintf(charNumcopy, charNumCount);
   
    return 0;
}
//比较并且交换数值的函数;
void comprae4(int s[])
{
    int temp;
    for (int i=0; i<4; i++) {
        for(int j=1;j<4;j++)
        {
            if (s[j]>s[i])
            {
                temp = s[i];
                s[i] = s[j];
                s[j] = temp;
            }
        }
    }
}

void charNumprintf(int k[],int x[])
{
    for (int i =0; i < 4;i++) {
        for (int j =0; j < 4; j++) {
            if(x[i] == k[j])
            {
                printf("字母%c出现的次数是%d\n",'A'+j,x[i]);
            }
        }
    }  
}

可是为什么会报错这个东西:
Undefined symbols for architecture x86_64:
  "_compare4", referenced from:
      _main in ceshi-d1d433.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请问这是什么意思啊?

5 个回复

倒序浏览
没有高手帮下忙么?
回复 使用道具 举报
这么长又没有什么太难技术的代码,没人愿意看的,自己边注释边找错,不要做伸手党
回复 使用道具 举报
LZ我没有太仔细看,可能说的不对,只看的这句void compare4(int s[]);
我觉得如果LZ是想要把一个数组传入函数中的话,这句就会将数组变为一个指针,那你后面的所有想法都实现不了。
回复 使用道具 举报
x65396731 发表于 2014-11-4 13:33
LZ我没有太仔细看,可能说的不对,只看的这句void compare4(int s[]);
我觉得如果LZ是想要把一个数组传入函 ...

为什么啊!还有如果我像达到这种效果该怎么办呢
回复 使用道具 举报
求人来给解答啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马