c语言读取文件后转换成散点图的代码怎么做
以下是一个简单的示例代码,用于读取文件中的数据并将其转换为散点图:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <graphics.h>
#define MAX_POINTS 1000
int main()
{
FILE *fp;
char filename[100];
int i, j, n, gd, gm;
float x[MAX_POINTS], y[MAX_POINTS], max_x, max_y, min_x, min_y, scale_x, scale_y;
printf("Enter the filename: ");
scanf("%s", filename);
fp = fopen(filename, "r");
if (fp == NULL)
{
printf("Error: Could not open file.\n");
exit(1);
}
n = 0;
while (!feof(fp) && n < MAX_POINTS)
{
fscanf(fp, "%f %f", &x[n], &y[n]);
n++;
}
fclose(fp);
gd = DETECT;
initgraph(&gd, &gm, NULL);
max_x = min_x = x[0];
max_y = min_y = y[0];
for (i = 0; i < n; i++)
{
if (x[i] > max_x)
max_x = x[i];
else if (x[i] < min_x)
min_x = x[i];
if (y[i] > max_y)
max_y = y[i];
else if (y[i] < min_y)
min_y = y[i];
}
scale_x = (getmaxx() - 100) / (max_x - min_x);
scale_y = (getmaxy() - 100) / (max_y - min_y);
setcolor(RED);
for (i = 0; i < n; i++)
{
j = (int)((x[i] - min_x) * scale_x) + 50;
k = (int)((max_y - y[i]) * scale_y) + 50;
putpixel(j, k, RED);
}
getch();
closegraph();
return 0;
}
该程序首先要求用户输入要读取的文件名。然后,它打开该文件并读取其中的数据,将其存储在两个数组中:一个包含所有的x坐标,另一个包含所有的y坐标。在读取完所有数据后,程序计算出x和y坐标的最大值和最小值,并计算出一个比例因子,以便将这些坐标缩放到适当的范围内。最后,程序使用图形库中的putpixel函数将每个点绘制在屏幕上,形成散点图。
原文地址: https://www.cveoy.top/t/topic/bZua 著作权归作者所有。请勿转载和采集!