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);
} 展开
#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);
} 展开
3个回答
展开全部
子程序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()函数中文件操作的那几句不需要,没有向文件输出任何数据!
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()函数中文件操作的那几句不需要,没有向文件输出任何数据!
展开全部
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;
}
根据给出来的程序,可以检查到,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
展开全部
少了一个括号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询