如何用数组实现在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线?
不用数组的代码如下:
#include<stdio.h>
#include<math.h>
void main()
{
double y;
int x,m;
for(y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/
{
m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/
for(x=1;x<m;x++) printf(" ");
printf("*"); /*控制打印左侧的 * 号*/
for(;x<62-m;x++)printf(" ");
printf("*\n"); /*控制打印同一行中对称的右侧*号*/
}
}
我用的是这个方法:
#include <stdio.h>
#include <math.h>
void main()
{
char y[21][63];
double n;
int i,j,m;
for(i=0;i<=20;i++)
for(j=0;j<=62;j++)
{
n=0.1*i;
m=acos(1-n)*10;
if(m==j||m==62-j)y[i][j]='*';
else y[i][j]=' ';
}
for(i=0;i<=20;i++)
{
for(j=0;j<=62;j++)
printf("%c",y[i][j]);
printf("\n");
}
}
有人想到更简单的吗?题目说用数组很简单的!
[讨论]关于余弦函数曲线