我对编程相对较新,在尝试编写利用循环的函数时遇到了一个问题。该功能应该如下工作:使用循环外的变量,循环内的值发生变化
数组数据由一个51X2组双数组成,它们都在程序中通过初始for循环,a变量和b变量使用。 X和Y变量都被设置为数组的最小值。
以a和X变量为例,X值与a进行比较并递增,直到它超过a。循环迭代的次数由c变量跟踪。这个c变量然后在Graph数组中使用。 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。无论变量初始化如何,都会发生相同的结果。
在'双一访问时,你没有初始化'S' =数据[S] [0];'' – arminb
当你初始化了''和'B'所以你必须S'未初始化未定义的行为 - 任何事情都可能发生,并且确定。此外,在外循环(以及所有后续迭代)的“S == 1”迭代中,“X”已经太大了;你永远不会将它重置回数据[0] [0]。 –
我现在已经初始化S了,谢谢你的支持,但是代码仍然以相同的方式运行。 –