我在这里处理2d数组,我不太习惯。但是我不认为我在这里做错了什么。
#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()函数的每一行上给我此错误消息:
预期为';'在')'令牌之前
答案 0 :(得分:0)
它可能是缺少的括号还是多余的括号?最后一个需要吗?
total+=square((arr[k][0])-(arr[k+1][0]));
答案 1 :(得分:0)
编译器应提示您从哪里开始查找
main.c:38:52: error: expected ‘;’ before ‘)’ token total+=square((arr[k][0])-arr[k+1][0])); //get error "expected ';' before token )" ^ main.c:38:52: error: expected statement before ‘)’ token main.c:39:52: error: expected ‘;’ before ‘)’ token total+=square((arr[k][1])-arr[k+1][1])); ^ main.c:39:52: error: expected statement before ‘)’ token main.c:42:51: error: expected ‘;’ before ‘)’ token total+=square((arr[n-1][0])-arr[n-1][0])); ^ main.c:42:51: error: expected statement before ‘)’ token main.c:43:51: error: expected ‘;’ before ‘)’ token total+=square((arr[n-1][1])-arr[n-1][1])); ^ main.c:43:51: error: expected statement before ‘)’ token
如您所见,您有几行带有额外的$.fn.dataTable.ext.type.detect.unshift(
function ( d ) {
return (d === 'Low' || d === 'Medium' || d === 'High' || d === 'Urgent') ?
'ticket-priority' :
null;
}
);
$.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {
switch ( d ) {
case 'Low' : return 1;
case 'Medium' : return 2;
case 'High' : return 3;
case 'Urgent' : return 4;
}
return 0;
};
$( document ).ready( function()
{
// Initializing datatables.
$('#ticketList').DataTable({
"paging" : false,
"info" : false,
"searching" : false,
"order" : [[ 0, "desc" ]],
"columnDefs": [ {
"type": "ticket-priority",
"targets": -1
} ]
});
});
。
此外,好的文本编辑器可以为您执行括号匹配:
答案 2 :(得分:0)
您应该从这些行中删除一个多余的括号(')'
)
total+=square((arr[k][0])-arr[k+1][0]));
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]));
,请仔细检查您的while
状况。
#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]); //removed extra ')'
total+=square((arr[k][1])-arr[k+1][1]); //removed extra ')'
}
total+=square((arr[n-1][0])-arr[0][0]); //removed extra ')'
total+=square((arr[n-1][1])-arr[0][1]); //removed extra ')'
printf("%d\n", total);
}
}
return 0;
}
答案 3 :(得分:0)
#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;
}
似乎有多余的寄生物
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]));