当前位置:首页 » 编程语言 » c语言编程输出值为0
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程输出值为0

发布时间: 2023-07-31 07:12:07

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,这是为什么

解决办法有两个:

  1. 上图中输入的数据类型为double,不应该使用%f,可以改成%lf

  2. 可以把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.