可以做一个二维[整形或char类型]数组,行列分别是屏幕的行列数,然后,通过计算在修改对应位置元素的值就可以,然后将数组元素打印出来(这里以char类型为例):
#include
#include
#include
#define ROW 25
#define COL 84
char table[ROW][COL];
void initTable()
{
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
table[i][j] = ' ';
}
}
}
int main(int argc, char*argv[])
{
// 这里以求cos(x) 为例
// 因为行列数为整形,所以这里对所求结果向下取整
// 这里以第20行为横坐标位置
// 先绘制x,y坐标
for(int row = 0; row < ROW; row++)
{
table[row][0] = '|';
}
table[20][0] = '+';
for(int col = 1; col < COL; col++)
{
table[20][col] = '-';
}
table[0][0] = '^';
table[20][COL - 1] = '>';
// 这里随x计算cos的值,并将对应的坐标处的字符替换为'*';
for(int x = 0; x < COL - 1; x++)
{
table[5 * ((int)(cos(x)))][x] = '*';
}
// 接下来就是逐行输出了
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
printf("%c", table[i][j]);
}
}
system("pause");
}
这个很简单的。你慢慢的理清思路就会做了。我发给你程序。里面有注解。相信你会明白的