主题:一个有点小变态的问题
54hy
[专家分:30] 发布于 2006-12-05 20:03:00
老师让我们不用while 打印
*
**
***
****
*****
更有
*
***
*****
*******
*********...........
(本人思考中,周末来看各位牛X的解法.)
回复列表 (共19个回复)
11 楼
54hy [专家分:30] 发布于 2006-12-17 18:22:00
最后的答案,不知好不好,应该很好了吧^^
#include<stdio.h>
void dengyao(char c,int n);
int main(){
char c;int n;
printf("你要用什么打这个三角形?");
scanf("%c",&c);
printf("输入三角形的高?");
scanf("%d",&n);
dengyao(c,n);
return 0;
}
void dengyao(char c,int n){
int p,k;
k=1;
p=1;
while(p<=n){
while(k<=n-p){
printf(" ");
k++;
}
if(k>n-p){
k=1;
while(k<=(2*p-1)){
printf("%c",c);
k++;
}
if(k>(2*p-1))
{
k=1;
printf("\n");
}
p++;
}
}
}
[em8]
12 楼
雪光风剑 [专家分:27190] 发布于 2006-12-17 18:27:00
下次练习迭代吧
13 楼
forjane [专家分:5670] 发布于 2006-12-18 02:49:00
#include <stdio.h>
void rpt(char c,int n)
{
if(n>0)
{
putchar(c);
rpt(c,n-1);
}
}
void fun1(int n) //画直角三角形
{
if(n>0)
{
fun1(n-1);
rpt('*',n);
putchar('\n');
}
}
void fun2(int n) //画等腰三角形
{
static int i=1;
if(n>0)
{
rpt(' ',n-1);
rpt('*',i);
i+=2;
putchar('\n');
fun2(n-1);
}
else
i=1;
}
int main()
{
fun1(7);
fun2(7);
getch();
return 0;
}
14 楼
雪光风剑 [专家分:27190] 发布于 2006-12-18 08:49:00
[quote]#include <stdio.h>
void rpt(char c,int n)
{
if(n>0)
{
putchar(c);
rpt(c,n-1);
}
}
void fun1(int n) //画直角三角形
{
if(n>0)
{
fun1(n-1);
rpt('*',n);
putchar('\n');
}
}
void fun2(int n) //画等腰三角形
{
static int i=1;
if(n>0)
{
rpt(' ',n-1);
rpt('*',i);
i+=2;
putchar('\n');
fun2(n-1);
}
else
i=1;
}
int main()
{
fun1(7);
fun2(7);
getch();
return 0;
}
[/quote]
很漂亮的程序
只是主程序里fun1()和fun2()应该由用户自己指定
15 楼
54hy [专家分:30] 发布于 2006-12-18 09:18:00
好象少了个头文件,不过大哥的确厉害
16 楼
RuffianT [专家分:10] 发布于 2007-01-24 11:20:00
1.用for比较方便.
int main()
{
for(int i=1;i<=5;++i)
{
for(int j=i;j<=1;++j)
cont<<"*"<<endl;
}
}
2.
int main()
{
for(int i=1;i<=5;++i)
{
for(int j=1;j<=5-i;++j)
cout<<" ";
for(int k=1;k<=2i-1;++k)
cont<<"*"<<endl;
}
}
17 楼
MGTS [专家分:0] 发布于 2007-04-26 21:01:00
好想错拉把
if(n==1)printf("%c",p);
else
是这样用的吗?
else的后面还有一个语句把
18 楼
田野 [专家分:320] 发布于 2007-05-02 03:36:00
prntf(" * ")
prntf(" *** ");
这要打的话,什么都不用了,呵
19 楼
yunhehaojie [专家分:730] 发布于 2007-05-07 10:03:00
比我厉害多了。
我来回复