C语言基本输入输出易错易混总结

1.printf(“st=%06.3s\n”,“CCNU”);

%06.3s表示输出字符串“CCNU”中的前三个字符CCN,占6位,前面有0,所以左边要补上三个0,最后输出000CCN

2. int i=1;

printf("%d,%d,%d\n",i,i+1,i=3);

输出表达式时表达式值的计算顺序时从右到左的,
所以最终的输出结果时 3,4,3 而不是1,2,3

3.double f=2.5e5;

printf(“f=%#15.0f”,f);
最后输出: 250000.
表示 一共输出15位,但是小数占0位,右对齐**,有#,表示小数点要输出。**

4.scanf("%3c%3c",&ch1,&ch2);

当输入abcdefg(回车)后,系统将会把“abc”中的a赋值给ch1,把"def"中的d赋值给ch2
因为:当格式控制字符串中指定了输入数据的域宽width时,将读取输入数据中相应的width位,但按照需要的位数赋给相应的变量,多余的部分被舍弃。

  1. 输入一个字母,求该字母的前驱字母和后继字母,代码如下:
#include
void main()
{
    char c,ch1,ch2;
    c=getchar();
    ch1=c==('z'||'Z')?c-25:c+1; 
    ch2=c==('a'||'A')?c+25:c-1;
    printf("%c %c %c",ch2,c,ch1);
}

重点:从z->a,只要减25就好了,好比从10->1,中间明明有十个数,但是只要减9就好了

6.float f;
scanf("%5.2f",&f);
这个语句是不对的,因为输入不能自己规定精度

你可能感兴趣的:(C语言)