⑴ c语言输出值为0
#include<math.h>
#include<stdio.h>
#include<conio.h>
intmain()//些微intmain(),最后return0;
{
doublesum=0,n=0;//因为最后得到的肯定是小数,所以定义为double类型
inti;//i定义为int
for(i=1;i<=40;i++)
{
sum=(pow(-1,((double)i+1.0))*(1.0/i));//将i转换为double进行运算
n+=sum;//这里不是n=sum++;如果写为n=sum++的话,那n每次循环的值是
//sum的值+1;正确的应该是将n的值加上sum的值
}
printf("值为%lf",n);
getch();//这里引入头文件#include<conio.h>,目的是便于观察结果
return0;
}
参考一下吧
⑵ 刚学c语言,这个输出值为什么是0
scanf语句错误,应该改为:scanf(“%f%f%f”,&v,&n,&m)才能让系统读入值,否则的话,v,n,,m的值都是零,所以最后总和也为0.你可以用一下下面的代码。
#include<stdio.h>
#include<math.h>
int main()
{
float v, n, m;
float a = 3.5;
float b = 3.5;
float c = 3.5;
scanf("%f%f%f", &v, &n, &m);
float t, y, u;
float o;
t = v * a;
y = n * b;
u = m * c;
o = t + y + u;
printf("%f", o);
return 0;
}
求关注!!
⑶ C语言程序,为什么输出0不应该是1吗
不对,小数和整数在计算机中的二进制表示法不一样的,系统只是提供了转换的功能而已,使用printf输出的时候,是不会自己转换的,而是强制使用指定格式输出
比如说这个程序,最后a中存储的值(double类型)是1.000000,这个值,前16位(二进制)肯定是0,所以使用%d格式的时候,它不会判断对应的变量是什么类型,就直接把它的前16位以整数的形式输出,所以输出的结果必然是0
所以使用%d并不能使输出结果转换为对应的整数,请改用%.0f输出(因为你的变量a是double型),就可以输出1
⑷ C语言编程设计过程中输出结果总为0,这是为什么
解决办法有两个:
上图中输入的数据类型为double,不应该使用%f,可以改成%lf
可以把double改成float,但是精度会变低
⑸ C语言问题:为什么输出结果是0
int x=0.5,x的值是向下取整的0
0&&1得0,0&&任何数得0,不再计算后项表达式的值,称为&&的短路运算。
因此表达式(x&&1)&&(z<'z')的值是0。
⑹ c语言为什么输出结果为0
因为scanf("%f",&moHeight);输入母亲身高后会按回车输入换行符' '
此时下一句scanf("%c ",&sex);读到的是' '而不是'F'或'M'
因此switch语句没有执喊唯腊行,h最终为默认值0
修改方法是在scanf("%c",&sex);前加一句getchar();来吸收山蔽换行符' '
或者修改为scanf(" %c",&sex); //注郑滑意%c后的 最好不加,在某些编译器会阻塞输入
修改后的代码和运行结果如下:
输出正常,望采纳~
⑺ 这段c语言程序为什么会输出0
如果后面还有一个int s,你要求输出s。因为你的第一个s已经赋值为0了,第二个s在循环里面,还没有跑完就直接输出了,这时候输出的是第一个s,当然是0了。至于去掉int后,s指向于刚开始你定义的int s,经过循环运算后,s就被赋值为30了。
⑻ C语言中编译正确,但是运行结果显示全是0,怎么回事啊
a=1/2×b×n,这个表达式是有问题的,1÷2求商的话,他永远等于零,所以你的结果不管输入什么都是为零的。
⑼ C语言 输出结果为什么是0
short类型默认大小为2字节,所能表示的最大无符号数为2^16-1=65535。而对核岁short类型变量a赋值为65536时超出short类型数据罩局的范围,发生溢出。65536=(10000000000000000)B。最高位1被舍去,物氏让a的值为0.b理所当然为0.