主题:一个有点小变态的问题
54hy
[专家分:30] 发布于 2006-12-05 20:03:00
老师让我们不用while 打印
*
**
***
****
*****
更有
*
***
*****
*******
*********...........
(本人思考中,周末来看各位牛X的解法.)
回复列表 (共19个回复)
沙发
khenlee [专家分:20] 发布于 2006-12-06 11:49:00
不让用while可以用for的.......
板凳
glife [专家分:0] 发布于 2006-12-06 12:52:00
只是这么几行吗?如果是可以用for就行了,第二个还要多加修改一下
3 楼
54hy [专家分:30] 发布于 2006-12-07 20:43:00
还没想出来怎么编哦,不能用循环。而且是个函数,拥护自己给打的行数。必须用if....
练习嘛,我还没那能力,但用归递应该可行
4 楼
学好编程 [专家分:30] 发布于 2006-12-08 23:47:00
用for可以啊,我打过
用两个for内外循环
5 楼
乌龟MM [专家分:70] 发布于 2006-12-10 13:14:00
这是我以前做的作业,没用while
public class Star
{
public static void sj1(){
int i;
int j;
for(i=10;i>0;i--)
{for(j=i-1;j<10;j++)
{System.out.print("*");}
System.out.print("\n");
}
}
public static void sj2(){
int n;
int m;
for(n=0;n<10;n++)
{for(m=10-n;m>0;m--)
{System.out.print("*");}
System.out.print("\n"); }
}
public static void sj3(){
int a;
int b;
int c;
for(a=10;a>0;a--){
{for(b=a-1;b<9;b++)
{System.out.print(" ");}
for(c=0;c<a;c++)
{System.out.print("*");}
System.out.print("\n");}
}
}
public static void sj4(){
int x;
int y;
int z;
for(x=0;x<10;x++)
{for(y=10-x;y>1;y--)
{System.out.print(" ");}
for(z=x;z>=0;z--)
{System.out.print("*");}
System.out.print("\n");
}
}
public static void main(String[] args)
{
sj1();
System.out.println("");
sj2();
System.out.println("");
sj3();
System.out.println("");
sj4();
System.out.println("");
}
}
6 楼
54hy [专家分:30] 发布于 2006-12-11 08:44:00
牛!!!楼上那个MM,哦,可能是姐姐,学的很深了.现在你写我还不能看懂哦,但可行.我用的是
#include<stdio.h>
void Repeat(char c,int n);
int main()
{
int n;
char p;
printf("请输入你要打的字符和字符数");
Reapeat
printf("%c");
printf("\n");
scanf("%d",&n)
scanf("%c",&p)
return 0;
}
void Repeat()char c,int n)
{
if(n==1)printf("%c",p);
else
{
Repeat(c,n-1);
printf("%c",p);
}
}//这是指定打多少个字符,变三角形我就不能继续了
7 楼
雪光风剑 [专家分:27190] 发布于 2006-12-11 23:10:00
[quote]牛!!!楼上那个MM,哦,可能是姐姐,学的很深了.现在你写我还不能看懂哦,但可行.我用的是
#include<stdio.h>
void Repeat(char c,int n);
int main()
{
int n;
char p;
printf("请输入你要打的字符和字符数");
Reapeat
printf("%c");
printf("\n");
scanf("%d",&n)
scanf("%c",&p)
return 0;
}
void Repeat()char c,int n)
{
if(n==1)printf("%c",p);
else
{
Repeat(c,n-1);
printf("%c",p);
}
}//这是指定打多少个字符,变三角形我就不能继续了[/quote]
把你这个整体作为一个函数来写就可以了
不用循环可以用递归
这个东西有整体规律可以用的
比如说:
输入行数n
调用printtriangle(n,n)
第一个n表示总行数,第二个n表示还有n行要打
此函数的具体内容是
printtriangle(a,b)
if(第二个参数<>0)
printchar(' ',a-b+2)
printchar('*',2*(a-b+1)+1)
printtriangle(n,n-1)
否则return
printchar也可以用递归完成
8 楼
雪光风剑 [专家分:27190] 发布于 2006-12-11 23:11:00
[quote]这是我以前做的作业,没用while
public class Star
{
public static void sj1(){
int i;
int j;
for(i=10;i>0;i--)
{for(j=i-1;j<10;j++)
{System.out.print("*");}
System.out.print("\n");
}
}
public static void sj2(){
int n;
int m;
for(n=0;n<10;n++)
{for(m=10-n;m>0;m--)
{System.out.print("*");}
System.out.print("\n"); }
}
public static void sj3(){
int a;
int b;
int c;
for(a=10;a>0;a--){
{for(b=a-1;b<9;b++)
{System.out.print(" ");}
for(c=0;c<a;c++)
{System.out.print("*");}
System.out.print("\n");}
}
}
public static void sj4(){
int x;
int y;
int z;
for(x=0;x<10;x++)
{for(y=10-x;y>1;y--)
{System.out.print(" ");}
for(z=x;z>=0;z--)
{System.out.print("*");}
System.out.print("\n");
}
}
public static void main(String[] args)
{
sj1();
System.out.println("");
sj2();
System.out.println("");
sj3();
System.out.println("");
sj4();
System.out.println("");
}
}[/quote]
还是循环= =没有本质区别
9 楼
乌龟MM [专家分:70] 发布于 2006-12-16 11:43:00
楼上各位大哥,我只是初学者,而且这作业是我们国庆节的作业,那时我才学JAVA半个月
10 楼
54hy [专家分:30] 发布于 2006-12-17 00:45:00
啊,原来是Java语句...难怪小弟看不懂[em14]还有,你居然是94年得[em8]
我来回复