用C语言编程 程序功能:输入一个正整数 n 和 n 个正整数,分别求 n 个整数之和与 7 的倍数的奇数平均值(输出结果保留两位小数)。
时间: 2024-02-25 22:54:11 浏览: 246
好的,我来为你解答这个问题。以下是程序的代码:
```c
#include <stdio.h>
int main() {
int n, num, sum = 0, count = 0;
float avg = 0.0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
sum += num;
if (num % 7 == 0 && num % 2 == 1) {
avg += num;
count++;
}
}
avg = count == 0 ? 0 : avg / count;
printf("Sum of %d integers: %d\n", n, sum);
printf("Average of odd multiples of 7: %.2f\n", avg);
return 0;
}
```
程序通过循环输入 n 个正整数,并累加求和。同时,如果输入的数是 7 的倍数且为奇数,则累加求平均值。最后输出两个结果。需要注意的是,如果没有符合条件的数,则平均值为 0。
希望能够帮助到你!
相关问题
用C语言编程 程序功能:输入正整数 m 和 n,求 m 和 n 的最小公倍数。要求定义并调 用函数 gbs(m,n)求 m 和 n 的最小公倍数。
好的,我可以为您提供该程序的代码。请参考下面的示例代码:
```c
#include <stdio.h>
int gbs(int m, int n);
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d%d", &m, &n);
printf("%d和%d的最小公倍数为:%d\n", m, n, gbs(m, n));
return 0;
}
int gbs(int m, int n) {
int max, min, i, lcm;
max = m > n ? m : n;
min = m < n ? m : n;
for (i = 1; i <= min; i++) {
lcm = max * i;
if (lcm % min == 0) {
return lcm;
}
}
return max * min;
}
```
在该程序中,我们首先通过 `scanf` 函数获取用户输入的两个正整数 `m` 和 `n`,然后调用函数 `gbs` 计算它们的最小公倍数,并通过 `printf` 函数输出结果。
函数 `gbs` 的实现采用了暴力枚举的方法,从最小公倍数开始逐个判断是否能同时被 `m` 和 `n` 整除,如果能,则返回该最小公倍数;否则继续枚举下一个最小公倍数,直到找到能被同时整除的最小公倍数为止。如果枚举完所有可能的最小公倍数后仍然没有找到能被同时整除的最小公倍数,则直接返回 `m` 和 `n` 的乘积作为它们的最小公倍数。
C语言编写一程序:输入两个正整数a和b,求其最小公倍数
以下是C语言程序,用于求两个正整数a和b的最小公倍数:
```c
#include <stdio.h>
int main() {
int a, b, max;
printf("请输入两个正整数a和b:\n");
scanf("%d %d", &a, &b);
// 求出a和b的最大公约数
for (int i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
max = i;
}
}
// 最小公倍数为a和b的乘积除以最大公约数
int min = a * b / max;
printf("最小公倍数为:%d\n", min);
return 0;
}
```
运行程序后,输入两个正整数a和b,程序会输出它们的最小公倍数。
阅读全文