实验三 数组
一、 实验目的
1.熟悉数组的结构
2.掌握矩阵的压缩存储
3.能够对数组和矩阵的压缩存储进行运算
一、 实验内容
2. A和B是两个n×n阶的对称矩阵,输入时,以行为主序输入对称矩阵的下三角元素,存入以尾数组,编写一个算法计算对称矩阵A和B的乘积。(文件夹:对称矩阵相乘)
/*
数组结构类型的定义.h*/
/*
const int n=3;
const int size=n*(n+1)/2;
*/
#define n 3
#define size (n*(n+1)/2)
typedef int datatype;
typedef struct{
datatype A[size],B[size],C[n][n];
}array;
/*
A和B是两个n×n阶的对称矩阵,输入时,以行为主序输入对称矩阵的下三角元素,存入一维数组,
编写一个算法计算对称矩阵A和B的乘积。
*/
#include <stdio.h>
#include <stdlib.h>
#include"数组结构类型的定义.h"
int main()
{
array * pa;
/*pa=new array;*/
pa = (array *)malloc( sizeof(array) );
printf("请输入矩阵A(共%d各元素)=/n",size);
input(pa->A);/*以行为主序输入矩阵A的下三角*/
printf("请输入矩阵B(共%d各元素)=/n",size);
input(pa->B);/*以行为主序输入矩阵B的下三角*/
mult(pa);
puts("A*B=");
output(pa->C);/*输出矩阵C*/
system("PAUSE");
return 0;
}
/*对称矩阵的输入.h*/
#include"数组结构类型的定义.h"
void input(datatype x[])
{
int i;
for( i=0;i<size;i++)
/*cin>>x[i];*/
scanf("%d",x+i);
return ;
}
/*矩阵的输出.h*/
#include"数组结构类型的定义.h"
void output(datatype x[][n])
{
int i,j;
for( i=0;i<n;i++)
{
for( j=0;j<n;j++)
/* cout<<setw(5)<<x[i][j];*/
printf("%5d",x[i][j]);
/*cout<<endl;*/
puts("/n");
}
return ;
}
#include"数组结构类型的定义.h"
void mult( array * pa )
{
void take( int pb[] , int p[] , int j );
int row[n];
int col[n];
int i,j;
int k;
int t;
for( i=0 ; i<n ; i++ )
{
take( pa->A , row , i );
for( j=0 ; j<n ; j++ )
{
take( pa->B , col , j );
pa->C[i][j] = 0;
for(k=0;k<n;k++) pa->C[i][j] += row[k]*col[k];
}
}
return;
}
void take( int pb[] , int p[] , int j )
{
int i;
for(i=0;i<n;i++)
{
if(i>=j)
p[i] = pb[i*(i+1)/2+j];
else
p[i] = pb[j*(j+1)/2+i];
}
return;
}
分享到:
相关推荐
后缀数组——处理字符串的有力工具,国家集训队论文
罗穗骞《后缀数组——处理字符串的有力工具》(有算法源码和解题源码) IOI2009论文,有源码,简单易懂,方便学习后缀数组的构造和各种应用。 后缀数组是一种优秀的数据结构,在字符串匹配方面有诸多应用。
第四章 C语言 PTA数组——作业-答案.html
实验6+数组——二维数组和字符数组.doc
后缀数组——处理字符串的有力工具_罗穗骞.ppt
摘要】后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后
后缀数组这个东西真的是神仙操作…… 但是这个比较神仙的东西在网上的讲解一般都仅限于思想而不是代码,而且这个东西开一堆数组,很多初学者写代码的时候很容易发生歧义理解,所以这里给出一个比较详细的讲解。笔者...
后缀数组的倍增算法和DC3算法的实现以及不可重叠重复子串的问题,很详细的资料
后缀数组——处理字符串的有力工具.ppt
5.编程实现:三个学生、五门课程的成绩分别存放在4×6矩阵的前3×5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。 6....
C语言实验数组C语言实验数组
大一c语言数组实验心得.docx
罗穗骞《后缀数组——处理字符串的有力工具》(有算法源码和解题源码) IOI2009论文,有源码,简单易懂,方便学习后缀数组的构造和各种应用。 后缀数组是一种优秀的数据结构,在字符串匹配方面有诸多应用。
关于php数组的基本概念,操作函数完全提炼,让你快速全面掌握php数组操作!
OI集训队资料;后缀数组;DC3算法;题目讲解
C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件PPT C语言数组课件...
数组应用——一维数组排序; 定义一组无序的整型数列,共10个数值,经过一定的处理,使该数组由大到小排列,并输出到屏幕上。具体要求如下: 定义int型数组arrayorder并赋初值为0,长度为10,以承载该数列; 使用...
C语言课件——第06章数组
后缀数组;代码;罗穗骞;题目附代码;OI集训队资料
c语言课程设计报告通讯录——数组