困惑了一天的题
#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>
int main()
{
double y;
for (y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/
{
int m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/
printf("%*c%*c\n",m+1,'*',63-m*2,'*');
}
return 0;
}
方法很好啊,比我自己画的漂亮多了……稍微简化一下…… 呵呵 可惜不是我的方法 这是在c语言经典100例上的 上面说用二维数组很简单 但是我想了半天都没有想到怎么用二维数组 #include <stdio.h>
#include <math.h>
#define X 75
#define Y 12
#define PI 3.1415926535897
int main(void)
{
int i, j, offset[X];
for (j = 0; j < X; j++)
offset[j] = -Y * sin(2 * PI * j / X);
for (i=-Y; i <= Y; i++)
{
for (j=0; j<X; j++)
putchar(i == offset[j] ? '*' : i == 0 ? '-' : ' ');
putchar('\n');
}
return 0;
}
今天下午闲得无聊写的一个,不如LZ的漂亮……哎……果然用acos比用sin漂亮多了……关键在于均匀。
LZ程序改进版在4#,我觉得已经不需要使用数组了,加上数组反而画蛇添足。这个代码的确比较完美,果然很经典。
[[it] 本帖最后由 StarWing83 于 2008-9-7 18:23 编辑 [/it]] 呵呵 我需要二维数组并不是因为这个题目
而是为了另一个思路
感谢ls把自己的源码拿来分享 [tk01]
页:
[1]
