使用一个for / while或while while循环制作螺旋

时间:2010-12-04 15:29:09

标签: c

是否可以单循环制作螺旋?我以前做过螺旋,但只有多个循环。显示输出的代码的奖励。

#include "conio.h"
#include "dos.h"
#include "stdlib.h"

void main()
{       
    int p,q,r,s,t;
clrscr();

for(p=8; p<14; p++)
{
    for(q=5  ; q<26; q++)
    {
        gotoxy(5,q);
        printf("Û");
    }
    for(r=5; r<50; r++)
    {
        printf("Ü");
    }
    for(s=25; s>4; s--)
    {
        gotoxy(50,s);
        printf("Û");
    }
    for(t=50; t>6; t--)
    {
        gotoxy(t,4);
        printf("Ü");
    }
    for(q=5; q<25; q++)
    {
        gotoxy(7,q);
        printf("Û");
            }
            // etc. . . I didn't write the full code.
}

1 个答案:

答案 0 :(得分:1)

一种可能的方法:

const float centerX = 10, centerY = 10;
const float speed = 0.1;
const float max_angle = 10;
const float angleStep = 0.1;

for (float angle = 0; angle < max_angle; angle += angleStep) {
    float radius = angle*speed;
    float sX = centerX+cos(angle)*radius;
    float sY = centerY+sin(angle)*radius;
    createPoint(sX,sY);
}

替换createPoint的任何绘图功能并使用参数。

createPoint的一种方法(类似于上面的内容)将是:

void createPoint(int x, int y) {
    gotoxy(x,y);
    putchar('*');
}

如果您想稍后使用图形库,则可以只更改此方法。