重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
目前创新互联公司已为近千家的企业提供了网站建设、域名、网络空间、网站托管、企业网站设计、驿城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#include math.h
void main()
{
double y;
int x,n;
for (y = 1; y =-1; y-=0.1)
{
for (x = 0; x = 62; x++)
{
if(y=0)
n = asin(y) * 10;
else
n = -asin(y) * 10;
if ((y=0(x == n||x==31-n))||(y0(x==31+n||x==62-n)))
printf("*");
else
printf(" ");
}
printf("\n");
}
}
#includestdio.h
#includemath.h
main(){
double y;
int x,m,i;
printf("y=sin(x) [0x2*pi]\n");
for(y=1;y=-1;y-=0.1){
if(y=0){
m=asin(y)*10;
for(x=1;xm;x++)printf(" ");
printf("*",m);
for(;x31-m;x++)printf(" ");
printf("*\n");}
else{
m=-1*asin(y)*10;
for(i=0;i32;i++)printf(" ");
for(x=1;xm;x++)printf(" ");
printf("*",m);
for(;x31-m;x++)printf(" ");
printf("*\n",m);
}
}
}
回答者: 依旧飘流 - 魔法师 五级
hehe
首先这个程序只能输出这种 不像正弦 也不象余弦的曲线。
因为你的程序的算法是每行有2个星星
其次,15+45=60,约等于2*PI
就是说,前面的15是PI/2,后面的45是PI/2*3,
输出的是1个周期的。sin(PI/2)=1。。这回懂了么?
1、首先,打开VS2019,并且创建一个C语言源文件,会看到如下的页面。
2、鼠标在下图红色圈所示的区域单击一下。
3、之后,再按Enter键,会看到新的一行。
4、在这一行中输入:#includemath.h。
5、接着,在void main()中去定义一个单精度型变量。
6、定义完回车后,输入a=sin(90);注意,90指的是90弧度。
7、再次回车,输入printf("%f",a);。
8、可以按F5键去运行这段程序,会看到如下的结果。即90弧度的正弦值约为0.893997。
首先,你输出的不是正弦图像,而是反正弦图像。
#includestdio.h
#includemath.h
int
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){//表示y的取值范围是[-1,1]
if(y=0){
m=asin(y)*10;
//反正弦函数,确定空格的数量,最大值为15
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");//注意此时不换行,因为后面还有一个点
for(;x31-m;x++)printf("
");//输出第二个点,并换行
printf("*\n");}
else{//同理输出y小于0的点
m=-1*asin(y)*10;
for(i=0;i32;i++)printf("
");
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");
for(;x31-m;x++)printf("
");
printf("*\n",m);
}
}
getchar();
return
0;
}
本程序加了一个LCD1602,,,,你自己选择使用哈
#includereg52.h //包含头文件
#includeintrins.h
#define uchar unsigned char //宏定义
#define uint unsigned int
uchar i , j ,n,z; //定义全局变量
sbit RS=P2^0; //定义端口
sbit RW=P2^1;
sbit E =P2^2;
sbit k=P2^7;
sbit k1=P2^6;
uchar code str0[]={"Sine Wave "}; //定义LCD1602显示字符数组
uchar code str1[]={"Triangle Wave"};
uchar code str2[]={"Square Wave "};
uchar code table[3][40]= //定义显示波形的二维数组
{
0x80,0x94,0xa7,0xb9,0xca,0xd9,0xe7,0xf1,0xf8,0xfd,
0xff,0xfd,0xf8,0xf1,0xe7,0xd9,0xca,0xb9,0xa7,0x94,
0x80,0x6c,0x55,0x46,0x35,0x25,0x18,0x0e,0x06,0x02,
0x00,0x02,0x06,0x0e,0x18,0x25,0x35,0x46,0x55,0x6c,
0x80,0x8c,0x99,0xa6,0xb3,0xc0,0xcc,0xd9,0xe6,0xf2,
0xff,0xf2,0xe6,0xd9,0xcc,0xc0,0xb3,0xa6,0x99,0x8c,
0x80,0x73,0x66,0x5a,0x4d,0x40,0x33,0x26,0x1a,0x0d,
0x00,0x0d,0x1a,0x26,0x33,0x40,0x4d,0x5a,0x66,0x73,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void delay(uint z) //延时程序
{
for(z;z0;z--)
{
}
}
void Write_command(uchar cmd) //LCD1602写入命令程序
{
RS=0; //选择指令寄存器
RW=0; //写操作
E =1; //使能端
P1=cmd;
delay(1);
E =0;
delay(10); //延时 使LCD1602处于不忙状态
}
void Write_data(uchar cmd) //LCD1602写入数据命令
{
RS=1; //选择数据寄存器
RW=0; //写操作
E =1; //时能端
P1=cmd;
delay(1);
E=0;
delay(10); //延时 使LCD1602处于不忙状态
}
void Lcd_init() //LCD1602初始化程序
{
Write_command(0x38); //设置16*2显示 5*7点阵 8位数据接口
Write_command(0x0c); //LCD1602开显示 ,不显示光标
Write_command(0x06); //读或写一字符后指针加一 ,显示不移动
Write_command(0x80+0x00); //数据指针地址设置
}
void Display() //LCD1602显示英文程序
{
Lcd_init();
if (i==0)
{
for (n=0;n13;n++)
{
Write_data(str0[n]);
}
}
else if(i==1)
{
for(n=0;n13;n++)
{
Write_data(str1[n]);
}
}
else
{
for(n=0;n13;n++)
{
Write_data(str2[n]);
}
}
}
void main() //主函数
{
Display();
while(1)
{
for(j=0;j40;j++)
{
P0=table[i][j];
}
if(k==0) //开关程序
{
delay(1);
if(k==0);
{
if(k==0)
{
i++;
if (i==3) i=0;
Display();
}
}
while(k==0);
}
}
}