大家都在看
C语言,帮忙差错并加注解
最佳答案
for(i=0;array[i]!='\0';i++) printf(%c,array[i]);
这一行出错:%c两边要加双引号。还有头文件stdio.h也要加双引号的。
/*请问这里让j>=i/2是为什么??*/
这个程序的目的,是实现字符串的本末倒置,工作流程是这要的:
假设你输入的是123456789这九个字符,那么for(j=i-1;j>=i/2;j--)
就依次实现'9'与'1'对换、'8'与'2'对换、'7'与'3'对换、'6'与'4'对换。
可见只需将后半部分的字符与前半部分的逐个对换就够了,所以循环字符串的
一半程度,即i/2就够了。
还有就是建议把for(i=0;array[i]!='\0';i++) printf(%c,array[i]);
这行换成 for(j=0;j
这样看起来会简洁一点。
附:修改后的完整代码如下
#include "stdio.h"
main()
{
char c,stmp,array[80];
int i=0,j;
while((c=getchar())!='\n')
array[i++]=c;
array[i]='\0';
for(j=i-1;j>=i/2;j--)/*请问这里让j>=i/2是为什么??*/
{
stmp=array[j];
array[j]=array[i-1-j];
array[i-1-j]=stmp;
}
for(j=0;j
printf('\n');
}
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。