首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

找出上面10行代码中的异常,诺西的英文面试题,求个权威的标准答案,多谢

2013-01-17 
找出下面10行代码中的错误,诺西的英文面试题,求个权威的标准答案,谢谢int CalculateVectorProduct(const s

找出下面10行代码中的错误,诺西的英文面试题,求个权威的标准答案,谢谢


int CalculateVectorProduct(const short*A,int size A,const short *B,int size B,int *Res )
{
int I;
Res =(int*)malloc(sizeA*sizeof(int));
if (sizeA!=sizeB)
 {
   return -1;
 }
for(i=0;
 {
   *Res =(*A++)*(*B++);
 }
}
c
[解决办法]
不是标准答案:

int CalculateVectorProduct(const short*A,int size A,const short *B,int size B,int *Res )//“size A”应该是一个整体,不应该加空格, “size B”同理 
{
int I;
Res =(int*)malloc(sizeA*sizeof(int));
if (sizeA!=sizeB)
 {
   return -1;
 }
for(i=0;//for循环不完整,而且i没有声明,上面那个是大写I跟i不一样
 {
   *Res =(*A++)*(*B++);
 }
}

这只是语法错误。要是看能否完成指定功能,错误就更多了。。。。
[解决办法]
这代码没法看啊。。全是错啊。。
[解决办法]
1.i没定义。因为大小写敏感。
2.for循环的条件写错了。
[解决办法]
代码全是错,楼主复制都不会
[解决办法]
看起来应该是算两个数组里对应的每个位置相同的元素相乘,并把乘积放在一段内存里

抛开语法问题,应该是你申请的这段用于记录结果的内存没有放入任何有意义的结果,因为每次相乘之后,没有把保存结果的指针往后移动一个位置.

应该在Res后面放个++
[解决办法]

int CalculateVectorProduct(const short *A, int sizeA,const short *B,int sizeB,int * Res )
{
  if (sizeA!=sizeB)
    return -1;

  for(int i=0; i<sizeA;i++)
  {
    Res[i] = (int)A[i]*(int)B[i];
  }

  return 0;
}

热点排行