#include <stdio.h>
#define MAX_N 500
int main() {
int price[MAX_N];
int n = 0;
// 当scanf成功读取到一个整数并将其存入数组后,会返回1。
// 因此,条件scanf("%d", &prices[n]) == 1检查是否成功读取了一个整数。
while (scanf("%d", &price[n]) == 1) {
n++;
}
//将priec数组复制一份,例如5 12 7 13,变成5 12 7 13 5 12 7 13,来模拟圆环13后面第一个比13小的是5
int tmpPrice[n * 2];//或者MAX_N*2
for (int i = 0; i < n * 2; i++) {
tmpPrice[i] = 0;
}
for (int i = 0; i < n; ++i) {
tmpPrice[i] = price[i];
}
for (int i = n; i < n * 2; ++i) {
tmpPrice[i] = price[i - n];
}
int res[n];
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n * 2; j++) {
if (price[i] > tmpPrice[j]) {
res[i] = price[i] + tmpPrice[j];
break;
} else {
res[i] = price[i];
}
}
}
printf("%d", res[0]);
for (int i = 1; i < n; ++i) {
printf(" %d", res[i]);
}
return 0;
}
相关文章
- IDA 汇编码反编译成C代码 - lydstory
- C语言assert用法 看到一个宏, 它大概是这样的: #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__)) 代码的含意简单, 关键是那个 (void)0 的用法, 我还是第一次见到(别笑). 我用 void 的时候, 有两种情况: 1.放到函数前面, 强调函数没有返回值, 也就是说函数不能作右值 如: voi
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph) - 转
- 记录下一个C++初始化的方式(很少有人这么用,但是却是一个使代码更加简洁的方式)
- 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句
- 用C#中实现的,调用CMD来执行BCP的代码
- 用C#用C#实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码
- 华为OD机试题【机智的外卖员】用 C++ 编码,速通
- 根据Unicode编码用C#语言把它转换成汉字的代码
- 用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠