求助,只有第一个对了,用的冒泡排序
查看原帖
求助,只有第一个对了,用的冒泡排序
1402541
aphasia313楼主2024/7/26 11:38
#include <stdio.h>
int swap(int a, int b) {
	int c;
	c = a;
	a = b;
	b = c;
	return 0;
}
int main() {
	double n, t, v[101] = {}, w[101] = {}, a[101] = {}, ans;
	scanf("%lf %lf", &n, &t);
	for (int i = 1; i <= n; i++) {
		scanf("%lf %lf", &w[i], &v[i]);
		a[i] = v[i] / w[i];
	}
	for (int i = 0; i < n - 1; i ++) {//冒泡排序
		for (int j = i + 1; j < n; j ++) {
			if (a[j] < a[j + 1]) {
				swap(a[j], a[j + 1]);
				swap(v[j], v[j + 1]);
				swap(w[j], w[j + 1]);
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		if (t > w[i]) {
			t -= w[i];
			ans += v[i];
		} else {
			ans += t * a[i];
			break;
		}
	}
	printf("%.2lf", ans);
}
2024/7/26 11:38
加载中...