求大佬看看这个问题
c4droid吧
全部回复
仅看楼主
level 4
BK_2014
楼主
2017年02月19日 12点02分
1
level 6
理智利心
错误太多,不知道怎么说,我就问一句你这个程序想表达个啥?
scanf("%d",&i);
2017年02月19日 13点02分
2
BK_2014
我是野路子。。第一次用这个软件。。一不小心漏了地址符。。。这段代码还有什么错误吗?
2017年02月19日 13点02分
BK_2014
如果可以的话顺便帮我看下另外一段代码(见楼下)
2017年02月19日 13点02分
level 4
BK_2014
楼主
2017年02月19日 13点02分
4
BK_2014
又漏地址符
2017年02月19日 13点02分
理智利心
@BK_2014
首先给你几点建议,数据最好用double型,输出的话就是%lf。 第二点,语句可以简化点,在if语句中,可以直接输出答案。比如: else if(z=0) printf("x=%lf",(-b+sqrt(z))/(2*a) 这样程序就简化了。
2017年02月19日 13点02分
ljq6521
if(z==0) printf("x=%lf",-b/(2*a)。重点是==而非=
2017年02月21日 09点02分
level 6
理智利心
你输入输出的全是a,但是你的for语句是关于i的运算,所以这段程序没有意义
2017年02月19日 13点02分
5
BK_2014
最上面那个我就是为了测试一下这个软件的啊。。。。dalao帮我看看下面那个呗
2017年02月19日 13点02分
level 6
理智利心
给你几点建议,数据用double型好点。其次if语句可以简化,比如
else if (z=0) printf("x=%lf",(-b+sqrt(z))/(2*a));另外,输入放在开头就行。其他不懂的可以问我
2017年02月19日 14点02分
6
BK_2014
我想知道这个error怎么产生的
2017年02月19日 14点02分
理智利心
@BK_2014
你把后面的main()删除,把float语句和scanf语句放在开头就行了
2017年02月19日 14点02分
暗~夜
@理智利心
你在胡扯啥
2017年02月21日 03点02分
BK_2014
@暗~夜
没事其实就是我眼瞎漏了个括弧
2017年02月21日 13点02分
level 10
6l3_永远
a没有地址号,根据stdarg.h的原理是直接把a这个int解析成int*指针(二进制不变,大概可以参考C++的reinterpret_cast),a又没有初始化,这样就是个野指针。往野指针写东西是访问不属于程序的内存,引起段错误(SIGSEGV)。
2017年02月20日 03点02分
8
6l3_永远
段错误就是他写的出现一个signal,是segmentation error的信号,sigsegv是这个信号的名称
2017年02月20日 03点02分
level 13
暗~夜
主函数必须定义为整型:
int main ()
{
.......
return 0;
}
2017年02月21日 03点02分
9
BK_2014
如果不这么定义的话会怎么样?
2017年02月21日 13点02分
暗~夜
@BK_2014
这是C99标准的要求
2017年02月21日 16点02分
暗~夜
@BK_2014
现在大部分的编译器都在朝这个方向发展
2017年02月21日 16点02分
暗~夜
@BK_2014
不这么定义,它会报错
2017年02月21日 16点02分
level 3
甏絾
神规范
2017年02月21日 04点02分
10
BK_2014
说了我是野路子
2017年02月21日 13点02分
1