【牛客练习题】BC11 学生基本信息输入输出

本文详细介绍了如何使用C语言处理BC11学生的各科成绩输入,如17140216号学生80.845、90.55和100.00分,并展示了相应的输出格式。讨论了float和double类型精度对程序的影响,以及在不同精度需求下的选择策略。
摘要由CSDN通过智能技术生成

BC11 学生基本信息输入输出

在这里插入图片描述

示例1
输入: 17140216;80.845,90.55,100.00

输出: The each subject score of No. 17140216 is 80.85, 90.55, 100.00.

解题思路

#include<stdio.h>
int main()
{
    int id=0;
    float c=0.0f;
    //系统默认数据0.0为double类型,0.0后面加上f使系统认定这个数是float类型
    float math = 0.0f;
    float eng = 0.0f;
    
    scanf("%d;%f,%f,%f",&id,&c,&math,&eng);
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",id,c,math,eng);
    //%.2d :使数据保留两位小数
    
    return 0;
}

额外知识加成

float c=0.0f;
//系统默认数据0.0为double类型,0.0后面加上f使系统认定这个数是float类型

double 对应的输出格式为 %lf

double 和float

我们输入一个小数12.45
内存会将其转化为二进制进行存储
使用0和1来进行凑12.45这个值,只能无线逼近,但并不能精确储存
存储的数据可能是12.44444444444986894…

double类型和float类型的精度不一样,所以存储的数据的精确度有所差异,误差也有所区别
所以做题的时候,我们不知道后台对数据是如何处理的,所以如果因精确度程序无法通过,我们可以通过更换数据类型来通过题目

精度要求高用double
精度要求不高用float

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值