回顾C语言中要注意的地方(1)

回顾C语言中要注意的地方(1)

1.整数进行除法

int a,b;
a=11;
b=a/2;
//b=5
如果这样呢:
float a;
a=11;
int b;
b=a/2;
//b=5还是不可
要这样:
float a;
a=11;
int b;
b=(int)(a/2+0.5);
//可以了
一个整形变量,输出/3后的保留一位的浮点数的值,不定义新浮点类型变量的情况下:printf("%.1f",(double)a/3);

2.注意输入的&一定不要落下(除非是数组)

scanf("%d",&b);

char str[10];
scanf("%s",str);数组名前面不用加&

3.putchar、getchar和scanf、printf和gets输入输出字符

scanf和printf
%c识别单个字符,能够识别空格和换行,
%s识别字符串并存到字符数组中,空格或换行标识字符串结束。
putchar和getchar 识别单个字符
处理格式时可以用getchar();吸收掉无用的换行符等。
gets和puts 识别一行字符串
gets识别\n作为输入结束
int a;
char b[10];
scanf("%d",&a);
//输入a后直接回车,gets会读入一个回车,所以用getchar来吸收这个回车
getchar();
gets(b);
printf("%d",a);
puts(b);
puts输出一行字符串后回紧跟一个换行
C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
在这里插入图片描述

4.double类型的变量

scanf时是%lf
printf时是%f

5.变量初值

尤其要注意,如果变量没有赋初值直接在后面使用是不会得到想要的结果的,系统可能随机给变量赋了一个初值。特别注意创建一个变量用于计数等时,一定不要忘记赋初值。
如果定义相同类型、相似含义的变量,并且要初值为0的话可以通过数组来设定,能够简洁一些。如:int count[5] = {0};

4.字符串

创建数组时至少要比实际存储字符串长度多1。
int型数组末位不加\0,只有char类型数组加。
每个一维数组、二维数组第二维最后一位是空字符\0(NULL ASCII码为0,空格ASCII码为32),表示字符串的结尾,puts和printf通过识别\0来辨别字符串结尾,如果没有遇到\0输出会乱码。gets和scanf会在读入字符串后自动加\0,其他方式要手动在字符串最后加“\0”。

5.数组作为函数参数

第一维不需要填写长度,第二维需要。调用时只需要写数组名。
数组作为参数时,在函数中修改会对原数组进行修改。
(与普通局部变量不同)

6.输出一个空格

printf(" ");

7.数组

    int n,m;
    scanf("%d",&n);
    int dis[n+1];
    for(int i=1;i<=n;i++){
        scanf("%d",&dis[i]);
    }
    for(int i=1;i<=n;i++){
        printf("%d",dis[i]);
    }

但是

    int n,m,dis[n+1];
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&dis[i]);
    }
    for(int i=1;i<=n;i++){
        printf("%d",dis[i]);
    }

会出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值