初识C语言的易错点1

1.  \0(转义字符)是一个字节,空格也是一个字节。

2.  =是赋值(如:int a = 0;这个是初始化,再写a = 1;这个是赋值)

连续赋值(从左到右)

如:int a = 3;int b = 4;int c = 5;

a = b = c + 5;//a = 10,b = 10,c = 5

==是判断(一般放在if while的()里等)。

3.  全局变量(放在main函数外面定义的变量)

当变量未初始化时(如:int a;),之后也没有进行赋值,则a默认为0

局部变量(在{}内定义的变量)

当变量未初始化时(如:int a;),之后也没有进行赋值,则a默认为随机值

注意:当局部变量与全局变量同名时,局部变量优先(“同名局部优先”)

如:#include <stdio.h>
int a = 3;
int main()
{
    int a = 4;
    printf("%d", a);
    return 0;
}

4.  /(除法),若整数/整数,结果为整数(如:5/2 = 2),但只要其中有一个浮点数,结果就带有小数(如:5.0/2 = 2.500000,或为5/2.0,或5.0/2.0,我用vs2022默认为float型)

5.  %(取模或取余),只能是整数%整数

负数取模结果正负号由第一个运算符的正负号决定

如:#include <stdio.h>
int main()
{
    printf("%d\n", 11 % -5);//1
    printf("%d\n", -11 % -5);//-1
    printf("%d\n", -11 % 5);//-1
    return 0;
}

6.  输出格式

最小宽度

%5d输出的宽度至少为5位,不够补0,默认右对齐,该数大于5位就打印全部

%12f输出的浮点数至少12位,默认小数点后六位,注意:小数点也算一位

最小小数位数

%.2f小数点后保留2位,注意:会四舍五入(如0.467,用%.2f打印为0.47)

输出部分字符串

printf("%.5s\n","hello world")  //"hello"

7.  scanf的返回值

如果没有读取任何项,或考匹配失败,则返回0。

如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量EOF。

如果读取成功,返回scanf读取的项的个数

#include <stdio.h>

int main()

{
    int a=0;int b=0;
    float f = 0.0f
    int r = scanf("%d %d %f", &a, &b, &f);

    printf("a=%d b=%d f=%f",a, b, f);
    printf("r = %d\n",r);//r为scanf读取的项
    return 0;
 }
输入输出测试:1 2 3.14  a = 1,b = 2,c = 3.140000,r = 3

若输入1 2 加三次Ctrl+z(vs环境),可提前结束

应用

#include <stdio.h>
int main()
{
    int a, b;
    printf("please input two numbers:>");
    while (scanf("%d%d", &a, &b) == 2)
    {
        if (a > b)
            printf("%d > %d\n", a, b);
        else if (a == b)
            printf("%d = %d\n", a, b);
        else
            printf("%d < %d\n", a, b);
    }
    return 0;
}

可以多次输入

8.  scanf中的占位符


%d:整数。
%f:float 类型浮点数。
%lf:double 类型浮点数
%Lf:long double 类型浮点数
%s :字符串。
%[]: 在方括号中指定一组匹配的字符 (比如 %[-9]),遇到不在集合之中的字,匹配将会停止。

注意:除%c以外,都会忽略起首的空白字符,若要跳过,scanf(" %c".&ch)

要特别说一下占位符 %s ,它其实不能简单地等同于字符串。它的规则是,从当前第一个非空白字符开始读起,直到遇到空白字符 (即空格、换行符、制表符等) 为止。

9.  赋值忽略符

%*c

有时,用户的输入可能不符合预定的格式。

scanf("%d-%d-%d",&a,&b,&c);这时必须输入 数字-数字-数字,若想随便输入,可以写成这样(“%d%*c%d%*c%d",&a,&b,&c),这时输入 数字-数字-数字,数字——数字——数字 都可以

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lzc217

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值