不至于吧?感觉很自然的事情啊!-----晚上来写注释吧!

http://blog./csynyk
程序代码:#include <stdio.h>
#include <string.h>
int main()
{
char i=1, number=0;
char *str=" "; //35个空格符
char *p="* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "; //35个'*'
printf("Please a value ( 1<value<35 ):");
scanf("%d",&number);
str+=strlen(str)-number;
//这句的目的是根据输入的数据调整调整str的起始位置,譬如number=6,则strlen(str)-number=35-6=29;
//str+=29,就是将字符串的起始位置往后移29个字符宽度。
while(i<number+1)
{
printf("%s",str+i);
//根据行数的不同自动调整字符串的起始位置。还以6为例,上面已经调整到第29字符了,如果i=1,则字符串就
//从第30个开始打印,实际上就只打印了30~35共6个空格。
printf("%s\n",p+(strlen(p)-i*2));
//这一句得原理和上面的相同,i*2是因为p指向的字符串中每两个字符位置中才有一个'*'
i++;
}
printf("\n");
return 0;
}
