题解 | 学生基本信息输入输出
学生基本信息输入输出
https://www.nowcoder.com/practice/58b6a69b4bf943b49d2cd3c15770b9fd
#include <stdio.h> int main() { int i = 0; int k = 1; // float num[3] = {0}; 精度低可能造成一些错误 double num[3] = {0}; // 精度更高 int sid = 0; while (k) { // 输入 数组名可以表示一个数组的首元素地址,但对于单独元素的修改,还是要取地址 scanf("%d;%lf,%lf,%lf", &sid, &num[0], &num[1], &num[2]); // 输入信息 if (sid >= 1 && sid <= 20000000) // 限定学号范围 k = 0; // else // printf("学号输入错误"); for (i = 0; i < 3; i++) // 循环判断成绩 { if (num[i] >= 0 && num[i] <= 100) // 限定成绩范围 k = 0; // else // printf("成绩输入错误"); } } // 输出 for (i = 0; i < 3; i++) // 四舍五入保留两位小数的处理 { num[i] = (int)(num[i] * 100 + 0.5) / 100.0; } printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", sid, num[0], num[1], num[2]); // 四舍五入保留小数输出 return 0; }