C语言问题。。

Python012

C语言问题。。,第1张

正确的输入方式是: A) 10A 20B (附带说明:也可以用 10A20B)

输入格式是 "%d%c%d%c"。 %d读入一个整型数值,遇到空格或其它非数字字符时结束,问题是紧接着的%c,是读一个字符,只要是字符,那怕是空白,c1也会读入。所以拍入 10 A 20 B时,c1读入的是空格。类似的, 拍入10A20 B 时,c2 读入的是空格。

而 C) 10A20<CR>的方法 c2 读入的是 回车键,不符合要求。

执行结果不是你预期的值。

在现在的编译器中,int类型占四个自己。char c[2]占两个字节,联合体是共同使用同一块内存,所以,当给联合体中的char数组赋值的时候,你修改的是四个自己里面低位字节的内容。高位是个乱数。所以,输出的内容是不能预期的。但是,根据特定的编译器。在初始化栈区内容的时候,会给一个特定的数值,所以,有可能每次运行你得到的是同一个数值。

1、在C语言中一个数保留1位小数可以通过精度限定符来完成,精度限定符由一个点号后跟一个整数组成。如果要限定小数点后面一位的类型为0或者5,可以使用先乘取整再除的方法进行操作。

2、例程:

#include <stdio.h>

int main(){

    dobule a = 1.23456

    printf("%.1f", ((int)a*2)/2.0)//使用精度限定符%.1f,输出:1.0

    return 0

}