vaghxc 2024-01-02 11:18 采纳率: 88.2%
浏览 6
已结题

求答疑 形参指针怎么用

题目是写一个函数,使给定的一个3*3的二位整型数组转置,即行列互换
想知道自定义函数的形参怎么写,还有如何调用?我想用指针做
还有这个错误的地方代码是什么错因呢?应该怎么改呢?

img

#include<stdio.h>
int chuli(int *str[][3],int a)
{
    int n,m;
    for(int i=0;i<a;i++)
    {
        for(int j=0;j<=i;j++)
        {
            n=*str[i][j];
            m=*str[j][i];
            *str[i][j]=m;
            *str[j][i]=n;
        }
    }
}
int main()
{
    int str[3][3]={1,2,3,4,5,6,7,8,9};
    chuli(&str,3);
    printf("输出结果为");
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            printf("%d ",str[i][j]);
        }
        printf("\n");
    }
    return 0;
}

  • 写回答

4条回答 默认 最新

  • micthis 2024-01-02 11:26
    关注

    报错是因为实参指针类型与形参不一样。
    改成:

    #include<stdio.h>
    void chuli(int (*str)[3],int a)
    {
        int n,m;
        for(int i=0;i<a;i++)
        {
            for(int j=0;j<=i;j++)
            {
                n=str[i][j];
                m=str[j][i];
                str[i][j]=m;
                str[j][i]=n;
            }
        }
    }
    int main()
    {
        int str[3][3]={1,2,3,4,5,6,7,8,9};
        chuli(str,3);
        printf("输出结果为:\n");
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                printf("%d ",str[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统