编写函数,求出m个能被3、5或7整除、但不能被其中两个同时整除的所有整数从小
到大放在数组中。在main函数中验证。要求:m在main函数中由键盘输入,数组在main
函数中输出。
#include <stdio.h>
// 判断一个数是否能被3、5或7整除且不能被其中两个同时整除
int judge(int num) {
if (num % 3 == 0 && num % 5 == 0)
return 0;
if (num % 3 == 0 && num % 7 == 0)
return 0;
if (num % 5 == 0 && num % 7 == 0)
return 0;
if (num % 3 == 0 || num % 5 == 0 || num % 7 == 0)
return 1;
return 0;
}
void find_nums(int m, int arr[]) {
int i = 1, cnt = 0;
while (cnt < m) {
if (judge(i)) {
arr[cnt++] = i;
}
i++;
}
}
int main() {
int m;
printf("请输入m值:");
scanf("%d", &m);
int arr[m];
find_nums(m, arr);
printf("能被3、5或7整除、但不能被其中两个同时整除的%d个整数分别为:\n", m);
for (int i = 0; i < m; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:单独写一个函数,用来求字符串的长度。在main函数中输入字符串,调用这个函数并输出他的长度。
#include <stdio.h>
int length(char *str);
int main()
{
int len;
char str[1000]; //定义一个字符串
scanf("%s",str);
len = length(str); //调用计算字符串长度的函数
printf("%d\n",len);
return 0;
}
int length(char *str) //计算字符串长度
{
int count = 0;
while(*str != '\0')
{
count++; //计数
str++; //移动指针
}
return count;
}