黑马程序员技术交流社区

标题: 在线等解答!疯了,这是咋了 [打印本页]

作者: songynnm    时间: 2015-8-13 21:47
标题: 在线等解答!疯了,这是咋了
  1. /*!
  2. 从键盘上接收两个参数分别存放到m,n中,使用m和n构成数组:
  3. 1.        定义一个函数使用i*j初始化a[i][j]
  4. 2.        定义一个函数打印二维数组的每一个值
  5. */

  6. #include <stdio.h>
  7. /*!
  8. * @brief  遍历数组值
  9. *
  10. * @param m   行
  11. * @param n   列
  12. * @param arr 数组名
  13. *
  14. */
  15. void print_arr(int m,int n,arr[m][n]){
  16.     for (int i = 0; i < m; i++) {
  17.         for (int j = 0; j < n; j++) {
  18.             printf("%d\t",arr[i][j]);
  19.         }
  20.         printf("\n");
  21.     }
  22. }

  23. /*!
  24. *
  25. * @param i         行
  26. * @param j         列
  27. *
  28. */
  29. void ding_yi(int m,int n,int arr[m][n]){
  30.     for (int i = 0; i < m; i++) {
  31.         for (int j = 0; j < n; j++) {
  32.             arr[i][j] = (i+1) * (j+1);//给数组每个元素都赋值:i*j
  33.         }
  34.     }
  35.    
  36. }

  37. int main() {
  38.     int m,n;
  39.     printf("输入行数和列数,用逗号隔开:\n");
  40.     scanf("%d,%d",&m,&n);
  41.     printf("%d,%d",m,n);
  42.     int arr[m][n];
  43.     //调用初始化函数
  44.     ding_yi(m,n,arr[m][n]);
  45.     //调用打印数组函数
  46.     print_arr(m,n,arr);
  47.     return 0;
  48. }
复制代码

作者: socl_ycl    时间: 2015-8-14 13:52
print_arr 方法的int数组参数是不是传错了?
作者: 星耀    时间: 2015-8-14 15:21
额, 定义的方法都是值传递,你应该在main函数定义数组,然后传参和调用的时候应该传的是数组的地址,这样才能给数组进行赋值和遍历。。
作者: Eil.tea    时间: 2015-8-14 15:37
传地址传地址传地址传地址传地址传地址传地址,你就好了
作者: songynnm    时间: 2015-8-14 20:36
Eil.tea 发表于 2015-8-14 15:37
传地址传地址传地址传地址传地址传地址传地址,你就好了

{:2_31:}恩,
作者: 李艳兵    时间: 2015-8-14 21:13
这是啥子撒,看不懂
作者: xiaoguang    时间: 2015-8-14 21:33
回答的挺好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2