#include<stdio.h>
int main()
{
long int stu;
double grade;
int a;
scanf("%ld %lf", &stu, &grade);
printf("%08ld\n", stu);
printf("%d\n", (int)(grade + 0.5));
int i = (int)(grade + 0.5);
/*这个代码指的是一个四舍五入的方式,用于处理四舍五入*/
a = (i >= 0) + (i >= 60) + (i >= 64) + (i >= 66) + (i >= 68) + (i >= 72) + (i >= 75) + (i >= 78) + (i >= 82) + (i >= 85) + (i >= 90);
switch (a)
{
case 1:printf("%.1f\n", 0.0); break;
case 2:printf("%.1f\n", 1.0); break;
case 3:printf("%.1f\n", 1.5); break;
case 4:printf("%.1f\n", 1.7); break;
case 5:printf("%.1f\n", 2.0); break;
case 6:printf("%.1f\n", 2.3); break;
case 7:printf("%.1f\n", 2.7); break;
case 8:printf("%.1f\n", 3.0); break;
case 9:printf("%.1f\n", 3.3); break;
case 10:printf("%.1f\n", 3.7); break;
case 11:printf("%.1f\n", 4.0); break;
}
return 0;
}
本程序的关键之处在于如何处理“四舍五入”这个问题。我们常用如下方法实现:
(int)(a+0.5)即可。
很巧妙的用了取整规则。
也不用导入math.h
同样注意负数的情况。
把 + 换成 - 即可.
float f = …..;
int i = (int)(f + 0.5);
i就是f四舍五入的结果。
用 long int 与int没有多大差别,因为两者都是2个字节的,但不同就在于规范情况下我们对于
long int用%ld输入。如果要进行初始化,则应写成如下形式,用小写的l也是一样的
我们在使用double和float时是有不同之处的。double在进行scanf输入时我们要用%lf,而float则用%f。在打印时均用%f即可。
绩点转换图 如上。
后续还会进行更新。身为一个新的博主呢,我会向大家介绍C语言一些简单的运用,后续还会针对本题详细解释。陆续会更新关于C语言的常见100~200题不等。
我呢,也会学着写博客,给大家尽量解答。本博客,只适用于初学者的入门,后续还会有所更新。不懂得可私信我。应该后续还会推出关于《大学物理》简单问题的讲解部分,大家多多关注。