编写函数fun,求出a到b之内能被7或者11整除

题目描述

编写函数fun,求出a到b之内能被7或者11整除,但不能同时被7和11整除的所有正数,并将他们放在数组中,函数返回这些数的个数。编写main函数,输入a,b的值并调用函数进行运算。

编写函数fun,求出a到b之内能被7或者11整除
输入

从键盘输入a,b的值(1<=a<=b<1000),用以下格式字符串输入a,b的值:
scanf("%d%d",&a,&b);

输出

用以下格式字符串输出数组中的元素的值:"%d "(注意:%d后面有一个空格)

样例输入1:
1 20 <回车>
样例输出1:
7 11 14
样例输入2:
50 100 <回车>
样例输出2:
55 56 63 66 70 84 88 91 98 99

c

5个回答

 int fun(int a, int b, int arr[])
{
int n = 0;
for (int i = (a > 0 ? a : 1); i <= b; i++)
{
if ((i % 7 == 0 || i % 11 == 0) && (i % 77 != 0))
{
arr[n] = i;
n++;
}
}
return n;
}
int main()
{
int a, b;
int * arr = (int *)malloc(sizeof(int) * (a - b + 1));
scanf("%d%d",&a,&b);
int n = fun(a, b, arr);
for (int i = 0; i < n; i++) printf("%d ", arr[i]);
}

http://ideone.com/PJRZ9L
在线验证
输入 50 100
输出 55 56 63 66 70 84 88 91 98 99

#include
#include
#include
#include

using namespace std;

int fun(int a, int b, int[]);

int main()
{

printf("请输入两个数:\n");
int a = 0;
int b = 0;
int buf[1024] = {0};

scanf("%d%d", &a, &b);

int ret = fun(a, b, buf);
printf("符合条件的个数有%d个\n", ret);
printf("符合条件的数是:\n");

for(int i = 0; i < ret; i++)
{
    printf("%d    ", buf[i]);
}
printf("\n");



return 0;

}

int fun(int a, int b, int buf[])
{
int num = 0;
for (int i = a; i < b; i++)
{
if ((i % 7 == 0 && i % 11 != 0) || (i % 7 != 0 && i % 11 == 0))
{
buf[num] = i;
num++;
}
}

return num;

}

#include
int count=0;
int *fun(int a,int b);

int main(void){
int a,b,index;
int *result;
scanf("%d%d",&a,&b);
result=fun(a,b);
for(index=0;index<count;index++)
printf("%d ",result[index]);

}

int *fun(int a,int b){
int array[1000];
int num;
for(num=a;num<=b;num++){
if((num%7==0)||(num%11)==(0&&num%77!=0))
array[count++]=num;
}
return array;
}

要求个数的话数学公式可解,代码如下:
而且是最快的,要求具体值的话则用楼上的代码遍历即可

 #include<stdio.h>
#include<string.h>
int fun(int a1, int a2){
    int k1 = ((a1 % 7 == 0) ? a1 : (a1 + 7 - a1 % 7)),
        k2 = ((a1 % 11 == 0) ? a1 : (a1 + 11 - a1 % 11)),
        k3= ((a1 % 77 == 0) ? a1 : (a1 + 77 - a1 % 77));
    int s1 = ((a2 - a2 % 7) - k1) / 7 + 1,
        s2 = ((a2 - a2 % 11) - k2)/ 11 + 1,
        s3 = ((a2 - a2 % 77)-k3) / 77 + 1;
    return s1 + s2 - s3 * 2;
}
int main(){
    int a, b;
    scanf_s("%d %d", &a, &b);

    printf("%d", fun(a, b));
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问