以下是一个用C++编写的解决方案:\n\ncpp\n#include <iostream>\n#include <vector>\nusing namespace std;\n\nint main() {\n int n, k;\n cin >> n >> k;\n \n string parts;\n cin >> parts;\n \n int maxQualifiedCount = 0;\n for (int i = 0; i <= n - k; i++) {\n vector<int> counts(7, 0); // counts[i]表示等级为i的零件数量\n int totalCount = 0; // 检测的零件数量\n \n for (int j = i; j < i + k; j++) {\n if (parts[j] == 'S') counts[0]++;\n else if (parts[j] == 'A') counts[1]++;\n else if (parts[j] == 'B') counts[2]++;\n else if (parts[j] == 'C') counts[3]++;\n else if (parts[j] == 'D') counts[4]++;\n else if (parts[j] == 'E') counts[5]++;\n else if (parts[j] == 'F') counts[6]++;\n totalCount++;\n }\n \n int qualifiedCount = 0; // 合格零件数量\n for (int j = 0; j < 7; j++) {\n if (counts[j] > 0) {\n qualifiedCount += counts[j];\n break; // 只需要计算最高等级的零件数量即可\n }\n }\n \n maxQualifiedCount = max(maxQualifiedCount, qualifiedCount);\n }\n \n double maxQualifiedRate = (double)maxQualifiedCount / (double)k;\n cout << maxQualifiedRate << endl;\n \n return 0;\n}\n\n\n使用示例:\n\n输入:\n10 3\nAABBCDDFFS\n\n输出:\n0.333333\n\n\n上述代码首先读取输入的n和k,然后读取零件的等级信息,接着使用两个循环来检测所有可能的连续k个零件。在内层循环中,使用一个数组counts来记录每个等级零件的数量,totalCount记录检测的零件数量。然后根据题目要求,求出合格零件的数量qualifiedCount。最后,将qualifiedCount与之前的最大值maxQualifiedCount比较,更新maxQualifiedCount。最后,计算出maxQualifiedRate并输出结果。

C++ 代码实现:质检员检测零件合格率

原文地址: https://www.cveoy.top/t/topic/pUY1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录