学生基本信息输入输出

学生基本信息输入输出

https://www.nowcoder.com/practice/58b6a69b4bf943b49d2cd3c15770b9fd?tpId=107&tqId=33292&tPage=1&rp=1&ru=%2Fta%2Fbeginner-programmers&qru=%2Fta%2Fbeginner-programmers%2Fquestion-ranking

分析:

依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩。
本题只需要利用scanf,cin等输入函数,按照格式输入显示即可,重点要注意浮点数的输入,输出格式.

题解1:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int number = 0;
    float c_score = 0.f, math_score = 0.f, english_score = 0.f;
    scanf("%d;%f,%f,%f", &number, &c_score, &math_score, &english_score);
    //%.2f控制精度
    printf("The each subject score of  No. %d is %.2f, %.2f, %.2f.\n", number, c_score, math_score, english_score);
    return 0;
}

题解2:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int number = 0;
    char ch = 0;
    float c_score = 0.f, math_score = 0.f, english_score = 0.f;
    cin >> number >> ch >> c_score >> ch >> math_score >> ch >> english_score;
    cout << fixed;
    //setprecision用于控制输出精度
    cout << "The each subject score of  No. " << number << " is " << setprecision(2) << c_score << ", " << math_score << ", " << english_score << '.' << endl;
    return 0;
}

总结:

本题使用了C/C++内置的函数scanf,cout等用于数据的输入输出,特别注意的是cout的输出精度控制更加繁琐一些,需要调用setprecision函数设置,灵活性上不如printf使用的格式。

全部评论
怎么有一些用例输进去不对呀,21.195出来就是21.19
点赞 回复 分享
发布于 02-14 11:12 四川
问一下英语的成绩你可以过吗? 就是80.845的 我使用了题解二 发现英语的成绩过不了只能 是80.84 然后换成80.805就可以变成80.81 求解
点赞 回复 分享
发布于 2022-03-27 20:08
大佬,想请问一下,1:题解一中scanf("%d;%f%f%)%d为什么要用“;”而不是用“,”,一用逗号后面三个就是0.00,0.00,0.00; 2:为什么不能用double算,要用float?
点赞 回复 分享
发布于 2022-02-09 23:57

相关推荐

青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
7
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务