pat乙级 1020 月饼
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> typedef struct { double st; double mo; double q; } cake; int main() { int n, m; int i = 0; scanf("%d %d", &n, &m); cake moon[n]; for (i = 0; i < n; i++) { scanf("%lf", &(moon[i].st)); } for (i = 0; i < n; i++) { scanf("%lf", &(moon[i].mo)); } for (int i = 0; i < n; i++) { moon[i].q = moon[i].mo / moon[i].st; } cake temp; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (moon[i].q < moon[j].q) { temp = moon[i]; moon[i] = moon[j]; moon[j] = temp; } } } double max = 0; i = 0; double all=0.0; for(int i=0;i<n;i++){ all=all+moon[i].st; } if (m >=all ) { double allmo; for(int i=0;i<n;i++){ allmo=allmo+moon[i].mo; } printf("%.2f",allmo); } else { while ((m - moon[i].st) > 0) { max = moon[i].mo + max; m = m - moon[i].st; i++; } max = max + m * moon[i].q; printf("%.2f", max); } return 0; }
用结构体做的 花了好多时间啊 全是用在格式控制上 折腾半天

浙公网安备 33010602011771号