C语言编程填空题和算法分析题求答案,急
发布网友
发布时间:2022-05-02 05:22
我来回答
共1个回答
热心网友
时间:2022-06-28 14:34
第一题:
#include <stdio.h>
long fun(int n) { // 计算1到n 所有数的乘积 1 * 2 * 3 *...n
long fac= 1;
int i;
for (i = 1; i <= n; i ++) {
fac *= i;
}
return fac;
}
int main(void) {
int i;
long sum = 0;
for (i = 1; i < 4; i += 2) { // 循环 2次 i = 1 3
sum = sum + fun(i);
}
printf("sum=%ld\n", sum);
return 0;
}
第二题:
#include <stdio.h>
// 元素首位交换位置
void fun(int x[], int n) {
int i, j, temp;
i = 0; j = n - 1;
while (i < j) {
temp = x[i];
x[i] = x[j];
x[j] = temp;
i ++;
j --;
}
}
int main(void) {
int x[] = {1, 2, 3, 4, 5, 6};
fun(x, 6);
for (int i = 0; i < 6; i ++) {
printf("%2d", x[i]);
}
// 运行结果 6 5 4 3 2 1
return 0;
}
第三题:
#include <stdio.h>
double fun(double x[3][4]) {
int i, j;
double sum = 0;
for (i = 0; i < 3; i ++) {
for (j = 0; j < 4; j ++) {
sum = sum + x[i][j];
}
}
return sum / 12;
}
int main(void) {
double x[3][4] = {{1.2, 3.1}, {6.5}, {2.6, 8.9}}, ave;
ave = fun(x);
printf("ave=%lf\n", ave);
return 0;
}