文档章节

在C语言中运用全局变量返回函数的数组运算结果(Lu Hongling)

l
 luhongling
发布于 2012/08/19 09:26
字数 420
阅读 366
收藏 0

      C语言中,数组可以通过函数的形参或实参输入到函数中, 但运算后返回时就有问题了,因为C语言的函数只能返回一个数,不能返回数组。这个问题可以通过设置全局变量的方式予以解决,请看下面的例题。

例题.  编制函数MT()用以计算一个3*3矩阵的转置,并将结果返回到main函数中。

   1:  #include <stdio.h>
   2:   
   3:  void PM(int x[3][3]);
   4:  void MT(int a[3][3]);
   5:   
   6:  int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
   7:   
   8:  main()
   9:  {
  10:      PM(a);
  11:      MT(a);
  12:      PM(a);
  13:  }
  14:   
  15:  void MT(int a[3][3])
  16:  {
  17:      int i,j,b[3][3];
  18:      for(i=0;i<=2;i++)
  19:      {
  20:          for(j=0;j<=2;j++)
  21:          {
  22:              b[j][i]=a[i][j];
  23:          }
  24:      }
  25:      for(i=0;i<=2;i++)
  26:      {
  27:          for(j=0;j<=2;j++)
  28:          {
  29:              a[i][j]=b[i][j];
  30:          }
  31:      }
  32:  }
  33:   
  34:  void PM(int x[3][3])
  35:  {
  36:      int i,j;
  37:      for(i=0;i<=2;i++)
  38:      {
  39:          for(j=0;j<=2;j++)
  40:          {
  41:              printf("%d ",x[i][j]);
  42:          }
  43:      printf("\n");
  44:      }
  45:  }

程序说明:

      本程序包含3个函数:main();MT() -- 用以求矩阵的转置;PM()-- 打印矩阵;

      第6行: int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

                  定义了一个3*3的全局数组,并对该数组初始化;

      第15行:void MT(int a[3][3])

                  定义了函数MT,并将全局数组a作为其形参;

      第11行:MT(a)

                   主程序调用函数MT后,全局数组的元素被转置。

计算结果:

1 2 3
4 5 6
7 8 9
1 4 7
2 5 8
3 6 9

© 著作权归作者所有

l
粉丝 2
博文 6
码字总数 2240
作品 0
南京
私信 提问
加载中

评论(1)

开源中国精神科主任
开源中国精神科主任
常用的方法是把结果数组指针做为参数传入函数吧,你这方法写不了大工程。
0-浙大攻略计划-专业课-c语言入门(慕课网)

内容来自慕课网,个人学习笔记。加上了mtianyan标签标记知识点。 C语言入门 -> Linux C语言编程基本原理与实践 -> Linux C语言指针与内存 -> Linux C语言结构体 https://www.imooc.com/cour...

天涯明月笙
2018/07/05
0
0
JavaScript语言基础

标示符:区分大小写,可以是_ $ 或字母开始不能是数字,中文命名变量也合法。 保留字:void break delete function return do case if switch var catch else in this continue false insta...

梦想游戏人
2016/07/04
66
0
编程技巧之嵌入式C语言完全学习笔记及案例[图]

编程技巧之嵌入式C语言完全学习笔记及案例[图] 1、经典入门:hello world 1.1、概念: *源文件:源文件即源代码文件,C语言源文件后缀名是.c。 *头文件:头文件后缀名为.h(head,头),C语言...

原创小博客
2018/08/15
20
0
c语言基础那些事

c语言基础 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语...

上官清偌
2018/03/03
40
0
C语言自学《八》---- C语言知识总结

一、函数 什么情况下需要定义一个函数? 常用的功能 重复的功能 低效率的代码 一个函数可以没有参数 void test(void){ //void可以不写 } 一个函数可以没有返回值,如果没有定义,默认是返回i...

罗眯眯
2014/04/05
483
0

没有更多内容

加载失败,请刷新页面

加载更多

领域驱动中的“贫血症和失忆症”

贫血症严重危害着人类健康,并且伴随有危险的副作用。当贫血领域对象被首次提出来时,它并不是一个博得赞美的词汇,它描述的是一个缺少内在行为领域对象。奇怪的是,人们对于贫血领域对象的态...

还仙
1分钟前
1
0
条码打印软件中标签预览正常打印无反应怎么解决

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。 一、预览正常情况下,打印没反应 (1)在条码...

中琅软件
11分钟前
1
0
判断字符串的时候

判断字符串的时候一定把常量房前边, //报警程度 String leve = vo.getDeviceAlertDeal().getWarnLevel(); if(("0").equals(leve)) { row.add("无报警"); }else if(("1").equals(leve)) { ro......

简小姐
11分钟前
2
0
Linux maven3.6.2 install

PS:安装 maven 之前请先安装 jdk 1.安装 wget 命令(安装过就不用了) yum -y install wget 2.寻找需要的 maven 版本 https://maven.apache.org/download.cgi 3.进入 /var/local 文件夹 cd...

东方神祇
13分钟前
1
0
Tomcat源码分析二:先看看Tomcat的整体架构

Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server、Service、Connector、Container等组件,接下...

flygrk
16分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部