好的,所以我做了这个程序来帮助我完成我的作业,因为我想提高我的C专业知识.当我执行“
gcc file.c -lm”时,一切都编译得很好,但是当我在命令行中使用数字作为参数运行时,我的程序只返回70.0000.
#include <stdio.h> #include <math.h> #include <stdlib.h> double temp(double hour){ double t = (3.14/12)*hour; double c = cos((double)t); double temp = 13 * c + 57; return temp; } int main ( int argc,char *argv[]){ double temperature = temp((double)atol(argv[0])); printf("%f\n",temperature); }
解决方法
@H_404_7@ argv [0]可能是你的程序名称.你想要argv [1].查看 this tutorial以获得快速简便的解释.除此之外,你是否有理由使用atol(3)并将其转换成双倍而不是仅使用直接返回双精度的atof(3)
?