溪鸢 2017-10-16 13:35 采纳率: 0%
浏览 1007

想编写一个能将心形函数图像打印出来的小程序,但是总遇到地址冲突。

// 心形.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
#define MAX 360
#define MULTIPLE 1

int main()
{
system("mode con cols=100 lines=100");
void Print_X_O_Y(float* x, float* y, int width, int height, float x_min, float y_min);
float Found_max(float* array);
float Found_min(float* array);
int i,a=20;
int x_width, y_width;
float t = 0;
float x_max, x_min, y_max, y_min;
float x[MAX], y[MAX];
for (i = 0; i < MAX; i++)
{
x[i] = a*(2 * cos(t) - cos(2 * t));
y[i] = a*(2 * sin(t) - sin(2 * t));
t += float(0.0174533);
//cout << x[i] << " " << y[i] << endl;
}
x_max = Found_max(x);
x_min = Found_min(x);
y_max = Found_max(y);
y_min = Found_min(y);
x_width = int(x_max - x_min);
y_width = int(y_max - y_min);
cout << x_max << endl << x_min << endl << y_max << endl << y_min << endl;
cout << x_width << endl << y_width << endl;
Print_X_O_Y(x, y, x_width, y_width,x_min,y_min);
return 0;
}

/*
int main()
{
void Print_X_O_Y(float* x, float* y, int width, int height, float x_min, float y_min);
float a[20], b[20];
int i,j=-10;
for (i = 0; i < 20; i++)
{
a[i] = ' ';
b[i] = ' ';
}
Print_X_O_Y(a, b, 20, 20, -10, -10);
}
/
void Print_X_O_Y(float
x, float* y, int width, int height, float x_min, float y_min)//输出图像
{
int w, h, i, j, k;
int X_axis, Y_axis;
int** O_X_Y = NULL;
O_X_Y = (int**)malloc(MULTIPLE*height*sizeof(int*));

for (i = 0; i < height; i++)//建立二维数组并初始化为‘ ’
{
    O_X_Y[i] = (int*)malloc(MULTIPLE*width*sizeof(int));
    memset(O_X_Y[i], ' ', MULTIPLE*width*sizeof(int));
}

for (j = 0; j < MAX; j++)
{
    Y_axis = int(MULTIPLE*(y[j] - y_min));
    for (k = 0; k < MAX; k++)
    {
        X_axis = int(MULTIPLE*(x[k] - x_min));
        if (O_X_Y[Y_axis][X_axis] != '*')
        {
            O_X_Y[Y_axis][X_axis] = '*';
        }
    }
}

for (h = 0; h < MULTIPLE*height; h++)//输出二维数组内容
{
    for (w = 0; w < MULTIPLE*width; w++)
    {
        cout << char(O_X_Y[h][w]);
    }
    cout << endl;
}

}

float Found_max(float* array)//float数组中求最大值
{
int i;
float max;
max = array[0];
for (i = 1; i < MAX; i++)
{
if (max < array[i])
{
max = array[i];
}
}
return max;
}

float Found_min(float* array)//float数组中求最小值
{
int i;
float min;
min = array[0];
for (i = 1; i < MAX; i++)
{
if (min> array[i])
{
min = array[i];
}
}
return min;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-10-17 01:16
    关注

    调试,看哪里报错,检查对应代码,是否内存没有分配或者下标越界。

    评论

报告相同问题?

悬赏问题

  • ¥15 springboot项目本地运行正常,部署服务器报错。
  • ¥15 Amd显卡覆盖后就用不了blender的cycles GPU渲染了
  • ¥15 提问部分代码填入Python
  • ¥20 帮我解答一下哪一块是单片机将数据传输到显示屏上显示出来的那部分代码,之后帮我解释这个部分的每一句的意思
  • ¥15 matlab 神经网络集成/融合?
  • ¥15 简化数学表达式,修改为简单求和形式
  • ¥20 光热发电的能量汇聚 求解
  • ¥15 windows连接xbox主机
  • ¥15 帮助看看这个c语言程序
  • ¥50 python表格图片筛查程序问题