瑞星卡卡安全论坛技术交流区系统软件 有1道C语言的编程题不会

1234   4  /  4  页   跳转

有1道C语言的编程题不会

main()
{int i,j;
for(i=1;i<=3;i++)
{for(j=1;j<=2*i-1;j++){printf("*");if(j==2*i-1) printf("\n");}}
for(i=2;i>=1;i--)
{for(j=2*i-1;j>=1;j--){printf("*");if(j==1) printf("\n");}}}
gototop
 

不错
又学了个东西了!
呵呵
就是30楼的是C语言写的
读的懂
gototop
 

既然出这样的问题,当然是想叫你一次完成了
断成两截虽然也不算错,但总是美中不足吧
我用一次循环就搞定了,
分析过程是这样的:
每行的个数分别是
1  3  5  3  1
发现没有,非常具有对称性,5刚好就是中间数
在整数里,绝对值也有对称性,取5个数的话0可以做中间数

所以借用了一个取绝对值的函数abs(),循环数用的就是-2到2这5个数
具体代码如下:
#include "math.h"
#include "stdio.h"
int main()
{
int hang,ge,geshu;
for(hang=-2 ; hang<3;hang++)
{
geshu =5-abs(hang)*2;
for( ge=0; ge< geshu;ge++)
{
printf("*");
}
printf("\n");
}
}
gototop
 

哇,楼上的佩服
gototop
 

【回复“网络骑士HKC”的帖子】
厉害!
gototop
 

呵呵。看来要好好学学了
gototop
 

你应该说明要用循环语句写出来,不然别人当你是笨蛋
gototop
 

有些东西还是简单些好
!不用什么循环加循环……能简单实现何乐而不为?
gototop
 
1234   4  /  4  页   跳转
页面顶部
Powered by Discuz!NT