瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 有1道C语言的编程题不会
翹翹鈑oоО - 2006-12-16 17:07:00
编制程序,打印出下面的图形.
    *
  * * *
* * * * *
  * * *
    *                                     
                                                       


希望能把程序写出来,谢谢
翹翹鈑oоО - 2006-12-16 17:13:00
郁闷,打不出那样的图形
梓枞 - 2006-12-16 20:29:00
服了,这也问,自己写
最简单五个printf会写不
病毒是傻鸟 - 2006-12-19 14:06:00
呵呵!~~~~~~~~
QQ小乞民 - 2006-12-22 14:34:00
garnett21 - 2006-12-22 17:20:00
这种也问,自己去看书吧。以后别问这种问题被人笑话!
海蓝云天 - 2006-12-22 19:46:00
循环套循环
小枫叶子 - 2007-2-4 3:46:00
引用:
【梓枞的贴子】服了,这也问,自己写
最简单五个printf会写不

………………

,好像有点笨哦!
superR - 2007-2-4 13:13:00
仆街仔.顶你个肺
广工书生 - 2007-2-4 20:19:00
循环嵌套......
Skynice - 2007-2-5 8:29:00
记住最简单才是最好的。5个printf就行
ZLQT - 2007-2-5 11:38:00
不能这样说新手的哦,打击很大的~~~~一起努力~~~呵呵
品茶听雨 - 2007-2-5 13:48:00
看来你是刚接触C了
eval - 2007-2-5 20:57:00
不直接输出也可以的,两个for,一个控制行数,一个控制长度
Kaká - 2007-2-6 12:42:00
这道题应该是考的循环的嵌套使用,直接printf好像达不到要求
Kaká - 2007-2-6 13:16:00
int i,j;
for(i=1;i<=3;i++)
{for(j=1;j<=i*2-1;j++)
{
cout<<"*";
}
cout<<endl;
          }
for(i=4;i<=5;i++)
{for(j=1;j<=(6-i)*2-1;j++)
{
cout<<"*";
}
cout<<endl;

}
这是在C++中编的,C中把cout换成printf就可以了
Kaká - 2007-2-6 13:19:00
貌似算法复杂了,有没有高手指正~~
xiaoyueIQ - 2007-2-6 14:41:00
高手~~
你们在我眼里就是高手..
我本想自学..C语言...
可是看了半天..都看不懂..连汇编都看不懂
xiaoyueIQ - 2007-2-6 14:41:00
没有老师指点
我看一个世纪
我是别想指望自学成才了啊..
哭!!!
呜~~~
呜!!!
Kaká - 2007-2-6 15:22:00
。。。。。学习中
jiangfan8716 - 2007-2-6 21:47:00
我们考试的时候也考过这道题
方法很多
不过我是循环做的
ipot - 2007-2-6 22:03:00
print(int n)
{
//n = 2k+1 或者n = 2k (k非负整数)
for(int i =1,i<(n+1);i++)//控制输出的行数
{
if(i < (n+3)/2) //n=2k时,i最大为k,n=2k+1时,n最大为k+1
{
for(int j=0;j<(2i-1);j++)//j为第i行的"*"树木
cout<<"*";
}
else
for(int j=0;j<2(n-i)+1);j++)
cout<<"*";
cout<<endl;
}
}
Kaká - 2007-2-7 9:30:00
【回复“ipot”的帖子】
大哥,你这个程序有太多的错。不要误导新手~~
xiaoyueIQ - 2007-2-7 9:48:00
自学的不懂啊...
Kaká - 2007-2-7 10:08:00
引用:
【ipot的贴子】print(int n)
{
//n = 2k+1 或者n = 2k (k非负整数)
for(int i =1,i<(n+1);i++)//控制输出的行数
{
if(i < (n+3)/2) //n=2k时,i最大为k,n=2k+1时,n最大为k+1
{
for(int j=0;j<(2i-1);j++)//j为第i行的"*"树木
cout<<"*";
}
else
for(int j=0;j<2(n-i)+1);j++)
cout<<"*";
cout<<endl;
}
}
………………

改错,呼呼
int ii,nn=11;(nn是随便赋奇数值的)
for(ii =1;ii<=nn;ii++)//控制输出的行数
{
if(ii<=(nn+1)/2) //n=2k时,i最大为k,n=2k+1时,n最大为k+1
    {
        for(int jj=1;jj<=(2*ii-1);jj++)//j为第i行的"*"树木
            {cout<<"*";}
            cout<<endl;
    }
else
    {
        for(int jj=1;jj<=(2*(nn-ii)+1);jj++)
            {cout<<"*";}
            cout<<endl;
    }
}
花花公子与小赖虫 - 2007-2-7 18:24:00
偶也想知道正确答案啊..C新手...一起努力,共同进步
NirvanaCrystal - 2007-2-8 16:49:00
居然C++的都出来了。那我就来个JAVA的。哈哈。我还是不知道算法你们是怎么得出来的。有什么好的方法能最快速的得到方法说下么


for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= i * 2 - 1; j++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }
        for (int i = 4; i <= 5; i++) {
            for (int j = 1; j <= (6 - i) * 2 - 1; j++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }
wo4maomao - 2007-2-10 15:00:00
这个我会,学了一点点,HAHA
风系元素 - 2007-2-10 16:38:00
就不应该告诉他.
让他自己动动脑子!
tankk - 2007-2-10 20:29:00
兄弟们!

不要打击新人么~    给出各自的代码不就完了么
12
查看完整版本: 有1道C语言的编程题不会