在屏幕上用“*”画一个空心的圆
*问题分析与算法设计:打印圆可利用图形的左右对称性。根据圆的方程:R*R=X*X+Y*Y 可以算出圆上每一点行和列的对应关系
*程序说明与注释
#include
#include
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y--)
{
m=2.5*sqrt(100-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的
行距大于列距,不进行调节显示出来的将是椭圆*/
for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/
printf("*"); /*圆的左侧*/
for(;x<30+m;x++) printf(" "); /*图形的空心部分控制*/
printf("*/n"); /*圆的右侧*/
}
return 0;
}
#include
#include
int main(){
double y,yy;
int x,m,n,l;
for(y=1;y>=-1;y-=0.1){
yy=1-sqrt(y*y);
m=sqrt(yy)*25;
for(x=0;x<=50;x++){
if(x==25-m||x==25+m) printf("*");
else printf(" ");
}
printf("/n");
}
return 0;
}
#include
#include
int main(){
double y,yy;
int x,m,n;
for(y=1;y>=-1;y-=0.1){
yy=1-sqrt(y*y);
m=sqrt(yy)*25;
n=y*25;
for(x=0;x<=50;x++){
if(x==25-m||x==25+m) printf("*");
else if(x==n+25) printf("+");
else printf(" ");
}
printf("/n");
}
return 0;
}