------------------------------------------------ 代码分析:索尼循环嵌套面试题
第一段代码:
#include<stdio.h>
main()
{
int len;
int i,j,k;
scanf("%d",&len);
for(i=0;i<len;i++)
{for(j=0;j<i;j++)
{printf("*");
for(k=0;k<i-1;k++)
printf(".");
}
printf("/n");
}
}
执行结果:(输入5)
*
*.*.
*..*..*..
*...*...*...*...
第二段代码:
#include<stdio.h>
#define N 5
int main()
{
int i;
int j;
int k;
for(i=0;i<=N-1;i++)
{
for(j=0;j<=i;j++)
{
printf("*");
for(k=0;k<=i-1;k++)
{
printf(".");
}
}
printf("/n");
}
执行结果:
*
*.*.
*..*..*..
*...*...*...*...
*....*....*....*....*....
同样是5,但是结果却不同,很明显第一段代码没有“=”号,而且循环变量的初始值是0,所以,当i=0时,下面嵌套的语句不符合要求,不执行,所以出现了一个空行(第一个for语句还是执行了的,所以有一个空行);
本文通过两段C语言代码对比分析了循环嵌套在输出模式上的差异。第一段代码根据用户输入的整数n生成特定的字符图案,而第二段代码则使用预定义的常量N来实现相同的功能,但输出结果略有不同。本文详细解释了这些差异的原因,并探讨了循环条件和初始值对输出的影响。

被折叠的 条评论
为什么被折叠?



