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型输出~~~
题目中的两个问题分别对应第三行和第四行代码的错误,求大神教到底怎么改~~~~ 展开
{
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型输出~~~
题目中的两个问题分别对应第三行和第四行代码的错误,求大神教到底怎么改~~~~ 展开
2个回答
2013-11-29
展开全部
说实话,问题有点多。比如开始:
char a[20]=A;
char b[20]=B[20];
还是先强化一下这里的基本的语法吧
char a[20]=A;
char b[20]=B[20];
还是先强化一下这里的基本的语法吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询