#include <stdio.h> main( ) { int a=8,b=5,c; printf("%f",c=a/b+0.4); }

我是初学者,请详细点,谢谢了!

printf("%f",c=a/b+0.4); --- 这个写法有问题。c 是 整型,不能用 %f 格式,只能用 %d 格式。

a/b -- 整型 除以 整型 得 整型,8/5 得 1,是否是你想要的?

可以用:
#include <stdio.h>
main( ) {
int a=8,b=5;
float c;
c = (float)a/b+0.4;
printf("%f",c);
}追问

但是我那样的确可以运行啊,运行结果是0.000000,我不明白运行结果为什么是这个,谢谢!

追答

程序可以跑,不等于结果就是正确的。
c 是 整型,c= 把表达式结果转整型赋给c,你在用浮点格式 %f 格式输出。整型 与 %f 不匹配, 你用 %f 就有运行错误。得到0.000000 是运行错误产生的结果。
编译器(编译器设计者)有自己的思维方法,所以你想猜 怎么个错法,得出 0.00000,这很困难,花时间研究这个,也太不值得。

printf("%f",a/b+0.4); 可以,得 1.4
printf("%f", (float) a/b+0.4); 可以,得 2.0
printf("%f",c=a/b+0.4); 得0.00000,因为格式与类型 不匹配。

追问

哦,原来是这样啊,谢谢了O(∩_∩)O

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-27
#include<stdio.h>includes是预处理命令stdio.h是头文件你只要记住就够了,不懂没关系。
main()这叫主函数,不懂没关系
{
int a=8,b=5,c; int是数据类型,a,c,b 是变量
printf("%f",c=a/b+0.4); printf标准输出;
}里面的=,+ 跟数学是一样的,
说了这么多,其实写程序不是太需要你知道这些东西,只要你做就行了,就是在电脑上打出来,一个个打,打多了就自然回了,计算机是工科,实践型的,懂?
不懂追问,我再跟你讲讲,懂了求accept追问

不好意思,我想问的是这个程序的运行结果为什么是0.000000?

追答

你是不是多加了个等于啊c==…

追问

没有啊,原题就是这样的。

追答

这个就不清楚了

追问

哦,那谢谢了O(∩_∩)O

有定义:int a=8,b=5,c;,执行语句 c=a\/b+0.4;后,c 的值为 ()。 A...
ab都是int型,所以a\/b还是int型,a\/b值为1 1+0.4赋值给int型的c,只保留整数部分,所以选择B

...若有定义:int a=8,b=5,c;执行语句c=a\/b+0.4;后,c的值为多少?_百度...
c=1,因为a\/b默认是取整计算!即5\/8=1,c=1+0.4=1。计算过程中小数点之后的全部舍去。不是按四舍五入计算!int类型在内存中占用了4个字节,也就是32位。int类型是有符号的,因此,32位并不会全部用来存储数据,使用最高位来存储符号,最高位是0,提示数据是正数,最高位是1,表示数据是负...

...#include 〈stdio.h〉 main()     {int k=
A.8,17

#include<stdio.h> main() { int a=5,b=8,c=3,max; max=a; if(c>b...
main(){ int a=5,b=8,c=3,max;max=a;if(c>b)\/\/该if没有else与它配对 { if(c>a){ max=c;} else\/\/这个else与上面的if配对 { if(b>a)\/\/这个if没有else与它配对 { max=b;} } } printf("max=%d\\n",max);} 程序执行时,max=a,即max=5;执行第一个分支语句if(c>b)时,...

#include<stdio.h> void main( ) { int a,b,
1、是不执行。2、使用if()语句1;语句2; 只有紧跟其后的一条语句属于这个if(),也就是说语句1;是这个if()的,语句2;就不是了。要想使语句2;也属于这个if()需要使用大括号,如下:if(){ 语句1;语句2;} 3、a=10,b=c;使用逗号运行符,算一句。

#include<stdio.h> void main( ) { int a,b,
include<stdio.h> void main( ){ int a,b,c;a=10;b=50;c=30;if(a>b) \/\/这里a小于b,不满足要求,因此if作用域内的代码不会执行的 c=a=10,b=c;c=a;printf("a=%d,b=%d,c=%d",a,b,c);}

#include<stdio.h> int main() { int a,b,c; scanf("%d,%d",&a,&b...
我试了一下, 是没有问题的。可能的结果就是你输入时的逗号和scanf里面的逗号不一致,

#include"stdio.h" main() { int a=-1,b=6,c; c=(++a<0)&&(--b>=0...
c=(++a<0)&&(--b>=0);以上在C语言里叫逻辑短路了,当++a<0的结果为0时,后面的表达式将不在执行,因此b还是原来的值6了

...# include<stdio.h> main() { int a=0; double b=0.0; a=b=123\/1...
答案是:1,1.000000 如图:

#include <stdio.h> void main() { int a,b,c; scanf("%d,%d",&a,&...
include <stdio.h> int main(){ int a, b, c;scanf("%d%d", &a, &b);c = a - b;if(c > 0){ a = b;b += c; \/\/错在这里,if(c>0) { ... } } printf("%d %d", a, b);return 0;}

相似回答
大家正在搜