c语言报错syntax error at end of input 怎么修改

#include<stdio.h>#include<math.h>intchlm(intp,intq,inta[][3]){intk,m,n,x,i=0;for(k=p;... #include <stdio.h>
#include <math.h>
int chlm(int p,int q,int a[][3]){
int k,m,n,x,i=0;
for (k=p;k<q;k++)
for(m=k+1;m<=q;m++){
n=k*k+m*m;
x=sqrt(n);
if(x*x==n)
{a[i][0]=k;a[i][1]=m;a[i][2]=x;i++;}

return i;
}
int main()
{
int p,q,i,j,k,a[100][3];
FILE *fp;
fp=fopen("myf2.out","w");

//if (fp==0){printf("Can not open file!");}
printf("\n input p q:");
scanf("%d%d",&p,&q);
k=chlm(p,q,a);
if(k>0){

for(i=0;i<k;i++)
{for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");}
}

else
printf("Not found");

fclose(fp);
}
展开
 我来答
falwat
推荐于2017-09-17 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:26.1万
展开全部
子程序chlm(...)的花括号不匹配:
int chlm(int p,int q,int a[][3])
{
int k,m,n,x,i=0;
for (k=p;k<q;k++)
for(m=k+1;m<=q;m++)
{
n=k*k+m*m;
x=sqrt(n);
if(x*x==n)
{a[i][0]=k;a[i][1]=m;a[i][2]=x;i++; }
}//*******这里少了一个花括号******
return i;
}
另外:
main()函数中文件操作的那几句不需要,没有向文件输出任何数据!
N_0_1
高粉答主

2015-09-16 · 关注我不会让你失望
知道大有可为答主
回答量:8628
采纳率:47%
帮助的人:806万
展开全部
c语言报错syntax error at end of input ,这括号少打,或者多打出现的问题。
根据给出来的程序,可以检查到,chlm这个子程序,最里面的for循环语句少了一个大括号,导致括号不配对。
int chlm(int p,int q,int a[][3])
{
int k,m,n,x,i=0;
for (k=p;k<q;k++)
for(m=k+1;m<=q;m++)
{
n=k*k+m*m;
x=sqrt(n);
if(x*x==n)
{a[i][0]=k;a[i][1]=m;a[i][2]=x;i++; }
} / /这个括号没写
return i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-11
展开全部
少了一个括号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式