求a的n次方,不知道哪错了
#include<stdio.h>float mypow(float x,int y)
{float i=0,s=1;
for (int i=0; i<=y;i++)
s =s*x;
return(s)
}
main()
{
float a=0.5;
int n=5;
printf("%f",mypow(a,n));
getch();}
#include<stdio.h> float mypow(float x,int y) {float i=0,s=1; //对float类型,建议初始化的时候这样写float s=1.0; 尽管编译器看到float会把1当成1.0 for (int i=0; i<=y;i++) //这里对i进行了重复的声明, 编译器会报错的. 另外, 对于乘方来说, 这里i需要注意是从0开始还是1开始 //以便后面究竟是用<还是≤. s =s*x; return(s) //C的重要组成部分,分号";" } main() { float a=0.5; int n=5; printf("%f",mypow(a,n)); getch();}
建议main()使用以下格式: #include <stdio.h> int main(int argc, char *argv[]) { //程序代码; return 0; } 直接main(){}的写法在有的编译器上是没法通过编译的.
--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW-------------------- 检查文件依赖性... 正在编译 D:\lili\C-Free\Temp\未命名1.c... [Error] D:\lili\C-Free\Temp\未命名1.c:4: error: conflicting types for 'i' //变量'i'类型冲突 [Error] D:\lili\C-Free\Temp\未命名1.c:3: error: previous definition of 'i' was here //变量'i'在此处已经定义 [Error] D:\lili\C-Free\Temp\未命名1.c:4: error: 'for' loop initial declaration used outside C99 mode //for循环内定义使用了非C99方式. [Error] D:\lili\C-Free\Temp\未命名1.c:7: error: syntax error before '}' token //"}"前有句法错误. 一般是忘记";" [Warning] D:\lili\C-Free\Temp\未命名1.c:14:5: warning: no newline at end of file /*文件最后没有新的一行. 这是个警告. 在网上查了下相关的内容, 没有找到中文的, 看了下英文的相关描述, 个人理解的大致意思就是一般来说不会有什么影响. 但是对于大型程序, 源文件多的时候可能会出现宏定义和/或文件包含错误. */ 构建中止 未命名1: 4 个错误, 1 个警告