A. c语言,为什么运行结果只有个1
如图所示,打印出来e的值为1
那么在while循环中只有a==e即a==1时才会输出a的值
a的初始值为1,所以会输出1,随后a自增,之后就不再输出了
B. c语言吧。为什么输出会是1,而不是0.
printf
的参数并不会自动做类型转换的。
例子中格式串中有“%f”,编译器就会当后边的参数是个浮点数,它不做类型检查。
而把一个
int当成浮点数,因为两种类型的存储结构是完全不同的,后果就难以预料了,有可能程序崩溃,也可能正常运行,但得不到正确的结果。
具体到楼主这个问题,
把整数1当成浮点数处理,那就是符号位0,阶码0,尾数1,是非规范浮点数,不同编译器处理结果可能不同。
所以,不要写出这样的代码。
C. C语言结构问题,为什么结果为1
这是因为在C语言中,两个整数的商,也是一个整数(任何小数的部分,都会被直接“丢弃”)
所以,3/2就等于1了。
如果想要得到1.5的结果,那么就应该输出:
printf("%f\n",(float)s[0].y/s[1].x);
D. C语言为什么结果总是一
你那个for里面 为啥 是(C = string[i] ) != ' \0' 啊 感觉这么些有歧义啊~
你在不同的编译器里面结果不一样~
有的就是判断你C = string[i] 赋值完成 返回1 再和后面比较的
而且还没有for循环 if都没有大括号~~看着很蛋疼 这东西不上机编译一遍 反着我是不敢肯定到底走哪一条分支~
你把大括号补全了,再把那个C的赋值去掉了 直接用string[i] 在里面做运算一样的~看看还出不出错
E. 为什么C语言的结果一直为1
scanf的返回值不是a,而是你输入的变量个数,比如你这个就返回1,scanf("%d%d",
&a,&b)就返回2,你可以在if前面输入a,然后if判断a!=0,也可以这样改if((scanf("%d",&a),
a!=0))