C语言 打印空心圆出现的问题

代码如下:#include<stdio.h>#include<math.h>#defineR16intmain(){doubley;intm,x;for(y=16;y>=... 代码如下:
#include <stdio.h>
#include <math.h>

#define R 16

int main()
{
double y;
int m,x;
for(y=16; y>=-16; y--)
{
m=sqrt(R*R-y*y);
for(x=-16; x<-m; x++)
printf(" ");
printf("*");
for(; x<m; x++)
printf(" ");
printf("*\n");
}

return 0;
}

打印一个半径为16的空心圆,现在出现的问题是:如果我只打印上半圆没问题,只打印下半圆也没问题,但是打印整个圆时上半圆的形状就变了,请问这是为什么?
展开
 我来答
黒木4312
2011-06-12 · TA获得超过788个赞
知道小有建树答主
回答量:371
采纳率:0%
帮助的人:498万
展开全部
你画的那是椭圆吧!
#include <stdio.h>
#include <math.h>
#define R 16
int main()
{
int x, y, y1, y2;
for(x=0;x<=2*R;x++)
{
y1=(R - sqrt(2.0*R*x-x*x))*2;
y2=(R + sqrt(2.0*R*x-x*x))*2;
for ( y = 0; y < y1; ++y)
printf(" ");
printf("*");
if (y < y2)
{
for (;y < y2; ++y)
printf(" ");
printf("*");
}
printf("\n");
}
帐号已注销
2012-03-11
知道答主
回答量:37
采纳率:0%
帮助的人:16.1万
展开全部
要注意按一定比例换算为屏幕的字符数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式