全部问题 > 当前问题

请问一下哪一步错了?

 {
 int i,j=0;
 for(i=0;a[i];i++)
 {
if(i!=n)
 b[j++]=a[i];
else
 b[j++]=a[i+1];
 }
  b[j]='\0';
}

一条早起的咸鱼 2017-2-22 16:08:22

共 3 个回答

最佳答案

qqq 2017-2-23 09:55:08

else语句不需要。

你想想,如果你输入的n是3,那当i=3时,你将a[3+1]也就是a[4]赋值给了数组b,然后执行i=4的循环,符合if条件,然后又将a[4]赋值给了数组b的下一个元素,那不是赋值了两个a[4]么?

所以说当i=n的时候你不管这个元素就行,直接进行下一个i赋值就行。

一条早起的咸鱼 2017-2-23 10:39:22

回复 qqq:改完后,输入world 4,结果变为worl,又是什么问题?

qqq 2017-2-23 14:11:48

回复 一条早起的咸鱼:这个4是指下标,不是第四个元素,所以输入4应该是删除第五个元素d,所以答案是对的。