给大家表演一个打太极(doge)

博主用C语言打印太极图,认为代码还有优化空间但不知如何下手。提到半径在9 - 43之外会变形,结果图太大截不完,还有四个点碍事,希望大佬指导更好的方法,称虽技术力不高但增添了学习动力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打了一个太极图,感觉这个也还能写得更好。但又不知道如何下手,大佬看见可以指导下!蟹蟹了

用的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已经是极限了

如果有其他更好的方法请大佬们指教!!

然后放一点结果图

 太大了,,,电脑截图截不完

 有四个点有点碍事,,,怎么办,求教

虽然是不怎么有技术力的打印,但真的很好玩

有了学习的动力了!!

加油加油!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值