| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
跟大牛学C++学算法数据结构
共有 453 人关注过本帖
标题:矩阵和指针
只看楼主 加入收藏
本帖由 静夜思 于 2019-1-15 13:35 反删除
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
程序代码:
#include <stdio.h>

int f(int s[][4],int row,int col,int* rerow,int* recol)
{
    int max=0;
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            if(s[i][j]>=max)
            {
                max=s[i][j];
                *rerow=i+1;
                *recol=j+1;
            }
        }
    }
    return max;
}

int main()
{
    int s[4][4]={{1,2,3,4},{44,33,22,11},{25,305,45,15},{9,8,7,6}};   
    int row=0;
    int col=0;
    int max=f(s,4,4,&row,&col);
    printf("mxa= %d  row= %d  col=%d  \n",max,row,col);
    return 0;
}


[此贴子已经被作者于2019-1-10 10:08编辑过]


DO IT YOURSELF !
2019-01-10 10:07
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
  得分:0 
回复 7楼 wp231957
那我第一段代码,指针不能那么用是吧
2019-01-13 10:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
回复 8楼 丨丨
我在5楼已经回复过了,那个是取址  也不能说不是指针
总之,你得知道你想干什么

DO IT YOURSELF !
2019-01-14 09:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
回复 8楼 丨丨
我在5楼已经回复过了,那个是取址  也不能说不是指针
总之,你得知道你想干什么

DO IT YOURSELF !
2019-01-14 09:30
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
  得分:0 
回复 9楼 wp231957

用我一楼的那个代码,只用一次循环找到最大值和行列
附件: 您没有浏览附件的权限,请 登录注册
2019-01-14 15:13
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
回复 10楼 丨丨
参看我7楼代码  基本一样得吗

DO IT YOURSELF !
2019-01-14 15:18
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
回复 10楼 丨丨
参看我7楼代码  基本一样得吗

DO IT YOURSELF !
2019-01-14 15:18
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
  得分:0 
回复 11楼 wp231957
知道了,谢谢。
在问一下,把指针作为实参传给函数时,是作为数值还是地址,指针在这个函数中是指针还是数值
2019-01-14 16:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:376
帖 子:13088
专家分:50627
注 册:2012-10-18
  得分:0 
回复 12楼 丨丨
使用指针最简单的莫过于编写一个交换函数了

程序代码:

#include <stdio.h>

void f(int* a,int* b)
{
    int tmp=*a;
    *a=*b;  //这里你就想像成主程序中x=??
    *b=tmp; //这里你就想象成主程序中y=??,但是如果不使用指针,子函数中是无法访问主函数中的变量
}

void ferr(int a,int b)
{
    int tmp=a;
    a=b;  
    b=tmp; //这里编写了一个错误的交换代码
}

int main()
{
    int x=25,y=36;
    ferr(x,y);  //使用错误的函数无法实现交换
    printf("x= %d  y=%d  \n",x,y);
    f(&x,&y);   //使用正确的函数可以实现交换
    printf("x= %d  y=%d  \n",x,y);
    return 0;
}
/*
x= 25  y=36
x= 36  y=25
请按任意键继续. . .
*/

DO IT YOURSELF !
2019-01-15 08:54







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069354 second(s), 10 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved