微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命令行输入工作不正确

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

原文地址:https://www.jb51.cc/c/111688.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐