C语言,帮忙差错并加注解

2025-02-19 14:39:2095 次浏览

最佳答案

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');

}

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。