回复 7楼 LeslieCh
你的可能是程序运行超时了吧, 不用排序的.
我的代码你提交的结果是什么?
#include <stdio.h> #include <stdlib.h> int main(void) { unsigned n; unsigned *a; // 动态分配内存 unsigned s = 0; // 求和.过桥的时间. int i, min; scanf("%u", &n); a = (unsigned *)malloc(n*sizeof(unsigned int)); if (a == NULL) exit(1); for (i = 0; i < n; i++) scanf("%u", &a[i]); for (min = a[0], i = 1; i < n; i++) { if (a[i] >= min) // 大于min的值求和. s += a[i]; else { s += min; // 有新的最小值.先把现在的min求和. min = a[i]; // 再将min赋最小值. } } if (n == 1) // n == 1; s = a[0]; printf("%u\n", s); free(a); // 释放内存。 return 0; }