注册 登录
编程论坛 新人交流区

[求助]用for怎么写

zzhang0821 发布于 2007-10-17 20:08, 631 次点击
输出
*
***
*****
*******
*****
***
*
这个用for和function 这么写 请高手指点!!
25 回复
#2
木木老头2007-10-17 20:13
这个用for语句好像也不会简单吧,是老师要求用for的吗?我也挺像知道用for怎么简化的,请高手指点吧!
#3
purana2007-10-17 20:21
t-sql的.
其它语言类似.
[CODE]declare @i int
set @i=1
while @i<=5
begin
print space(10-@i)+replicate('*',@i*2-1)
set @i=@i+1
end
while @i>=1
begin
print space(10-@i)+replicate('*',@i*2-1)
set @i=@i-1
end[/CODE]
#4
Smokeboy2007-10-17 20:21

还有其他要求吗?

#5
jasonldz2007-10-17 20:22

学学,谢谢

#6
zzhang08212007-10-17 20:37
不好意思 不大明白 你看能不能用这个方法写 该这么写呢??我只学到这里
<script>
function b(a)
{
for(i=1;i<=a;i++)
{
for(j=1;j<=i;j++)
{
{
if(i%2==0)
continue;
document.write('*')
}
}
document.write('<br>')
}
for(k=1;k<=a;k++)
{
for(c=a-1;c>=k;c--)
{
if(k%2!=0)
continue;
document.write('*')
}
document.write('<br>')
}
}
b(7)
</script>
结果显示的是
*
***
*****
*******
*****
***
*
#7
ACMer2007-10-17 20:38
三行搞定。。。。
#8
zmzlx2007-10-18 08:34
#include<stdio.h>
int main(void)
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=4-i;j>=0;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(int l=3;l>=1;l--)
{
for(int m=4-l;m>=0;m--)
printf(" ");
for(int t=2*l-1;t>=1;t--)
printf("*");
printf("\n");
}
return 0;
}
#9
mxbwuma2007-10-20 10:12
学到东西了。
#10
a217zxg2007-10-20 11:42
   代码不写了,比较容易,思想是两重循环,没有*的地方就让它输出空格就好了。
#11
solardo2007-10-20 16:28
收获
#12
ahwhsunlei2007-10-20 17:39
哦!涨见识了!
#13
飞寒2007-10-20 21:15
#include<stdio.h>
void main()
{
int i,j;
for(i=3;i>=0;i++)
{
for(j=0;j<i;j++)
printf(" ");
for(j=0;j<=2*(3-i);j++)
printf("*");
}
for(i=1;i<=3;i++)
{
for(j=0;j<i;j++)
printf(" ");
for(j=0;j<=2*(3-i);j++)
printf("*");
}
}
这个是用c语言写的,如果要用其他语言的话你可以根据这个程序的思想写!上面那楼的人都说了,思想就是两重循环!
#14
iniyasha2007-10-20 23:38
                看人家怎样写?
#15
succubus2007-10-21 00:28
呵呵
还可以有个取巧的办法
声明个char*的数组
把要输出的每行作为该数组的初值
然后用for循环打印数组的每个元素^_^
#16
leo86852007-10-21 06:32
用什么语言写?
#17
sayadiva2007-10-21 08:21
Java的:

public class test
{
public static void main(String[] args)
{
int i, j;
for(i = 1; i < 5; i++)
{
for(j = 4 - i; j > 0 && i != 3; j--)
{
System.out.print(" ");
}
for(j = 1; j <= 2 * i - 1; j++)
{
System.out.print("*");
}
System.out.println();
}
for(i = 3; i > 0; i--)
{
for(j = 4 - i; j > 0 && i != 3; j--)
{
System.out.print(" ");
}
for(j = 2 * i - 1; j > 0; j--)
{
System.out.print("*");
}
System.out.println();
}
}
}
#18
xuanzilie2007-10-21 11:07
昨晚编的 C语言
#include<stdio.h>
int main()
{
int i,j;
char c1=' ',c2='*';
for(i=0;i<=5;i++)
{
for(j=0;j<=5;j++)
{
if(i<=3)
{
if(j<=3-i||j>=3+i)
putchar(c1);
else
putchar(c2);
}

else
{
if(j<=i-3||j>=9-i)
putchar(c1);
else
putchar(c2);
}

}
printf("\n");
}
}
#19
xuanzilie2007-10-21 11:10
13楼的不对吧
#20
C语言的深度2007-10-23 11:09
额  无语`
#21
psp03752007-10-23 11:11

顶三楼!!!

#22
anyboy2007-10-23 11:29
#23
zhulinfeng2007-10-24 08:32
#24
mobibi19852007-10-24 09:04
这个题目,好象以前上课时做过,不过用的不的for做的.真没想到用for做还蛮好做的.长见识了啊
#25
hczsea2007-10-24 11:42
char c[7][7]=kongge;
int i=3;
int j,k,l;
for (j=0; j<7; j++)
{
l = j%4-(j>>2)*2;
for (k=0;k<7;k++)
{
if (abs(k-i)<=l)
{
c[j][k] = xinghao;
}
printf(c[j][k]);
}
}
换个思路,用替换的方法也是可行的吧。
#26
嘻习玺戏2007-10-24 17:09
呵呵大一学的
1