【发布时间】:2014-11-11 23:58:36
【问题描述】:
所以我尝试查找一些看起来很有帮助但最终没有用的东西。
我应该在单独的函数中将 6x8 矩阵初始化为二维数组。我有三个文件,一个主函数文件,一个函数文件和一个头文件。
这里是main中的相关代码
int plate[MAX_ROWS][MAX_COLS];
double A = 0, B = 0, T1 =0, T2 = 0, C = 0;
printf("\n");
printf("Welcome to the Heat Plate Simulation\n\n");
printf("Enter: Heat-A, Heat-B, Plate-1, Plate-2, Stab-Crit\n\n");
scanf("%lf%lf%lf%lf%lf", &A,&B,&T1,&T2,&C);
那我试试
initialize_plate(plate,T1, T2);
去
void initialize_plate(int plate[][MAX_COLS],double T1, double T2)
{
plate[MAX_ROWS][MAX_COLS] = {
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1}
};
return;
}
我收到的错误是 7P_functions.c:14:32: error: expected expression before ‘{’ token *板[MAX_ROWS][MAX_COLS] = {
鉴于我对此错误的研究,我唯一的猜测是它与已经初始化的数组有关,但我不确定如何纠正这个问题,而如果我在函数中初始化数组而不是在main 不就变成局部变量了吗?
任何帮助将不胜感激。
【问题讨论】:
-
赋值不等同于初始化。您必须遍历每个索引来分配值。
-
感谢您的意见
-
plate元素的类型是int,但T1和T2的类型是double。 -
我把它们都改成了双打,谢谢,在尝试解决这个问题时也看到了
-
最好在这一行的输入数字之间至少留一个空格:scanf("%lf%lf%lf%lf%lf", &A,&B,&T1 ,&T2,&C);此外,还需要检查对 scanf() 调用的返回值,以确保格式字符串的所有转换都成功。在这种情况下,该值应为 5
标签: c arrays initialization