C 矩阵生成代码完全失败了,我不知道为什么

C 矩阵生成代码完全失败了,我不知道为什么,c,arrays,if-statement,for-loop,C,Arrays,If Statement,For Loop,下面是我的代码,它不工作(如果它的格式非常糟糕,很抱歉-代码块很糟糕): #包括 #包括 #包括 #定义m 10 空矩阵(int-s,int-i,int-j,双矩阵[s][s],int-opt_-strat[m][m]); 对于(int u=0;u 问题是,第一个函数中的代码应该更改矩阵的条目,但不要 从函数末尾删除分号;matrix\u gen void matrix_gen(......, int opt_strat[m][m][m]);

下面是我的代码,它不工作(如果它的格式非常糟糕,很抱歉-代码块很糟糕):

#包括
#包括
#包括
#定义m 10
空矩阵(int-s,int-i,int-j,双矩阵[s][s],int-opt_-strat[m][m]);
对于(int u=0;u
问题是,第一个函数中的代码应该更改矩阵的条目,但不要

从函数末尾删除分号
matrix\u gen

void matrix_gen(......, int opt_strat[m][m][m]);
                                               ^Remove this semicolon                                      

尽管如此,你的代码还是有太多问题。你必须解决所有问题。

将整型与浮点型进行比较不是一个好主意。
u==s/2
@ScottyBauer u和s都定义为整数,而s总是偶数,因此结果也将是整数…(即使不是,也将四舍五入为整数)是的,它不会被四舍五入为整数。编译器将用浮点类型替换
s/2
。浮点类型有舍入错误,因此当
s/2
在真实数学中可能等于4时,浮点可以表示为3.999999,这显然与4==4不同。好吧,我尝试了一种类似于2*u==s的比较。它没有效果:/由于通常实现的浮点算术系统(如IEEE)可以准确地表示
4
2
,因此期望一个除以另一个为(浮点)是合理的
2
=
整数
2
可能是另一回事。我不知道为什么会有这样的结果。我想那只是一个键盘软糖之类的东西,因为它不在主代码中(正如我所尝试的,如果它在那里,它甚至不会编译)嗯,还有什么问题?要解决所有问题,我必须检查你的整个代码。修复它们需要一些时间,但我忙于学期考试,没有太多时间。希望有人能回答你的问题。祝你好运:)
void matrix_gen(......, int opt_strat[m][m][m]);
                                               ^Remove this semicolon