用java或者c程序输出如下图的这种简单心形,谁能给我讲讲思路。加上程序示例更好

用java或者c程序输出如下图的这种简单心形,谁能给我讲讲思路。加上程序示例更好,第1张

用方程的话肯定输出不会和你的图完全一致

心形线方程如图

用上面行第二个比较简单,程序如下

#include <stdio.h>

bool draw(float x, float y)

{

 float a = x * x + y * y - 1.0

 float b = x * x * y * y * y

 return a * a * a - b <= 0

}

int main(int argc, char* argv[])

{

 for (float y = 1.5 y >= -1.5 y -= 0.1)

 {

  for (float x = -1.2 x <= 1.2 x += 0.05)

  {

   if (draw(x, y))

   {

    bool left = draw(x - 0.05, y)

    bool right = draw(x + 0.05, y)

    bool up = draw(x, y + 0.1)

    bool down = draw(x, y - 0.1)

    if (left && right && up && down)

     printf(" ")

    else

     printf("*")

   }

   else

    printf(" ")

  }

  printf("\n")

 }

 return 0

}

draw函数是判断(x,y)坐标是否在心形范围内

主函数循环,y取值±1.5之间,步长0.1,x取值±1.2之间,步长0.05

如果(x,y)坐标在心形范围外打印空格

如果(x,y)坐标在心形范围内,由于这个心是空心的,要继续判断是不是心形边缘,判断周围4个点坐标,如果都在范围内,表示(x,y)坐标不会是边缘,打印空格,否则是边缘,打印星号

最终结果如图

程序如下:

/**

*

* GuiTuSaiPao.java

* @author Antonio

* 2009年9月2日20:16:33

* 实现Runnable接口中的run方法

*

*/

public class GuiTuSaiPao implements Runnable {

private String name

private int length=0

public GuiTuSaiPao(){}

public GuiTuSaiPao(String name){

this.name=name

}

public void run(){

while(true){

//每次停500毫秒

try {

Thread.sleep(500)

} catch (InterruptedException e) {

e.printStackTrace()

}

//向前跑十米

length+=10

System.out.println(name+"已跑了"+length+"米.")

//到达终点

if(length>=100){

System.out.println(name+",已经到达终点!")

//结束赛跑,break

break

}

}

}

public static void main(String[] args) {

GuiTuSaiPao wugui=new GuiTuSaiPao("乌龟")

GuiTuSaiPao tuzi=new GuiTuSaiPao("兔子")

Thread thread=new Thread(wugui)

Thread thread2=new Thread(tuzi)

//启动线程

thread.start()

thread2.start()

}

}

输出结果:(不一定每次都一样!)

乌龟已跑了10米.

兔子已跑了10米.

兔子已跑了20米.

乌龟已跑了20米.

乌龟已跑了30米.

兔子已跑了30米.

兔子已跑了40米.

乌龟已跑了40米.

兔子已跑了50米.

乌龟已跑了50米.

乌龟已跑了60米.

兔子已跑了60米.

乌龟已跑了70米.

兔子已跑了70米.

乌龟已跑了80米.

兔子已跑了80米.

兔子已跑了90米.

乌龟已跑了90米.

兔子已跑了100米.

兔子,已经到达终点!

乌龟已跑了100米.

乌龟,已经到达终点!

完全看rp,这就是线程!

给分吧,哈哈

1. 

abstract class Name {

private String name

// 抽象类中的抽象方法,不应该有方法体

public abstract boolean isStupidName(String name) {}

}

2. 

public class Something {

    void doSomething () 

    {

        private String s = "" // 方法中的修饰符不能是private,这个只能在类中使用

        int l = s.length()

    }

}

3. 

abstract class Something {

    private abstract String doSomething ()// 抽象方法不应该是private的,因为注定要被继承, 如果是private,就继承不了啦

}

4.

public class Something {

    public int addOne(final int x) {

        return ++x // final 修饰的x,不能被修改

    }

}

5. 没错

public class Something {

    public static void main(String[] args) {

        Other o = new Other()

        new Something().addOne(o)

    }

    public void addOne(final Other o) 

    {

        o.i++

    }

}

class Other {

    public int i

}

6. 没错

class Something {

    int i

    public void doSomething() {

        System.out.println("i = " + i)

    }

}

7.

class Something {

    final int i // final修饰的变量要被初始化

    public void doSomething() {

        System.out.println("i = " + i)

    }

}

8.

public class Something {

    public static void main(String[] args) {

        Something s = new Something()

        

        // 静态方法main中调用doSomething, 但是doSomething不是static修饰的

        System.out.println("s.doSomething() returns " + doSomething())

    }

    public String doSomething() {

        return "Do something ..."

    }

}

9. 写法没错,但是和文件名称不统一

class Something {

    private static void main(String[] something_to_do) 

    {

        System.out.println("Do something ...")

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7761087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存