打了一个太极图,感觉这个也还能写得更好。但又不知道如何下手,大佬看见可以指导下!蟹蟹了
用的c语言,但发这个没有找到这个选项(?
#include <stdio.h>
int main(){
int r;
printf("请输入太极圆的半径:");
while(1)
{
scanf("%d",&r);
if(r<=43&&r>=9)
break;
else if(r<9)
printf("半径太小了,我做不到,请重新输入:");
else
printf("半径太大了,我做不到,请重新输入:");
}
for(int i=0;i<=2*r+1;i++)
{
for(int j=0;j<=2*r+1;j++)
{
int d0=(i-r)*(i-r)+(j-r)*(j-r);
int d1=(i-r/2)*(i-r/2)+(j-r)*(j-r);
int d2=(i-r-r/2)*(i-r-r/2)+(j-r)*(j-r);
int d3=(i-r/2)*(i-r/2)+(j-r)*(j-r);
int d4=(i-r/2-r)*(i-r-r/2)+(j-r)*(j-r);
if(d0<=r*r)
{
if(d0>r*r*7/9)
printf("* ");
else if(d1<=r*r/81)
printf("* ");//上面的小白圆
else if(d3<=r*r/4)
printf(" ");//上面的中黑圆
else if(d2<=r*r/81)
printf(" ");//下面的小黑圆
else if(d4<=r*r/4)
printf("* ");//下面的中白圆
else if(j>r)
printf("* ");//右边的白鱼
else if(j<r)
printf(" ");//左边的黑鱼
}
else
printf(" ");
}
printf("\n");
}
return 0;
}
因为半径太大和太小都会变形。9--43已经是极限了
如果有其他更好的方法请大佬们指教!!
然后放一点结果图
太大了,,,电脑截图截不完
有四个点有点碍事,,,怎么办,求教
虽然是不怎么有技术力的打印,但真的很好玩
有了学习的动力了!!
加油加油!!