回 帖 发 新 帖 刷新版面

主题:一个有点小变态的问题

老师让我们不用while  打印
*
**
***
****
*****
更有
    *
   ***
  *****
 *******
*********...........
(本人思考中,周末来看各位牛X的解法.)

回复列表 (共19个回复)

沙发

不让用while可以用for的.......

板凳

只是这么几行吗?如果是可以用for就行了,第二个还要多加修改一下

3 楼

还没想出来怎么编哦,不能用循环。而且是个函数,拥护自己给打的行数。必须用if....
练习嘛,我还没那能力,但用归递应该可行

4 楼


 用for可以啊,我打过
用两个for内外循环

5 楼

这是我以前做的作业,没用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 楼

牛!!!楼上那个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 楼

[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 楼

[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 楼

楼上各位大哥,我只是初学者,而且这作业是我们国庆节的作业,那时我才学JAVA半个月

10 楼

啊,原来是Java语句...难怪小弟看不懂[em14]还有,你居然是94年得[em8]

我来回复

您尚未登录,请登录后再回复。点此登录或注册