如何在C语言中用数组模拟天平秤比较金币的过程?
时间: 2024-09-09 09:08:58 浏览: 75
在C语言中,模拟天平秤比较金币的过程可以通过定义两个数组来实现,一个数组代表左侧的金币重量,另一个代表右侧的金币重量。通过比较两个数组中金币的总重量来判断天平的倾斜情况。以下是一个基本的示例代码:
```c
#include <stdio.h>
// 假设每枚金币的重量都是相同的,这里用一个固定的值表示
#define GOLD_COIN_WEIGHT 10
// 比较两个数组代表的金币总重量
// 返回值为:
// -1 表示左侧较重
// 0 表示重量相同
// 1 表示右侧较重
int compareGoldWeights(int leftWeights[], int rightWeights[], int numCoins) {
int leftTotal = 0;
int rightTotal = 0;
// 计算左侧和右侧金币的总重量
for (int i = 0; i < numCoins; i++) {
leftTotal += leftWeights[i];
rightTotal += rightWeights[i];
}
// 比较总重量
if (leftTotal > rightTotal) {
return -1; // 左侧较重
} else if (leftTotal < rightTotal) {
return 1; // 右侧较重
} else {
return 0; // 重量相同
}
}
int main() {
// 假设有5枚金币,分别放在左侧和右侧
int leftWeights[5] = {GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT};
int rightWeights[5] = {GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT, GOLD_COIN_WEIGHT};
int result = compareGoldWeights(leftWeights, rightWeights, 5);
// 输出比较结果
switch (result) {
case -1:
printf("左侧较重\n");
break;
case 1:
printf("右侧较重\n");
break;
case 0:
printf("两侧重量相同\n");
break;
default:
printf("发生错误\n");
break;
}
return 0;
}
```
在上述代码中,我们定义了一个`compareGoldWeights`函数用于比较两个数组的总重量,然后在`main`函数中创建了两个数组模拟金币重量,并调用`compareGoldWeights`函数比较它们,最后根据返回值输出比较结果。
阅读全文