关于数组和创建函数的问题

编写函数a将数组中所有能被三整除的数都存放在另一个数组,编写主函数实现数组定义数组,数组调用函数a并输出结果

img

代码中,arr函数接收两个参数,分别是原数组a和用于存放能被三整除的数的数组b。在函数中,对于原数组a中能被三整除的数,将其存放到数组b中。在主函数中,首先定义数组c和d,并从标准输入中读取数组c的元素。然后,调用arr函数,将能被三整除的数存放到数组d中。最后,遍历数组d中的元素,输出不为零的数。

#include<iostream>
using namespace std;

int arr(int a[10], int b[10]) {
    for (int i = 0; i < 10; i++) {
        if (a[i] % 3 == 0) {
            b[i] = a[i];
        }
    }
}

int main() {
    int c[10], d[10];
    for (int j = 0; j < 10; j++) {
        cin >> c[j];
    }
    arr(c, d);
    for (int k = 0; k < 10; k++) {
        if (d[k] != 0) {
            cout << d[k] << endl;
        }
    }
    return 0;
}


寻找可以被3整除的函数中,可以单独定义一个下标变量用于指示存储在数组b中可以被3整除的整除的存储位置;

然后因为定义存储结果的数组b为全局变量,所以不需要再返回数组b,可以返回可以被3整除的个数,然后在主函数中根据这一个数来打印存储在数组b中的相应位置的结果。

修改如下:


#include <iostream>
using namespace std;
int i,n,b[10];

int arr(int a[10]) {
    int num=0;
    for(i=0;i<10;i++){
        if(a[i]%3==0){
            b[num]=a[i]; //数组b单独使用一个下标变量来指示存储被3整除的数的位置 
            num++;
        }
    }
    
    return num;  // 因为定义了存储结果的数组为全局变量,所以这里返回被3整除的整数的个数,以打印结果 
}

int main(void){
    int c[10],j,k,d[10];
    for(j=0;j<10;j++){
        cin>>c[j];
    }
    
//    for(j=0;j<10;j++){
//        cout<<c[j]<< " ";
//    }
//    cout<<endl;
    
    int num=arr(c);
    for(k=0;k<num;k++){  // 根据函数的返回值来打印数组b中的结果 
        cout<< b[k]<<endl;
    }
    
    return 0;
}

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^