C语言学习心得 NO.1

目录

1.四舍五入

2.scanf的使用

 3.八进制和十六进制的使用

4.温度转换


1.四舍五入


要实现该功能首先得了解什么是四舍五入:

定义:在取小数近似数的时候,如果尾数的最高位数字是4或者比4小,就把尾数去掉 。如果尾数的最高位数是5或者比5大,就把尾数舍去并且在它的前一位进"1",这种取近似数的方法叫作四舍五入法。

了解定义之后我们再来举几个实际的例子:

要求:1.499 进行四舍五入

1.499 是否大于4或小于等于4。显然我们要观察的数是 1.499 这个数小于等于4,那么上一位数是 1.499 就不用进“1”,所以四舍五入后后 1.499 就应该是1。

编程逻辑:

既然只要大于等于5就能进“1”,我们只需对这个数加0.5即可让个位进“1”,而小于等于4的自然不会进“1”了。在对其强制转换成int类型即可去掉小数部分。

#include<stdio.h>

int main() {
    double a=0.0;
    scanf("%lf",&a);
    if(a>0)
    printf("%d",int(a+0.5));
    else
    printf("%d",int(a-0.5));
    return 0;
}

2.scanf的使用


 该题的难点在于如何把输入的一串数字通过scanf赋值给对应的变量中。

输入:17140216;80.845,90.55,100.00

仔细观察不难发现,前面是一个整型后面三个都是浮点型数字 ,对于中间的;和,应该也要写入

于是scanf就有:

scanf("%d;%f,%f,%f",&num,&mark1,&mark2,&mark3);

之后按题目要求输出即可:

#include <stdio.h>

int main() {
    int num=0;
    float mark1=0.0;
    float mark2=0.0;
    float mark3=0.0;
    scanf("%d;%f,%f,%f",&num,&mark1,&mark2,&mark3);
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",num,mark1,mark2,mark3);
    return 0;
}

 3.八进制和十六进制的使用


 在输出整形的时候我们用的是%d输出的是十进制,那么8进制,16进制呢?

8进制使用的是%o

16进制使用的是%X(X需要大写,否则输出的16进制数中的字母将会是小写)

#的应用

当我们将十进制的15以8进制和16进制的形式输出时

得到的结果分别是        17        F

但是这并不是8进制和16进制的格式

因此我们需要加上#        8进制:%#o        16进制:%#X        (修饰符“#”控制前导显示)

#include <stdio.h>

int main() {
    int a=15;
    printf("%#o %#X",a,a);
    return 0;
}

正确的输出格式如下:


4.温度转换


题目十分简单,只需接受输入的数再按对应的表达式输出即可,但这里有初学者可能掉的一个坑

这是笔者刚开始写的代码:

#include <stdio.h>

int main() {
    double a=0.0;
    scanf("%lf",&a);
    printf("%.3f",5/9*(a-32));
    return 0;
}

公式并没有问题,但是结果却是0.000,无论输入是多少都是0.000。

这是因为,对于5/9*(a-32),5/9被视作两个整形相除,5/9应为0.555无限循环小数,两个整形相除结果也是整形,就会删去小数部分,结果当然是0了,0*任何数都是0,自然无论输入是什么结果都是0了。

所以我们应将算式进行一定的修改:

5.0/9*(a-32)

这样其中一个数是浮点数就不会出现相除为0.xxx而省去小数的情况出现了 。

#include <stdio.h>

int main() {
    double a=0.0;
    scanf("%lf",&a);
    printf("%.3f",5.0/9*(a-32));
    return 0;
}

### 关于C语言基础学习资料与作业示例 #### C语言基础知识分阶段学习建议 学习C语言通常可以按照五个主要阶段逐步深入。第一阶段是掌握基础语法,这是理解程序运行逻辑的关键部分[^1]。第二阶段涉及熟悉并熟练运用标准库中的常用函数,例如`printf()`、`scanf()`等输入输出操作以及字符串处理函数如`strcpy()`和`strlen()`。 第三阶段则要求学生能够理解和实践数据结构及算法的基础概念。这不仅限于数组、链表这样的线性存储方式,还包括树形结构、图论初步等内容;同时还需要了解排序查找等经典算法的工作机制及其时间复杂度分析方法。 进入第四阶段之后,除了继续深化编程能力外,还应该扩展到计算机科学领域内的其他重要主题上,比如操作系统原理或者网络通信协议等方面的知识点介绍。最后,在第五阶段通过实际项目开发来巩固所学理论知识,并提高解决具体问题的能力——即完成一系列实验室练习(lab),构建小型应用程序或模仿现有功能模块(俗称“造轮子”)的过程。 以下是几个典型的C语言入门级作业题目: ```c // 题目一:计算两个整数之和 #include <stdio.h> int main() { int num1, num2; scanf("%d %d", &num1, &num2); printf("Sum is %d\n", num1 + num2); return 0; } ``` ```c // 题目二:判断一个年份是否为闰年 #include <stdbool.h> bool IsLeapYear(int year){ if ((year%4==0 && year%100 !=0)|| (year%400 ==0)) return true; else return false; } void PrintResult(int y){ if(IsLeapYear(y)) puts ("Yes"); else puts("No"); } int main(){ int input_year; while(scanf("%d",&input_year)!=EOF){ PrintResult(input_year); } return 0; } ``` 对于如何有效率地学习C语言这个问题来说,每个人都有不同的经历和心得。有人可能更倾向于通过做大量的习题来加深印象,也有些人喜欢阅读高质量的技术书籍作为指导材料[^2]。无论如何,保持持续不断的练习是非常重要的一步,因为只有亲手编写过代码才能真正掌握其中的技巧。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值