JIENANYA 2021-10-10 11:08 采纳率: 66.7%
浏览 37
已结题

全局变量和传地址的形式参数

1.遇到的问题和现象描述:
我习惯用局部变量来解决问题,所以起初我把bool型的数组定义在main函数中,然后在调用赋值函数(tu(k))时加上形参tu(int k, bool tu[][], int n, int n);然后出错了……

img


显示:declaration of 'a' as multidimensional array must have bounds for all dimensions except the first(声明'tu'为多维数组必须对除第一个维度外的所有维度有边界 )

img


然后我又删除了一个参数:
tu(int k, bool a[][],int n)还是不行。
显示:[Error] invalid types 'bool[int]' for array subscript(数组下标哦bool[int]无效)

img


(我用a代替tu数组)

2.我想问的问题是:(1)这道题必须将tu数组设为全局变量吗?如果不是该怎么去让他传入参数呢?
(2)数组a[2][2] = true !? 那第一部分第四个怎么变为'Y'(我的源代码在此情况下无法正确输出'Y')。我在这里将其分别设为 a[0][0] = a[0][1] = a[1][0] = true;
a[1][1] = false;
3.下面是我仿照作者你的代码写的代码

#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
#define MAXSIZE 10000
bool a[MAXSIZE][MAXSIZE];//初始化数组(10阶) 
void InitArray(int k);
int main()
{
    int t;//试验次数 
    int k;//logo阶数
    //第一部分初始化赋值 
    a[0][0] = a[0][1] = a[1][0] = true; 
    a[1][1] = false;
    InitArray(2);//数组赋值(10阶) 
    int i, j;
//    cout<<"请输入你想要实验的次数:";
    cin>>t;
    while(t){
//        cout<<"请输入logo的阶数:";
        cin>>k;
        //直接输出对应位值的元素 
        for (i=0; i<pow(2,k); i++){
            for (j=0; j<pow(2,k); j++){
                if (a[i][j]) cout<<'S';
                else cout<<'Y';
            }
            cout<<"\n";
        }
        t--;
    }
}
//数组赋值(<10阶全部赋值) 
void InitArray(int k)//n为阶数          //思想:将其分为四个部分,根据i,j,k变化填充。 
{
    if (k==10) return ;
    int n = pow(2,k);
    int m = n/2;
    int i, j;
    //第二部分 
    for (i=0; i<m; i++){
        for (j=m; j<n; j++){
            a[i][j] = a[i][j-m];
        }
    } 
    //第三部分 
    for (i=m; i<n; i++){
        for (j=0; j<m; j++){
            a[i][j] = a[i-m][j];
        }
    }
    //第四部分 
    for (i=m; i<n; i++){
        for (j=m; j<n; j++){
            a[i][j] = (!a[i][j-m]);//反转 
        }
    } 
    InitArray(k+1);
}

  • 写回答

1条回答 默认 最新

  • CSDN专家-Time 2021-10-10 11:14
    关注

    你可以把数组当作全局变量处理。
    如果想作为形参处理。需要定义边界。 bool arrs[][10]这样

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果