请删帖。
本帖最后由 xhtxhtxht 于 2023-1-25 15:33 编辑请删帖。
代码如下
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc,char * argv[])
{
if(argc == 1){
printf("请输入一元二次方程的标准形式下的二次项系数,一次项系数和常数项!");
return 0;
}
if(argc != 4){
printf("输入的参数不符合规则!");
exit(1);
}
int nums = {0};
for(int count = 0;count < 4;count++)
nums = atoi(argv);
float delta;
delta = nums * nums - 4 * nums * nums;
if(delta < 0){
printf("无解!");
return 0;
}
float x1,x2;
x1 = (-nums + sqrt(delta)) / (2 * nums);
x2 = (-nums - sqrt(delta)) / (2 * nums);
printf("x1 = %.2f\nx2 = %.2f",x1,x2);
return 0;
}
windows gcc正常编译,linuxgcc加-lm也可以,但是运行时段错误 这个程序应该怎么用?
执行的时候输入什么?
啥意思?啥是段错误? if(argc != 4){
printf("输入的参数不符合规则!");
exit(1);
}
int nums = {0};
for(int count = 0;count < 4;count++)
nums = atoi(argv);
你这是越界了啊,你要求 argc == 4,argv 只能索引 0 - 3 ,但是你 +1 就越界了。
命令行参数 argv 是程序名称 赚小钱 发表于 2021-7-11 14:14
你这是越界了啊,你要求 argc == 4,argv 只能索引 0 - 3 ,但是你 +1 就越界了。
命令行参数 argv
改成 for int count = 0; count < 3; count++ 嘿嘿 赚小钱 发表于 2021-7-11 14:14
你这是越界了啊,你要求 argc == 4,argv 只能索引 0 - 3 ,但是你 +1 就越界了。
命令行参数 argv
感谢大神指正!
页:
[1]