二维数组:一维数组中的元素又是一个数组。
声明的语法:
数据类型 数组名[一维长度][二维长度];
  int num[3][2];

注意:int[][2];正确

   int[2][];错误

二维数组中:  一维可以省略,二维不能省略。 

1.创建一个二维数组用于保存三个班级的学生信息:

int scores[3][3];//用于保存三个班级的学生信息,每个班级3个人。
int i,j;
//为一班学生的成绩赋值
scores[0][0]=10;
scores[0][1]=20;
scores[0][2]=30;p
//为二班学生的成绩赋值
scores[1][0]=40;
scores[1][1]=50;
scores[1][2]=60;
//为三班学生的成绩赋值
scores[2][0]=70;
scores[2][1]=80;
scores[2][2]=90;
//二维数组的遍历 
for(i=0;i<3;i++)

{
  for(j=0;j<3;j++)

  {
  printf("%d\t",scores[i][j]);
  }
printf("\n");
}

2.声明一个三行三列的二维数组,计算对角线的和:

int num[3][3];
int x,y,sum=0;
for(x=0;x<3;x++)
{
  for(y=0;y<3;y++)
  {
    printf("请输入num[%d][%d]\n",x,y);
    scanf("%d",&num[x][y]);
    if(x==y)
    {
    sum+=num[x][y]; 
    }
  }
printf("\n");
}
printf("%d\n",sum);

3.从键盘上输入9个整数,保存在二维数组中按数组原来位置输出第一行和第一列的所有元素之和:

int nums[3][3];
int i,j,sum=0;
for(i=0;i<3;i++)

{
  for(j=0;j<3;j++)

  {
    printf("请输入第%d行第%d列:",i+1,j+1);
    scanf("%d",&nums[i][j]);
  }
}
for(i=0;i<3;i++)

{
  for(j=0;j<3;j++)

  {
    printf("%d\t",nums[i][j]);
    //计算第一行和第一列所有元素之和
    if(i==0||j==0)

    {
    sum+=nums[i][j];
    }
  }

printf("\n");

}
printf("第一行和第一列所有元素之和为%d:",sum);

4.求二维数组(3行3列)中最大元素值及其行列号:

int nums[3][3];
int i,j,z,y,sum=0,max;
for(i=0;i<3;i++)
{
  for(j=0;j<3;j++)
  {
    printf("请输入第%d行第%d列:",i+1,j+1);
    scanf("%d",&nums[i][j]);
  }
}
max=nums[1][1];
for(i=0;i<3;i++)

{
  for(j=0;j<3;j++)
  {
    printf("%d\t",nums[i][j]);

    if(nums[i][j]>max)
    {
      max=nums[i][j];
      z=i;
      y=j;
    }

  }
printf("\n");
}

printf("最大的是%d,是第%d行%d列",max,z+1,y+1);

5.打印杨辉三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
分析:
1.声明一个二维数组用于保存杨辉三角中的数据 int nums[5][5];
2.第一列nums[i][0]和对角线上的数字(nums[i][i])为1。
3.除第一列和对角线上的数字之外,其余数字nums[i][j]=nums[i-1][j]+nums[i-1][j-1];

int nums[5][5];
//为第一列和对角线赋值为1
int i,j;

for(i=0;i<5;i++)
{
nums[i][0]=1;//为第一列上的元素赋值为1
nums[i][i]=1;//为对角线上的元素赋值为1 
}

//为除第一列和对角线之外元素赋值 
for(i=2;i<5;i++)
{
  for(j=1;j<i;j++)
  {
    nums[i][j]=nums[i-1][j]+nums[i-1][j-1];
  }
}

//遍历输出
for(i=0;i<5;i++)
{
  for(j=0;j<=i;j++)
  {
    printf("%d\t",nums[i][j]);
  }
printf("\n");
}

C语言:二维数组,(杨辉三角)的更多相关文章

  1. java基础之二维数组-杨辉三角

    首先呢你要知道什么是杨辉三角? 答:杨辉三角,是二项式系数在三角形中的一种几何排列. 简单的说一下就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就 ...

  2. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  3. C语言二维数组作业

    一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...

  4. 基于visual Studio2013解决C语言竞赛题之0509杨辉三角

     题目

  5. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  6. C语言 二维数组复制、清零及打印显示

    #include <stdlib.h> #include <stdio.h> #include <string.h> //二维整型数组打印显示 ],int row, ...

  7. C语言 二维数组(指针)动态分配和释放(转)

    C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...

  8. C语言二维数组

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...

  9. C语言二维数组作为函数参数

    设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

  10. C语言二维数组作为函数的参数

    前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

随机推荐

  1. 201271050130-滕江南-《面向对象程序设计(java)》第十七周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十七周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  2. CSS基础学习-12.CSS position

    绝对定位 position:absolute,元素脱离文档流,然后使用left.right.top.bottom属性相对于其最接近的一个具有定位属性的祖先元素进行绝对定位.如果不存在这样的祖先元素,则 ...

  3. iOS 获取手机型号(已更新至iPhone11)

    + (NSString *)iphoneType {            //    需要导入头文件:#import <sys/utsname.h>        struct utsn ...

  4. 简易MySQL存储过程

    自从那天灵感突现,搜了下MySQL存储过程的实现,我就再也不会为造测试数据这种事情烦恼了,存储过程用起来简直太方便了. DROP PROCEDURE IF EXISTS insert2pay; DEL ...

  5. Java之正则表达式来判断字符串中是否包含字母

    /** * 使用正则表达式来判断字符串中是否包含字母 * @param str 待检验的字符串 * @return 返回是否包含 * true: 包含字母 ;false 不包含字母 */ public ...

  6. BZOJ 4031: [HEOI2015]小Z的房间 (矩阵树定理 板题)

    背结论 : 度-邻 CODE1 O(n3logn)O(n^3logn)O(n3logn) #include <bits/stdc++.h> using namespace std; typ ...

  7. [Git] How to revert one file changes from one commit

    Many times we might changed one file which we don't intent to do... but it was too late, until we fo ...

  8. HDU 6035 - Colorful Tree | 2017 Multi-University Training Contest 1

    /* HDU 6035 - Colorful Tree [ DFS,分块 ] 题意: n个节点的树,每个节点有一种颜色(1~n),一条路径的权值是这条路上不同的颜色的数量,问所有路径(n*(n-1)/ ...

  9. docker使用 Flannel(etcd+flannel)网络

    一.Flannel网络简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信,Flannel是CoreOS开发,专门用于 ...

  10. 使用canvas画布生成二维码

    1. 基本用法 <canvas>标签只有两个属性-----width和height CSS: <canvas class="qrcode" width=" ...