int main(int argc,char *argv[]){
float height,base,area;
if(argc>=1){
printf("%s %s",argv[1],argv[2]);
height=atof(argv[1]);
base=atof(argv[2]);
area=(height*base)/2;
printf("%f, %f, %.2f",height,base,area);
}
return 0;
}
当我在我的计算机上使用c的atof()
函数转换浮点代码时,这个c代码取高度和基数的平均值,但有些如何在我朋友的计算机上正常运行代码。这是为什么?
答案 0 :(得分:2)
很可能你忘了包含stdlib.h并且你没有得到正确的返回类型atof作为double。始终查看编译器为您提供的所有警告。
#include <stdlib.h>
#include <stdio.h>
int main(int argc,char *argv[]){
double height,base,area;
if(argc==3){
printf("%s %s\n",argv[1],argv[2]);
height=atof(argv[1]);
base=atof(argv[2]);
area=(height*base)/2;
printf("%f, %f, %.2f",height,base,area);
}
else{
fprintf(stderr,"Usage:\n\t%s height base\n",argv[0]);
}
return 0;
}