#Day2 C++

原创 2016年08月31日 20:53:30

二维数组

矩阵转置
思考过程:

00 01 02 03 
10 11 12 13   j>i
20 21 22 23
30 31 32 33
i>j
//矩阵转置
#include <iostream>
using namespace std;
void trans(int a[][3],int line){
    for(int i=0;i<line;i++)
        for(int j=i+1;j<line;j++){
            int temp;
            temp=a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=temp;
        }
}
int main()
{
    int a[3][3];
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            cin>>a[i][j];
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++){
            cout<<a[i][j];  
            if(j==2)cout<<endl;
        }
        trans(a,3);
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++){
            cout<<a[i][j];  
            if(j==2)cout<<endl;
        }
        getchar();
        getchar();
        return 0;

}

二维数组的初始化

可采用下面两种格式:
int a[2][3]={1,2,3,}{1,2,3};

inta[2][3]={1,2,3,4,5,6};
上面的初始化按照数组的行来进行。有优先原则
初始化的值可以少于数组元素的个数。
若在定义二维数组时,给出了所有元素的初始化则行数可省略。

存储

按行存储,即先是第一行的元素,再是第二行…
有些语言是按列存储的

向函数传递二维数组

形参一般为不带数组行数的二维数组定义 + 行数
调用者需提供二维数组变量的名 + 行数
作为函数参数的二维数组的列数不能不写

addr(x[i][j])=x的内存首地址+i*列数+j//所以列数是必须的

矩阵乘法

int main()
{
    const int M=2,N=3,T=4;
    int a[M][N],b[N][T],c[M][T];
    //输入a,b
    //计算c
    for(int i=0;i<M;i++){
        for(int j=0;j<T;j++){
            c[i][j]=0;
        for(int m=0;m<N;m++)
            c[i][j]+=a[i][m]*b[m][j];
        }
    }
}

用数组实现求解约瑟夫问题(Josephus)

C++ & Pascal——NOIP2016提高组day2 t3——愤怒的小鸟

题目描述 Kiana 最近沉迷于一款神奇的游戏无法自拔。简单来说,这款游戏是在一个平面上进行的。 有一架弹弓位于 (0,0) 处,每次 Kiana 可以用它向第一象限发射一只红色的小鸟,小鸟们...

c++ 学习笔记(高级linux编程) day2

回顾:         brk/sbrk         int brk(void *);         void* sbrk(int);         维护一个位置.brk/sbrk改变...
  • suelog
  • suelog
  • 2014年08月17日 20:39
  • 258

C++ & Pascal & Java ——NOIP2016提高组day2 t1——组合数问题

题目描述 组合数  表示的是从 n 个物品中选出 m 个物品的方案数。举个例子,从 (1,2,3) 三个物品中选择两个物品可以有 (1,2),(1,3),(2,3) 这三种选择方法。根据组合数的定义...

Sams Teach Yourself C++ in One Hour a Day.pdf

  • 2015年04月17日 10:06
  • 4.13MB
  • 下载

NOIP2011(DAY1)解题报告(C/C++)(铺地毯)(选择客栈)(Mayan 游戏)

NOIP2011(D1)解题报告
  • theljt
  • theljt
  • 2017年03月11日 16:53
  • 394

21 day C++ Learn

  • 2015年04月09日 10:08
  • 13.45MB
  • 下载

C# In One Day (For C++ Programmers)

  • 2016年10月23日 08:50
  • 347KB
  • 下载

c++ 学习笔记(高级linux编程) day5

linux高级编程day05 笔记 一.IO与文件目录管理  1.pread=lseek+read    pread读取以后不改变读写位置  2.mmap映射:    /proc/${pid...
  • suelog
  • suelog
  • 2014年08月19日 18:28
  • 359

Sams Teach Yourself C++ in One Hour a Day

  • 2012年02月13日 15:14
  • 1.07MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#Day2 C++
举报原因:
原因补充:

(最多只允许输入30个字)