使用c++ 编写函数,求出在正整数m和n之间(m<n)能被3整除、但不能被5整除的数的个数,在主函数中输入正整数m,n(m<n),调用该函数,输出函数返回结果。
时间: 2024-05-03 08:23:08 浏览: 14
```
#include <stdio.h>
int count(int m, int n) {
int cnt = 0;
for (int i = m; i <= n; i++) {
if (i % 3 == 0 && i % 5 != 0) {
cnt++;
}
}
return cnt;
}
int main() {
int m, n;
printf("请输入正整数m和n(m<n):");
scanf("%d%d", &m, &n);
printf("在%d和%d之间能被3整除、但不能被5整除的数的个数为:%d\n", m, n, count(m, n));
return 0;
}
```
相关问题
用c++写给定正整数N。请求2和N都能整除的最小正整数。
你好!要找到一个能同时被2和N整除的最小正整数,你可以使用一个循环来逐个尝试正整数,直到找到符合条件的数为止。以下是一个使用C++编写的示例代码:
```cpp
#include <iostream>
int findSmallestDivisible(int N) {
int num = 1;
while (true) {
bool divisibleByN = (num % N == 0);
bool divisibleBy2 = (num % 2 == 0);
if (divisibleByN && divisibleBy2) {
return num;
}
num++;
}
}
int main() {
int N;
std::cout << "请输入一个正整数N:";
std::cin >> N;
int result = findSmallestDivisible(N);
std::cout << "能同时被2和" << N << "整除的最小正整数是:" << result << std::endl;
return 0;
}
```
这段代码中的 `findSmallestDivisible()` 函数会逐个尝试正整数,直到找到能同时被2和N整除的最小正整数为止。然后,在 `main()` 函数中,我们从用户输入获取正整数N,并调用 `findSmallestDivisible()` 函数来求解结果。
希望这能帮到你!如果还有其他问题,请随时提问。
用c++编写函数 给定一个包含n个正整数的数组,自定义函数,计算数组中能被3整除的数的平均值 (精确到小数点后2位),要求利用指针实现并在主函数中进行输入输出
好的,下面是代码实现:
```c++
#include <iostream>
using namespace std;
void calcAvg(int *arr, int n, float *avg) {
int sum = 0, count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] % 3 == 0) {
sum += arr[i];
count++;
}
}
if (count > 0) {
*avg = (float)sum / count;
}
}
int main() {
int n;
cin >> n;
int *arr = new int[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
float avg = 0;
calcAvg(arr, n, &avg);
printf("%.2f", avg);
delete[] arr;
return 0;
}
```
解释一下:
- `calcAvg` 函数用于计算数组中能被 3 整除的数的平均值,并把结果存入 `avg` 指针指向的变量中。
- `main` 函数中,先读入数组长度 `n`,然后动态分配一个长度为 `n` 的数组 `arr`,并读入 `n` 个整数存入数组中。
- 接着,定义一个 `float` 类型的变量 `avg`,并调用 `calcAvg` 函数计算结果。
- 最后,输出结果并释放动态分配的数组空间。
注意:输出时要保留小数点后两位,因此使用了 `printf` 函数。