www.fltk.net > 下面的C语言编程结果为什么是0?

下面的C语言编程结果为什么是0?

for循环语句,只包括a【i】=i*i;当i=5时,a【i】=i*i这条语句不执行.换句话说,就是a【5】这个值并不存在,属于越界数组元素.因为a数组只有5个元素,从0开始,你懂的.这是编译器默认给出的越界数值.懂了吧 小伙子挺有意思的.呵呵

你的buf大小只有4,而“AAAA”是五个字节,也就是说存在内存错误,看起来,多出的那个'\0'存到了i里;改正很简单,buf[5]再试试.

scanf ("%lf",&x); 这一句写错了.

因为 4/2.0 计算结果是浮点数,不能按整数格式输出,引起错误.修改一下,把 4/2.0 的计算结果做一个强制类型转换,转换为整数后,用%d 格式输出才是正确的#include int main(){printf("%d\n",(int)(4/2.0));system("pause");}

因为你定义的是float型的,最后x的值是65.00 而非65换int试试..

原因:在函数countValue()中重定义了变量cnt,sum,这样这两个变量在函数countValue()中称为了局部变量,它们的作用域是这个函数内部,与主函数中的cnt和sum没有任何关系,所以最后输出的值为0,应该把函数countValue()中对cnt和sum的定义去掉即可:void countValue() {int i,j,k=1; for(i=800;i>500;i--) { for(j=2;j<i;j++) if(i%j==0) break; if(j==i) { cnt++; sum=sum+k*i; k=k*(-1); } } }

每个case后面需要有一个break.不然会继续执行,也就是每次i=3

上面说得很清楚了,另外提醒最好加上头文件

c语言中关系表达式返回值为0或1,即如果为真返回1,为假返回0.x=a>b>c;>为关系运算符,优先级高于赋值运算符=,并且>符号的运算从左向右进行.先算a>b,为真,返回1再算1>c,为假,返回0再算x=0;输出x的值为0

这属于下溢出,计算机直接附给0,如果是上溢,则计算机会报错

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com