c - 为什么我在涉及二维数组的代码中收到此错误?
问题描述
我在这里使用二维数组,我不太习惯。但我不认为我在这里做错了什么。
#include <stdio.h>
#include <math.h>
int square(int x)
{
return x*x;
}
int main()
{
int t; //number of testcases
scanf("%d", &t);
while (t--)
{
int n, m, cnt=1;
scanf("%d %d", &n, &m);
printf("Case %d:\n", cnt);
cnt++;
int arr[n][2]; //the 2d array with the entire record of the positions of the houses in village
for (int i=0; i<n; i++)
{
scanf("%d %d", &arr[i][0], &arr[i][1]);
}
for (int j=0; j<m; j++)
{
int h, x, y, total=0;
scanf("%d %d %d", &h, &x, &y);
arr[h-1][0]=x;
arr[h-1][1]=y;
for (int k=0; k<(n-1); k++)
{
total+=square((arr[k][0])-arr[k+1][0])); //get error "expected ';' before token )"
total+=square((arr[k][1])-arr[k+1][1]));
}
total+=square((arr[n-1][0])-arr[0][0]));
total+=square((arr[n-1][1])-arr[0][1]));
printf("%d\n", total);
}
}
return 0;
}
我想出了这个作为这个问题的解决方案,我将在下面简要描述
山姆在他的村子里分发报纸。该村有 n 栋房屋,编号从 1 到 n,它们可以用笛卡尔点 (x, y) 的形式进行识别。每天早上,Sam 开始从 1 号房屋分发文件,然后按照房屋编号的增加顺序转移到其他房屋。在他的旅程结束时,他回到了房子 1。
在他的旅程之间,他会跟踪这段距离的旅行费用。从一所房子到另一所房子的旅行成本是它们之间欧几里得距离的平方。更复杂的是,这些房子不断地从一个地方移动到另一个地方,改变位置。我们的工作是计算与房屋的最新位置相关的整个旅程的总成本。
现在我们将获得房屋数量 n 和查询数量 m。输入接下来将有 n 行,在每行中,我们将具有该门牌号的相应 x 和 y 坐标。接下来还有 m 行,每行都是一个查询,其中包含更改位置的房屋编号以及该特定房屋的新坐标。
对于每个查询,我们需要打印 Sam 然后绕村屋一圈所需的总成本。
(Dev C++)编译器在我实现 square() 函数的每一行都给我这个错误消息:
预期的 ';' 在 ')' 标记之前
解决方案
它可能是缺少括号或额外的括号?需要最后一个括号吗?
total+=square((arr[k][0])-(arr[k+1][0]));
推荐阅读
- snowflake-cloud-data-platform - 检查雪花中的表架构更改
- css - 如何在 Angular 应用程序中正确设置 PrimeNg 的样式
- latex - Latex(pgffor 包)中的 \for 循环命令是否已被弃用?
- c++ - 从外部 c++ 程序获取结果
- javascript - 如何覆盖或删除“element.style”?
- javascript - 闪烁负值,我想将负值的颜色从黑色变为红色,将正值变为绿色
- java - 当实体没有 Select 查询中提到的 2 个字段时,如何在 JPA 中使用 Select Query 获取记录?
- excel - 根据多个条件返回值
- javascript - VueRouter 不滚动到锚标签
- vue.js - 当我输入无效的 uri 时,Vue 总是重定向到主页