信息发布→ 登录 注册 退出

用C语言画一个圆

发布时间:2026-01-11

点击量:
目录
  • 一、概念说明
    • 1.1圆
    • 1.2圆的图样
  • 二、问题呈现
    • 1.问题描述
    • 2.输入输出
    • 3.测试样例
  • 三、源码实现(+注释)
    • 四、输出结果图示
      • 五、简要解释
        • 1.实现关键
        • 2.小说明
      • 总结

        一、概念说明

        1.1圆

        在一个平面内,围绕一个点并以一定长度为距离旋转一周所形成的封闭曲线叫做圆(Circle)

        圆的表达式:(x - a)² +(y - b)² = r²
        a=0,b=0的情况下: x² + y² = r²

        1.2圆的图样

        仅供参考理解:

        二、问题呈现

        1.问题描述

        Problem Description

        在屏幕上用字符“*”画一个空心的圆。

        2.输入输出

        Input

        Output

        用字符“*”显示一个空心的圆

        3.测试样例

        Sample Input

        Sample Output

        三、源码实现(+注释)

        #include<stdio.h>
        #include<stdlib.h>
        #include<math.h>  //定义该数学函数库 因为要用到sqrt函数
        
        int main(){
        	double y;
        	int x,m;
        	for(y = 10;y >= -10; y--){
        		//圆的半径为10
        		//计算y对应的列坐标m,2.03是屏幕纵横比调节系数
        		m = 2.03 * sqrt(100-y*y);	//因为屏幕的行距大于列距,不进行调节显示出来的将是椭圆
        		for(x = 1;x < 30-m; x++)
        			printf(" ");  //图形左侧空白控制
        		printf("*"); //左半圆
        		for( ;x < 30+m; x++)
        			printf(" ");//图形空心部分控制
        		printf("*\n");//圆的右侧
        	}
        }
        

        四、输出结果图示

        五、简要解释

        1.实现关键

        关键在于在屏幕上用“ * “ 画一个空心的圆

        我们输出圆可利用图形的左右对称性。 根据圆的方程:

        x * x + y * y = r * r 可以计算出圆上每一点行和列的对应关系。

        2.小说明

        m = 2.03 * sqrt(100 - y * y);

        ① y就是圆的方程中的y

        ② y对应的列坐标m

        ③2.03是屏幕纵横比调节系数

        为什么要调节屏幕纵横比 ? 因为在电脑上,一般都是行距大于列距,例如可以联系常见的屏幕分辨率1920x1080 1920>1080来理解。

        ④sqrt是math数学函数库中的开方函数

        总结

        在线客服
        服务热线

        服务热线

        4008888355

        微信咨询
        二维码
        返回顶部
        ×二维码

        截屏,微信识别二维码

        打开微信

        微信号已复制,请打开微信添加咨询详情!