您的位置:首页 > 编程语言 > C语言/C++

c语言写的打印心型图案,新手练习

2017-08-21 00:00 316 查看
//心型图案的数学函数表达式为上下两部分
// x轴上部分为 F(x) = sqrt ( 2*sqrt(x*x)-x*x )
// x轴下部分为 G(x)= asin (fabs(x)-1)-3.14/2
// 取值范围为 : -2 <= y <= 2
// -3.14 <= x <= 1



//
//用到的函数有
// 反三角函数 double asin(double);
// 开平方根 double sqrt (double);
// 求整型的绝对值 int abs(int i);
// 求实型的绝对值 double fabs(double);
// 计算x的y次幂 double pow(double x,double y);

效果图为



//=====================================================================================================================================
//项目名称:打印心型图案
//作    者:愚人自忧
//完成时间:2017年 8月21日
//=====================================================================================================================================

#include <stdio.h>
#include <Windows.h>
#include <math.h>       //数学函数头文件
//======================================================================================================================================
//心型图案的数学函数表达式为上下两部分
//  x轴上部分为    F(x) = sqrt ( 2*sqrt(x*x)-x*x )
//  x轴下部分为    G(x)= asin (fabs(x)-1)-3.14/2
//  取值范围为 :  -2 <= y <= 2
//                 -3.14 <= x <= 1
//
//
//用到的函数有
//   反三角函数       double asin(double);
//   开平方根         double sqrt (double);
//   求整型的绝对值   int abs(int i);
//   求实型的绝对值   double fabs(double);
//   计算x的y次幂     double pow(double x,double y);

//======================================================================================================================================
int main()
{
double x, y;
//打印上半部分,
for ( y = 1.0; y >=0; y-=0.08)                  //y-=0.08表示图像的高度 数字越大越矮
{
for ( x = -2.0; x <= 2.0; x+=0.05)          //x+=0.03表示图像的宽度 数字越大越矮,上下两部分x要保持一致,否则无法拼接
{
if (sqrt(2 * sqrt(x*x) - x*x)-y<=0)     //不能直接等于或者不等于0
{
printf(" ");

}
else
{
printf("*");
}
}
printf("\n");
}

//打印下半部分,
for ( y = 0.0; y >=-3.141; y -= 0.1)             //y-=0.08表示图像的高度 数字越大越矮
{
for (x = -2.0; x <= 2.0; x += 0.05)          //x+=0.03表示图像的宽度 数字越大越矮,上下两部分x要保持一致,否则无法拼接
{
if (asin(fabs(x) - 1.0) - 3.141 / 2.0-y >= 0)    //不能直接等于或者不等于0
{
printf(" ");

}
else
{
printf("*");
}
}
printf("\n");
}

system("PAUSE");
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息