C语言中关于画圆程序
#include<stdio.h>#include<math.h>main(){doubley;intx,m;for(y=10;y>=-10;y--){m=2.5*sqr...
#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语言,请大侠指点指点!!! 展开
#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语言,请大侠指点指点!!! 展开
5个回答
展开全部
#include<stdio.h>
#include<math.h>
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是用来修正此误差的。可根据具体运行平台适当修改。 如果还看不懂,再问
#include<math.h>
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是用来修正此误差的。可根据具体运行平台适当修改。 如果还看不懂,再问
更多追问追答
追问
能告诉我:画这个圆的原理是什么?谢谢~~~
追答
最基本的原理是圆的曲线方程。高中课本里有标准方程为:(x+a)^2+(y+b)^2=R^2 这下就熟悉了吧?拿出纸笔划一下。程序里边使用星形符号大致描绘一个圆形,你要理解这一点。学程序多往数学上联系一下,否则学不了太深。
祝你学习顺利!
展开全部
#include<stdio.h>
#include<math.h>
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"); //打印圆的右边的*
}
}
#include<math.h>
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"); //打印圆的右边的*
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序真的能画出圆吗,为什么要*2.5啊?讨论一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqrt()是平方根函数,自己搜来看一看就知道。
for循环的内容,你去看一下课本例子,多看多想一想。
for循环的内容,你去看一下课本例子,多看多想一想。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
圆的方程 高二数学 ....
追问
能详细说明下嘛?这里是圆的什么公式?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询