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

c语言输出值为1

发布时间: 2022-07-31 15:34:49

A. c语言吧。为什么输出会是1,而不是0.

printf
的参数并不会自动做类型转换的。
例子中格式串中有“%f”,编译器就会当后边的参数是个浮点数,它不做类型检查。
而把一个
int当成浮点数,因为两种类型的存储结构是完全不同的,后果就难以预料了,有可能程序崩溃,也可能正常运行,但得不到正确的结果。
具体到楼主这个问题,
把整数1当成浮点数处理,那就是符号位0,阶码0,尾数1,是非规范浮点数,不同编译器处理结果可能不同。
所以,不要写出这样的代码。

B. C语言中 什么情况下结果是 1和0

#include<stdio.h>
main()
{
int a=100;
if(a>100) printf("%d\n",a>100); //a=100不大于100,所以不成立
else printf("%d\n",a<=100); //a=100成立,所以输出(a<=100)表达式的结果,即:1
}
对于商上面这个算法,无论a的值是多少,输出的都是 1.

C. C语言:为什么这道题目输出结果为1,结题思路是什么

定义一个变量a赋值为100
判断如果100是不是大于100,很显然结果不是,所以执行else.
就输出1,在输出的时候会有一个判断,a<=100.是对的就为1,所以最后输出的结果就为1.

D. c语言问题为什么输出为1

scanf在%c控制下只接收一个字符,你输入的是100,1被c接收,00还留存在输入缓冲区里……

E. C语言代码如下: 运行结果是:1 为什么我给a赋值是2啊,为什么a会变成1

你括号里是=符号,而不是==符号,因此不是赋值,而是逻辑运算
a初始赋值a=2,那么a=1为假,输出1
如果你想赋新的值,并输出新的赋值,将if后面括号里的=符号改为==

F. c语言问题 我的为什么输出一直为1

首先,你这个东西输出的不是1,而是一个不确定值(IND),说明出现除零错误。
经过debug发现阶乘出现0.很明显,问题在于阶乘时的变量''没有初始化。初始化为1,你这个程序就能用了。
楼上抢先了,他就是正解。

G. C语言中 printf("%d\n",sizeof(void)); 输出结果为1 为什么

我在vc中试过了,结果是0
sizeof是取字节运算符,void是空类型,sizeof(void)运算的结果是void类型的变量所占的内存单元(即字节数)数,我认为应该是0,你的输出结果是1,可能你的版本和我的不一样,使用的编译器不一样吧
你可以试试sizeof(int),int 类型的变量占4个内存单元(4个字节),所以结果为4
或sizeof(float)
float类型也占四个字节,所以输出结果也为4
希望对你有所帮助

H. c语言为什么输出的是1

说起来有点麻烦的,主要是内存调用导致声明的级别(这里是int)不同;
显然级别最高的是外部声明int i=1;(假设级别为1)
而在函数调用里面只要级别跟它一样的时候(即不再对i进行再次声明,像main里面就对i进行了3次的声明,级别分别为2,3,4,因为i前面都有int还有代表级别规划的{}),此时的i==1,显然funct里面因为输出i比int i=5(级别为2)先,所以输出的是1级别的i,即为i==1.
如果你觉得难理解的话,可以看这个程序:
#include<stdio.h>
void main()
{
int i=2;
{
int i=3;
{
int i=4;
}
}
printf("%d",i);
}它输出的是2(i的级别为1,2,3)
如果只把int i=3的int去掉,它输出的是3(i的级别分别是1,1,2);
如果只把int i=4的int去掉,它输出的是2(i的级别分别是1,2,2);
反正是该死的{}和int作怪,跟i是不是外部变量没关系,看这个代码:
#include<stdio.h>
int i=1;
void f()
{
printf("%d\n",i);
int i=5;
}
void main()
{
i=2;//仅将int删了,使这里i的级别变为1
{
int i=3;
{
int i=4;
}
}
f();//所以它输出2而不是1
}

I. 这个c程序为什么输出结果为1

a > 100 或者说 a <= 100,这两个表达式是布尔型数据,结果要么是true(对应数字就是1),要么是false(对应数字是0),很显然if (a > 100)是不正确的,所以打印else的结果,这个结果是a <= 100,由于a是100,a <= 100这个表达式是true,对应的数字结果就是1。
在C语言中布尔值就是0和非0,0就是false,非0就是true。
不过这种表达式的结果类型是布尔型的值,就只有0和1。

J. c语言,第二个printf输出的结果为什么是1求解释,在线等

初值a=3,b=2,c=1
a>b的结果为真,真在C需要中用1表示,所以a>b的结果就是1