一个简单的c程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 06:43:12
#include <stdio.h>
long abc(int m,int n);
int i;
{ for(i=1;i<n;i++)
m*=m;
}
main()
{
int x,y;
printf("enter x,y");
scanf("%d%d",&x,&y);
printf("x的y次方为%le",abc(x,y));
}

tc总是提示for(i=1;i<n;i++) 这一行有语法错误 请教是哪错了
谢谢大家了 我把程序改成
#include <stdio.h>

long abc(int m,int n);
{int i;
for(i=1;i<n;i++)
m*=m;
return(m);
}
main()
{
int x,y;
printf("enter x,y");
scanf("%d%d",&x,&y);
printf("x的y次方为%le",abc(x,y));
}
可是又提示 int i;这行出错

你的long abc(int m,int n); ----1
int i; ---2
{ for(i=1;i<n;i++) ----3
m*=m;
}
放在的main的外面,所以n是不能获取的;
就是3中的n不能用做是1中的n;
所以n是没有值的;

补充:

把long abc(int m,int n); 后的;去掉
你把函数与函数体分开了

把 int i ; 放到方法体里...

或者试着把long abc(int m,int n); 放到 int i 后面试一下

1."{"应加在int i;语句前。
2.abc函数没有return m;语句。
3.m,n最好定义为long类型,因为m=m*m。结果为m