我对编程比较陌生,在尝试编写一个利用循环的函数时遇到了一个问题。该功能应该如下:
数组数据由一组51X2双精度组成,它们都通过初始for循环,a变量和b变量在程序中使用。 X和Y变量都设置为数组的最小值。
以a和X变量为例,将X值与a进行比较并递增,直到超过a。循环迭代的次数由c变量跟踪。然后在Graph数组中使用该c变量。 b和Y变量的过程相同。对S的每个值重复此过程以分析来自Data数组的所有数据点。
我遇到的问题是c
和d
变量相对于循环内部的变化没有变化。变量不会从其初始值更改。我希望找到一个解决方案,允许c
和d
变量相对于for循环的迭代次数发生变化。
相关的功能代码如下所示:
void Data_Plot(double Data[51][2], char Graph[44][56])
{
int N = 50;
int S,q,r;
int c = 0;
int d = 0;
double a = Data[S][0];
double b = Data[S][1];
double X = Data[0][0];
double Y = Data[0][1];
for (S=0;S<N;S++)
{
for(X;X<a;X+=0.1428571429)
{
c++;
}
for(Y;Y<b;Y+=2)
{
d++;
}
Graph[c][d] = '*';
}
我知道我的代码非常不优化和混乱,但我可以在完成这个问题之后解决这些问题。
编辑:我想请注意,我尝试将此c
和d
设置为其他值,并保留为NULL。无论变量初始化如何,都会出现相同的结果。
答案 0 :(得分:2)
由于a
和b
取决于您在S
循环期间更改的for
,因此您需要在循环内移动这些变量。
void Data_Plot(double Data[51][2], char Graph[44][56])
{
int N = 50;
int S,q,r;
int c = 0;
int d = 0;
double X = Data[0][0];
double Y = Data[0][1];
for (S=0;S<N;S++)
{
double a = Data[S][0];
for(X;X<a;X+=0.1428571429)
{
c++;
}
double b = Data[S][1];
for(Y;Y<b;Y+=2)
{
d++;
}
Graph[c][d] = '*';
}