C语言的的一个简单的子函数问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:12:28
int i,j;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]=='a') xx[i][j]='z';
else if(xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]-=1;

这个程序对否?

还是需要在j的for循环之前 加{}?

快来解答啊。。。。。。
把每一行每一个字母都变成字母表的上一个

答案加的,但是不加貌似答案一样

你意思是把每一行每一个字母都变成字母表的上一个吧?
要是这样就得加上{},不过是加在if else外面。
{if(xx[i][j]=='a') xx[i][j]='z';
else if(xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]-=1;

}

不需要在j的for循环之前 加{}

个人觉得这样的程序加上比较好,因为看起来很容易懂,可读性强,当然不加也没错

这个程序你想实现什么效果,可以编译运行下,看看有什么问题?

不加貌似答案一样,是的,建议加上的好,便于别人阅读。

对的,
当循环体只有一条语句时,可以不加{},当循环体多余一句是要加{}。对第一个for来说,他只嵌套了一个for,这时把这个for当做一条语句来看,所以不加,对第二个for来说,他的循环体是一条if-else语句,也视为一条语句,而if和esle语句中都只有一条语句,所以都不用{}。
当然,如果要加也行,肯定不会错的

可以不用加 ,当每个循环内部的循环语句只有一条时,就可以不加,外层循环的循环语句是内层循环,也就是说是第二个for语句,if.....else语句是包含在第二个for循环的循环语句里面,所以你这个语句的执行顺序是先从外层循环开始,当i=0时,如果满足判断条件,则执行内层循环,内层循环的执行也是要判断条件,如果满足,就执行if语句,等内层循环一圈执行完了以后,即内层循环的判断条件不满足的时候,就跳到外层循环开始执行i++。
当然通常的情况下不管循环语句有几条,都要加上花括号,因为这样别人比较容易读懂,也比较容易分析