為什么我上下兩段同樣的代碼輸出結(jié)果不一樣啊
/*
#include <stdio.h>
int main()
{
? ? int i,j,k;
? ? for(i=1; i<5; i++)
? ? {
? ? ? ?for(j=1;j<5;j++) ?
? ? ? ? {
? ? ? ? ? ? ?printf(" "); ??
? ? ? ? }
? ? ? ?for(k=0;k<2*i-1;k++)?
? ? ? ? {
? ? ? ? ? ? printf("*"); ??
? ? ? ? }
? ? ? ? printf("\n"); ? ??
? ? }
? ? return 0;
}
?*/?
#include <stdio.h>
int main()
{
? ? int i,j,k;
? ? for(i=1; i<5; i++)
? ? {
? ? ? ? for(j=i; j<5; j++)
? ? ? ? {
? ? ? ? ? ? printf(" ");
? ? ? ? }
? ? ? ? for(k=0; k<2*i-1; k++)
? ? ? ? {
? ? ? ? ? ? printf("*");
? ? ? ? }
? ? ? ? printf("\n");
? ? }
? ? return 0;
}
第一段結(jié)果
第二段結(jié)果
2016-03-08
第一段和第二段代碼輸出空格的數(shù)量不一樣,具體在第一段代碼“?for(j=1;j<5;j++)?”,j的初值為1,是常量,因此功能是每次都輸出5個(gè)空格,第二段代碼“?for(j=i; j<5; j++)”,j的初值為i,是個(gè)變量,加上每次i循環(huán)都自加1,所以每次都比上一行少一個(gè)空格,不知道我的解釋清楚了沒?
2016-03-08