C 覆盖for循环中的值

C 覆盖for循环中的值,c,for-loop,C,For Loop,我有以下代码,其中book是一个结构数组和alpha,beta。是结构的成员: for(i = 0; i < sizeof(book)/sizeof(book[0]); ++i) { n = book[i].alpha; m = book[i].beta; gnm = book[i].gamma; hnm = book[i].delta; dgnm = book[i].epsilon; dhnm = book[i].zeta

我有以下代码,其中book是一个结构数组和alpha,beta。是结构的成员:

 for(i = 0; i < sizeof(book)/sizeof(book[0]); ++i) {
    n    = book[i].alpha;
    m    = book[i].beta;
    gnm  = book[i].gamma;
    hnm  = book[i].delta;
    dgnm = book[i].epsilon;
    dhnm = book[i].zeta;        
}

您需要以附加数据的方式存储它们。这可以通过某种字符串对象或数组来完成。我不确定这里的数据类型是什么,所以我不能给出一个确切的例子,但这样做的目的是避免重复赋值,因为这样只会覆盖循环每次迭代之前的值。您需要更改用于存储数据的操作。现在您正在使用赋值('=')操作,该操作将覆盖以前存储在存档变量中的任何信息

相反,您希望用适当的append函数替换它。对于字符串数据,这可能意味着串联,对于整数数据,您看到的是非常复杂的东西,我建议首先将其转换为字符串,然后存储该数据的串联

所以你的循环看起来像:

for(i = 0; i < sizeof(book)/sizeof(book[0]); ++i)
  {
     append(&n, book[i].alpha);
     append(&m, book[i].beta);     
     append(&gnm, book[i].gamma);
     append(&hnm, book[i].delta);
     append(&dgnm, book[i].epsilon);
     append(&dhnm, book[i].zeta);
  } 
for(i=0;i
其中,
append
是您为数据类型执行适当工作而定义的过程


或者,我假设您可以将存储变量转换为适当类型的数组,只需将传入的数据分配给匹配索引到这些数组中,例如,
n[I]=book[I].alpha
,但这可能是多余的,因为您已经有一个存储该数据的结构数组

请发布图书结构代码您的数据类型是什么?您需要附加值,而不仅仅是赋值。给出
book
的结构定义会很有帮助。当你说你想存储
12345678910112
时,那是作为字符串、数字还是其他什么?你想
delta
。。。我的意思是
hnm
0.04944.40.0结尾-0.9-0.20.9
?它需要是一个字符数组(以及所有其他n,m,…变量),您不能用列出的数据类型(附加到
int
s和
float
s而不是字符串或数组)来实现这一点。您可以使用列出的数组实现这一点,在这种情况下,您可以使用类似于
alpha[i]=book[i].alpha。我仍然不知道你想用这个做什么;这对我来说似乎毫无意义。这似乎是可行的,但我不明白我会为'append'@officerkrupke编写什么程序:这让我们两个成为了一对。如果你看一看你原来帖子上的评论,David Thornley指出没有一种明显有效的方法来附加浮点和整数。如果你能告诉我们你需要对连接的数据做什么,你可能会建议一个选项。在这个网站上的其他人的帮助下,我意识到,只要for循环包含了我所有的计算,我原来的for循环就可以工作。谢谢你的帮助!
for(i = 0; i < sizeof(book)/sizeof(book[0]); ++i)
  {
     append(&n, book[i].alpha);
     append(&m, book[i].beta);     
     append(&gnm, book[i].gamma);
     append(&hnm, book[i].delta);
     append(&dgnm, book[i].epsilon);
     append(&dhnm, book[i].zeta);
  }