error C2440: “初始化”: 无法从“char”转换为“char [20]” error C2109: 下标要求数组或指针类型 5

longchange(charA,charB,longC){chara[20]=A;charb[20]=B[20];longc=C;inti,result=0,k=1,j... long change(char A,char B,long C)

{
char a[20]=A;
char b[20]=B[20];
long c=C;
int i,result = 0,k = 1,j = 0;
gets(a);
for(i = strlen(a)-1;i >= 0;i --)
{
if(a[i] == '1') result += 1 << (k-1); //如果是1,用1*位权
if(k == 4 || i == 0) //每四位计算一次结果(result)。
//如果到了最高位(i==0)不足四位(比如100 0000),也计算
{
switch(result)
{
case 10: b[j++]='A';break; //大于等于十转化成字母
case 11: b[j++]='B';break;
case 12: b[j++]='C';break;
case 13: b[j++]='D';break;
case 14: b[j++]='E';break;
case 15: b[j++]='F';break;
default: b[j++]=result + '0';break;
}
result = 0; //结果清零
k = 0; //表示位权的K清零
}
k ++; // 初始位权为1
}
b[j] = '\0';
for(i = strlen(b)-1;i >= 0;i --)
c=atol(b);
return c;
}
代码是把二进制字符串转换为十六进制字符串然后以long型输出~~~
题目中的两个问题分别对应第三行和第四行代码的错误,求大神教到底怎么改~~~~
展开
 我来答
tbyang2011
2013-11-29 · TA获得超过681个赞
知道小有建树答主
回答量:778
采纳率:50%
帮助的人:343万
展开全部
change的参数A,B都是 char 类型, 而不是char*, 也就是说不是由 char 构成的串。
你的代码错误较多,而且是基础知识方面的错误, 建议耐心阅读基础教程,学习几个例程,再来解决此类问题。
匿名用户
2013-11-29
展开全部
说实话,问题有点多。比如开始:
char a[20]=A;
char b[20]=B[20];
还是先强化一下这里的基本的语法吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式