C语言代码思路和注释两种方法给定 n 个整数 a1, a2, … , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.
时间: 2023-07-30 16:10:36 浏览: 301
思路:
1. 输入 n 个整数 a1, a2, … , an;
2. 使用两重循环,第一重循环依次取出每一个整数 ai,第二重循环从 i+1 开始遍历到 n,依次取出后面的整数 aj;
3. 计算 ai 和 aj 的乘积,累加到变量 sum 中;
4. 循环结束后,输出 sum。
代码及注释如下:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入整数个数:");
scanf("%d", &n);
int a[n];
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) { // 注意 j 从 i+1 开始遍历
sum += a[i] * a[j]; // 累加两数相乘的结果
}
}
printf("两两相乘再相加的和为:%d", sum);
return 0;
}
```
注释:
- 第 3 行,定义变量 n 和 sum,分别表示输入的整数个数和相乘相加的和;
- 第 4 行,提示用户输入整数个数;
- 第 5 行,使用 scanf 函数读取用户输入的整数个数,存储到变量 n 中;
- 第 6 行,定义长度为 n 的整型数组 a,用于存储用户输入的 n 个整数;
- 第 7 行,提示用户输入 n 个整数;
- 第 8~11 行,使用 for 循环,依次读取用户输入的 n 个整数,并存储到数组 a 中;
- 第 12~15 行,使用两重循环,第一重循环依次取出每一个整数 ai,第二重循环从 i+1 开始遍历到 n,依次取出后面的整数 aj,并累加它们的乘积到变量 sum 中;
- 第 16 行,循环结束后,输出相乘相加的和 sum;
- 第 17 行,程序结束,返回 0。
阅读全文