C语言中关于画圆程序

#include<stdio.h>#include<math.h>main(){ double y; int x,m; for(y=10;y>=-10;y--) { m=2.5*sqrt(100-y*y); //这一步是什么作用? for(x=1;x<50-m;x++) //什么作用? printf(" "); printf("*"); for(;x<50+m;x++) //什么作用? printf(" "); printf("*尀n"); }}小弟刚学C语言,请大侠指点指点!!!
2026年09月24日 11:28
有5个网友回答
网友(1):

#include
#include
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--) //表示图形的第y行,通过for循环打印所有行
{
m=2.5*sqrt(100-y*y); //用y作为自变量,根据弦长与纵坐标y的函数关系计算出此行上的弦 长的一半也就是两个星形符号之间的距离的一半,并用m表示。
for(x=1;x<50-m;x++) //以50个字符长度为基准根据弦长来确定每行左数第一个星形的位 置,此位置前全印空格
printf(" ");
printf("*");
for(;x<50+m;x++) //以50个字符宽度为基准来确定每行第二个星形的位置
printf(" ");

printf("*\n");
}
}
//此程序打印的只是个大概的圆形,因为运行输出窗口里,相邻的行距和邻字符的列距是不相等的,所以语句 m=2.5*sqrt(100-y*y);中的2.5是用来修正此误差的。可根据具体运行平台适当修改。 如果还看不懂,再问

网友(2):

#include
#include
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--) //整个圆在11行中打印完成
{
m=2.5*sqrt(100-y*y); //设置圆的宽度为50(其实我觉得换成1.5*来得更好,可一试?)
for(x=1;x<50-m;x++) //打印圆左边的空格
printf(" ");
printf("*"); //打印圆的左边的*
for(;x<50+m;x++) //打印圆内部的空格
printf(" ");
printf("*\n"); //打印圆的右边的*
}
}

网友(3):

程序真的能画出圆吗,为什么要*2.5啊?讨论一下

网友(4):

sqrt()是平方根函数,自己搜来看一看就知道。

for循环的内容,你去看一下课本例子,多看多想一想。

网友(5):

圆的方程 高二数学 ....