命令行输入工作不正确

好的,所以我做了这个程序来帮助我完成我的作业,因为我想提高我的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);
}

解决方法

argv [0]可能是你的程序名称.你想要argv [1].查看 this tutorial以获得快速简便的解释.

除此之外,你是否有理由使用atol(3)并将其转换成双倍而不是仅使用直接返回双精度的atof(3)

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...