------------------------------------------------ 代码分析:索尼循环嵌套面试题
第一段代码:
#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语句还是执行了的,所以有一个空行);