实验六 数组——二维数组与字符串
- 格式:doc
- 大小:70.50 KB
- 文档页数:10
淮海工学院计算机科学系实验报告书课程名:《 C语言程序设计教程》题目:实验六数组——二维数组与字符串班级:学号:姓名:1、实验内容或题目(1)编写一个程序,计算一个3×4阶矩阵和一个4×3阶矩阵相乘,并打印出结果。
(使用两个二维数组a和b存储两个3×4阶矩阵的元素值,然后用三重for循环进行相乘求值产生二维数组c,最后输出c的各元素值。
)(2)已知某班10个学生的姓名、学号,以及英语、程序设计、数学三门课的成绩,编写一个程序,完成下列工作:·全班每个学生姓名、学号和三门课成绩的输入及总分计算。
·统计各科的总成绩。
·当给出学生姓名或学号时,检索出该生每门功课的成绩及总成绩。
【解】定义一维数组no存储学生学号,二维数组name存储学生姓名,二维数组degree存储学生三门课成绩及总分。
(3)编写一个程序,判定一个字符串是否是另一个字符串的子串。
2、实验目的与要求1、目的:(1)进一步学习程序设计的方法和步骤;(2)掌握循环结构程序设计与数组的结合;3、实验步骤与源程序⑴实验步骤1.建立工程,添加C++源文件,编写程序。
2.调试修改语法错误。
3.编译,链接生成可执行程序。
4.运行程序,检查试验结果。
⑵源代码(一)#include<stdio.h>void main(){int a[3][4]={{2,3},{4,2},{1,2,3}};int b[4][3]={{1,2,3},{2,3,4},{3,4,5}};int c[3][3],i,j,k,s;for(i=0;i<3;i++)for(j=0;j<3;j++){s=0;for(k=s=0;k<4;k++)s+=a[i][k]*b[k][j];c[i][j]=s;}for(j=0;j<3;j++)printf("%4d",c[i][j]);printf("\n");}(二)法一.#include<stdio.h>#include<string.h>const int RS=3;char name[RS][8];int no[RS];float degree[RS][40];void input(){printf("输入数据:");for(int i=1;i<=RS;i++){printf("第%d个学生\n",i);printf("姓名:");scanf("%s",&name[i-1]);printf("学号");scanf("%d",&no[i-1]);printf("英语成绩:");scanf("%f",°ree[i-1][0]);printf("程序设计成绩:");scanf("%f",°ree[i-1][1]);printf("数学成绩:");scanf("%f",°ree[i-1][2]);degree[i-1][3]=degree[i-1][0]+degree[i-1][1]+degree[i-1][2];}}void sum(){float s1=0,s2=0,s3=0;printf("统计各科总成绩\n");for (int i=0;i<RS;i++){s1+=degree[i][0];s2+=degree[i][1];s3+=degree[i][2];}printf("英语总成绩:%g\n",s1);printf("程序设计总成绩:%g\n",s2);printf("数学总成绩:%g\n",s3);}void query(){int sel,bh,i;char xm[8];printf("数据查询\n");printf("1.姓名 2.学号请选择:");scanf("%d",&sel);switch(sel){case 1:printf("输入姓名:");scanf("%s",&xm);for(i=0;i<RS;i++)if(strcmp(xm,name[i])==0){printf("姓名:%s\n",xm);printf("学号:%d\n",no[i]);printf("英语成绩:%g\n",degree[i][0]);printf("程序设计成绩:%g\n",degree[i][1]);printf("数学成绩:%g\n",degree[i][2]);printf("总成绩:%g\n",degree[i][3]);}break;case 2:printf("输入学号:");scanf("%d",&bh);for(i=0;i<RS;i++)if(bh==no[i]){printf("姓名:%s\n",xm);printf("学号:%d\n",no[i]);printf("英语成绩:%g\n",degree[i][0]);printf("程序设计成绩:%g\n",degree[i][1]);printf("数学成绩:%g\n",degree[i][2]);printf("总成绩:%g\n",degree[i][3]);}break;default:printf("无此选项!\n");}}void main(){input();sum();query();}法二.#include<stdio.h>void main(){int score[10],i;float yx=0,lh=0,jg=0,bjg=0,aver=0;int max=0,min=0,maxn,minn;printf("请输入10位学生的成绩:");for(i=0;i<=9;i++){scanf("%d",&score[i]);}for(i=0;i<=9;i++){if(score[i]>max){max=score[i];maxn=i;}if(score[i]<min){min=score[i];minn=i;}aver+=score[i];if(score[i]<60)bjg=bjg+1;else if(score[i]<75)jg=jg+1;else if(score[i]<90)lh=lh+1;else yx=yx+1;}aver/=10;printf("最高分者:%d\n",score[maxn]);printf("最低分者:%d\n",score[minn]);printf("平均分为%.2\n",aver);printf("优秀%.0f人,占比为%.0f%%\n",yx,yx*10);printf("良好%.0f人,占比为%.0f%%\n",lh,lh*10);printf("及格%.0f人,占比为%.0f%%\n",jg,jg*10);printf("不及格%.0f人,占比为%.0f%%\n",bjg,bjg*10); }(三)#include<stdio.h>void main(){int i,j,k,index;char s1[20],s2[20];printf("主字符串:");gets(s1);printf("子字符串:");gets(s2);index=0;for(i=0;s1[i];i++){for(j=i,k=0;s1[j]==s2[k];k++)if(!s2[k+1]){index=i;break;}if(index!=0)break;}printf("位置=%d\n",index);}4、测试数据与实验结果(可以抓图粘贴)5、结果分析与实验体会感觉这次报告比较难,敲代码的时候感觉自己什么都不会了,看到给出的参考都有些崩溃了,前几次还觉得懂了,这次有感觉回到了初学时期,看来以后要多多努力,现在学到的还只是基础,以后学难的要更加下功夫了。
一、实验背景本次实验旨在通过学习数组的相关知识,掌握数组的定义、初始化、赋值、引用等方法,以及数组的操作和应用。
通过本次实验,我对数组有了更深入的理解,同时也对编程思维和算法设计有了更全面的提升。
二、实验过程1. 实验一:一维数组的定义与初始化实验过程中,我首先学习了如何定义一维数组,以及如何对数组进行初始化。
通过实验,我掌握了以下知识:(1)一维数组的定义格式:类型符数组名[常量表达式];(2)一维数组的初始化方法:在定义数组时,可以在方括号内指定数组的长度,并为数组元素赋初值。
2. 实验二:二维数组的定义与初始化在实验二,我学习了二维数组的定义与初始化。
通过实验,我掌握了以下知识:(1)二维数组的定义格式:类型符数组名[常量表达式1][常量表达式2];(2)二维数组的初始化方法:可以在定义数组时,指定数组的行数和列数,并为数组元素赋初值。
3. 实验三:数组元素的引用与赋值在实验三,我学习了如何引用数组元素,以及如何为元素赋值。
通过实验,我掌握了以下知识:(1)数组元素的引用方法:数组名[下标];(2)数组元素的赋值方法:使用赋值运算符“=”。
4. 实验四:数组的操作与应用在实验四,我学习了数组的操作与应用,包括冒泡排序、选择排序等。
通过实验,我掌握了以下知识:(1)冒泡排序算法:通过比较相邻元素的大小,将较大的元素交换到后面,直到整个数组有序。
(2)选择排序算法:通过比较相邻元素的大小,选择最小(或最大)的元素放到数组的起始位置,然后继续对剩余的元素进行排序。
三、实验反思1. 数组的定义与初始化在实验过程中,我深刻体会到了数组在编程中的重要性。
数组作为一种数据结构,可以有效地存储和操作一组具有相同数据类型的元素。
通过对数组的定义与初始化,我学会了如何创建一个符合实际需求的数组,并为数组元素赋初值。
2. 数组元素的引用与赋值在实验过程中,我学会了如何引用数组元素,以及如何为元素赋值。
这使我更加熟练地掌握了数组的使用方法,为后续的编程实践打下了基础。
1、编写一个主函数:用二维数组存放六行的“杨辉三角形”。
2、编写一个主函数:输入五个国家的名称存放在字符串数组,然后按字母顺序排列输出。
3、编写一个主函数:实现两串字符串的合并、0821张成龙;周俊杰2、0823陈智勇、戴佳3、周徐明、顾文斌单选、填空题:0822(重点关注杨辉三角形、Fibonnacii数列形成)【第一题具体要求】参考下列三个资料后,①教科书P153习题7.6(实验指导书P55);②软件中“第七章填空第21题(或2010春阅读程序第11题)”;或后面附录③软件中“第六章填空第3题(或2006秋阅读程序第11题)”编一主函数,用二维数组存放六行的“杨辉三角形”,并要求按六行输出该三角形数据的参考源程序。
【第二题具体要求】输入五个国家的名称按字母顺序排列输出。
编程思路如下:五个国家名应由一个二维字符数组来处理。
然而C语言规定可以把一个二维数组当成多个一维数组处理。
因此本题又可以按五个一维数组处理,而每一个一维数组就是一个国家名字符串。
用字符串比较函数比较各一维数组的大小,并排序,输出结果即可。
input country's name:ChinaIndiaUSABKKorea输出:BKChinaIndiaKoreaUSA[参考程序]【第三题具体要求】【2009春上机编程题_C06;2010年秋上机题C02改错题中有相同内容】【参考程序】:涉及到书P374:strlen()函数。
【软件第七章】选择题:3、若有数组A和B的声明"static char A[]="ABCDEF",B[]={'A', 'B', 'C', 'D', 'E', 'F'};",则数组A和数组B_____(25)___。
B.6,7 C.6,6 D.7,79、若有声明"char ss[8]= "Red";",则sizeof(ss)的值是___(30)____。
实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。
2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。
5. 掌握简单的单步调试方法。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.在屏幕上显示一个句子“What is a computer?”。
2.求华氏温度150F 对应的摄氏温度。
计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。
3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。
4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。
四、实验要求1. 将上机验证正确的源代码写到实验报告上。
2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。
3.按时提交实验报告。
553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if 语句实现多分支结构程序设计。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。
2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。
当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。
8.2二维数组和字符串例:一个专业当中同学分为不同的班级,引进二维数组一、二维数组(一)二维数组的定义1.定义方式:数据类型数组名[常量表达式][常量表达式];其中,第一个常量表达式代表数组的行数,第二个表达式代表数组的列数,元素个数=行数*列数注意:第一个常量表达式可以为空,但第二个常量表达式不能为空。
例:int a[3][4]; /*表示整型二维数组,有3行4列*/ 该数组下标共有3×4个,即:说明:在声明二维数组int[3][4]以后,可以把二维数组a认为含有3个元素的一维数组,这3个元素就是a[0],a[1],a[2],每一个元素就相当于一行,每一个元素又是含有4个元素的一维数组。
存储方式:在C语言中,二维数组是按行序优先存放的,先存放a[0]行元素,再存放a[1]行元素,最后存放a[2]行元素。
(二)二维数组元素的引用形式:数组名[下标][下标]其中,第一个下标为行下标,第二个下标为列下标。
例:引用第2行第3列的数组,即a[1][2](数组的行列下标从0开始)注意:在二维数组中,不能整体引用整个数组,只能对单个元素进行操作。
main(){int a[2][3],i,j;for(i=0;i<2;i++) /*引用二维数组的行*/for(j=0;j<3;j++) /*引用二维数组的列*/scanf("%d",&a[i][j]);for(i=0;i<2;i++){for(j=0;j<3;j++) /*加上{},实现每输出一行就换行的操作*/ printf("%d ",a[i][j]);printf("\n");}}(三)二维数组元素的初始化(四)二维数组举例将一个二维数组行和列的元素互换,存到另一个二维数组中。
输出: 程序:#include<stdio.h> main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(“array a:\n ”); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) {printf(“%5d ”,a[i][j]);a=1 2 3 4 5 6b=1 42 53 6b[j][i]=a[i][j];}printf(“\n”);}printf(“array b:\n”);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}二、字符数组和字符串(一)字符数组1.定义:用来存放字符数据的数组是字符数组。
实验8二维数组与字符数组【实验题1】程序填空,输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。
【算法分析】:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i)#include<stdio.h>void main(){int i,j,sum1=0,sum2=0, a[4][4];printf("Input a 4*4 matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d", &a[i][j]);for(i=0;i<4;i++){sum1+=a[i][i];sum2+=a[i][3-i] ;}printf("sum1=%d, sum2=%d\n",sum1,sum2);}【实验题2】程序填空,打印杨辉三角形前10行:11112113311464115101051……………………【算法分析】:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则:1)杨辉三角为下三角矩阵,只需要求出第i 行(i=0,1,2,…,9)前i+1 个元素,即a[i][j]!=0 (j=0…i).2)每行的第0 列元素均为1,即a[i][0]=1?3)每行的主对角线元素也均为1,即a[i][i]=1?4)从第 2 行开始,每行夹在第0 列元素与主对角线元素之间的元素等于其左上方元素a[i-1][j-1]与正上方元素a[i][j]( i=2,3,…,9, j=1,..,i-1 )a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j];5)输出该矩阵的下三角,即得出杨辉三角的前10 行。
实验六二维数组和字符数组一、实验目的1.掌握二维数组的定义及赋值和输入/输出的方法;2.掌握字符数和字符串函数的使用;3.学会调试程序。
二、实验内容(实验报告中第1、2小题代码可以不写,只写结果即可,第3小题要求写程序代码及调试结果)1、填补空出的语句,以使程序完整,然后上机验证。
下面程序的功能是将一个字符串str的内容颠倒过来。
# include“string.h”main(){int i,j,k;char str[]={“1234567”};for(i=0,j=strlen(str)_______;i<j;i++,j--){k=str[i];str[i]=str[j];str[j]=k;}printf(“%s”,str);}【程序分析提示】i和j对应字符数组的下标,通过循环实现i由前往后移动,j由后向前移动。
分析字符数组最后元素的下标值和字符串长度之间的关系。
strlen(str)是字符串处理函数,其返回值是字符串str的长度。
格式字符串“%s”可用于输出字符串。
2、下面程序段的输出结果是( )int k;int a[3][3]={1,2,3,4,5,6,7,8,9};for(k=0;k<3;k++)printf ("%d",a[k][2-k]);3.求杨辉三角的前10行。
杨辉三角的形式如下:11 2 11 3 3 11 4 6 4 1……提示:对角线元素和第1列元素均为1,其余元素的值为:如第i行第j 列的元素为a[i][j]=a[i-1][j-1]+a[i-1][j]参考代码如下:#define N 10main(){int a[N][N],i,j;for(i=0;i<N;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<N;i++)for(j=1;j<i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<N;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}三、仪器、设备、材料微机四、实验准备1.理论知识预习及要求①二维数组定义及赋初值;②二维数组的元素的引用方法;③字符数组的定义、赋初值及输入/输出实现方法;④字符串函数的格式及功能。
数组与字符串的应用数组与字符串是编程中常见的数据类型,它们在各种算法和应用中起到重要的作用。
本文将讨论数组与字符串的基本概念和应用,并通过实例说明它们的实际用途。
一、数组的概念和应用数组是一种有序的数据集合,它由相同类型的元素组成,并由下标进行访问。
数组的应用广泛,可以用来存储一系列数字、字符或其他类型的数据。
1. 数组的定义和初始化在多数编程语言中,数组的定义和初始化可以通过以下方式进行:int[] numbers = new int[5]; // 定义一个长度为5的整型数组char[] letters = {'a', 'b', 'c'}; // 定义一个字符数组并初始化2. 数组的访问和修改数组的元素可以通过下标进行访问和修改,下标从0开始计数。
例如,通过numbers[0]可以访问数组numbers的第一个元素。
3. 数组的排序和搜索数组常用的操作之一是排序。
通过对数组进行排序,可以按照升序或降序排列元素。
常见的排序算法有冒泡排序、插入排序和快速排序等。
另外,数组还可以用于搜索特定元素。
通过遍历数组,可以找到满足某个条件的元素。
常见的搜索算法有线性搜索和二分搜索等。
二、字符串的概念和应用字符串是由字符组成的序列,它是一种常见的数据类型,用于存储和操作文本数据。
1. 字符串的定义和初始化在大多数编程语言中,字符串可以用引号括起来的字符序列表示。
例如:String str = "Hello World";2. 字符串的操作字符串支持许多操作,例如拼接、截取、替换和转换大小写等。
下面是几个常见的字符串操作示例:String fullName = firstName + " " + lastName; // 字符串拼接String substr = str.substring(0, 5); // 截取字符串的子串String replacedStr = str.replace("Hello", "Hi"); // 替换字符串中的部分内容String lowercaseStr = str.toLowerCase(); // 转换为小写3. 字符串的匹配和查找字符串匹配是指判断一个字符串是否符合某种模式。
淮海工学院计算机科学系实验报告书课程名:《 C语言程序设计教程》题目:实验六数组——二维数组与字符串班级:学号:姓名:1、实验内容或题目(1)编写一个程序,计算一个3×4阶矩阵和一个4×3阶矩阵相乘,并打印出结果。
(使用两个二维数组a和b存储两个3×4阶矩阵的元素值,然后用三重for循环进行相乘求值产生二维数组c,最后输出c的各元素值。
)(2)已知某班10个学生的姓名、学号,以及英语、程序设计、数学三门课的成绩,编写一个程序,完成下列工作:·全班每个学生姓名、学号和三门课成绩的输入及总分计算。
·统计各科的总成绩。
·当给出学生姓名或学号时,检索出该生每门功课的成绩及总成绩。
【解】定义一维数组no存储学生学号,二维数组name存储学生姓名,二维数组degree存储学生三门课成绩及总分。
(3)编写一个程序,判定一个字符串是否是另一个字符串的子串。
2、实验目的与要求1、目的:(1)进一步学习程序设计的方法和步骤;(2)掌握循环结构程序设计与数组的结合;3、实验步骤与源程序⑴实验步骤1.建立工程,添加C++源文件,编写程序。
2.调试修改语法错误。
3.编译,链接生成可执行程序。
4.运行程序,检查试验结果。
⑵源代码(一)#include<stdio.h>void main(){int a[3][4]={{2,3},{4,2},{1,2,3}};int b[4][3]={{1,2,3},{2,3,4},{3,4,5}};int c[3][3],i,j,k,s;for(i=0;i<3;i++)for(j=0;j<3;j++){s=0;for(k=s=0;k<4;k++)s+=a[i][k]*b[k][j];c[i][j]=s;}for(j=0;j<3;j++)printf("%4d",c[i][j]);printf("\n");}(二)法一.#include<stdio.h>#include<string.h>const int RS=3;char name[RS][8];int no[RS];float degree[RS][40];void input(){printf("输入数据:");for(int i=1;i<=RS;i++){printf("第%d个学生\n",i);printf("姓名:");scanf("%s",&name[i-1]);printf("学号");scanf("%d",&no[i-1]);printf("英语成绩:");scanf("%f",°ree[i-1][0]);printf("程序设计成绩:");scanf("%f",°ree[i-1][1]);printf("数学成绩:");scanf("%f",°ree[i-1][2]);degree[i-1][3]=degree[i-1][0]+degree[i-1][1]+degree[i-1][2];}}void sum(){float s1=0,s2=0,s3=0;printf("统计各科总成绩\n");for (int i=0;i<RS;i++){s1+=degree[i][0];s2+=degree[i][1];s3+=degree[i][2];}printf("英语总成绩:%g\n",s1);printf("程序设计总成绩:%g\n",s2);printf("数学总成绩:%g\n",s3);}void query(){int sel,bh,i;char xm[8];printf("数据查询\n");printf("1.姓名 2.学号请选择:");scanf("%d",&sel);switch(sel){case 1:printf("输入姓名:");scanf("%s",&xm);for(i=0;i<RS;i++)if(strcmp(xm,name[i])==0){printf("姓名:%s\n",xm);printf("学号:%d\n",no[i]);printf("英语成绩:%g\n",degree[i][0]);printf("程序设计成绩:%g\n",degree[i][1]);printf("数学成绩:%g\n",degree[i][2]);printf("总成绩:%g\n",degree[i][3]);}break;case 2:printf("输入学号:");scanf("%d",&bh);for(i=0;i<RS;i++)if(bh==no[i]){printf("姓名:%s\n",xm);printf("学号:%d\n",no[i]);printf("英语成绩:%g\n",degree[i][0]);printf("程序设计成绩:%g\n",degree[i][1]);printf("数学成绩:%g\n",degree[i][2]);printf("总成绩:%g\n",degree[i][3]);}break;default:printf("无此选项!\n");}}void main(){input();sum();query();}法二.#include<stdio.h>void main(){int score[10],i;float yx=0,lh=0,jg=0,bjg=0,aver=0;int max=0,min=0,maxn,minn;printf("请输入10位学生的成绩:");for(i=0;i<=9;i++){scanf("%d",&score[i]);}for(i=0;i<=9;i++){if(score[i]>max){max=score[i];maxn=i;}if(score[i]<min){min=score[i];minn=i;}aver+=score[i];if(score[i]<60)bjg=bjg+1;else if(score[i]<75)jg=jg+1;else if(score[i]<90)lh=lh+1;else yx=yx+1;}aver/=10;printf("最高分者:%d\n",score[maxn]);printf("最低分者:%d\n",score[minn]);printf("平均分为%.2\n",aver);printf("优秀%.0f人,占比为%.0f%%\n",yx,yx*10);printf("良好%.0f人,占比为%.0f%%\n",lh,lh*10);printf("及格%.0f人,占比为%.0f%%\n",jg,jg*10);printf("不及格%.0f人,占比为%.0f%%\n",bjg,bjg*10); }(三)#include<stdio.h>void main(){int i,j,k,index;char s1[20],s2[20];printf("主字符串:");gets(s1);printf("子字符串:");gets(s2);index=0;for(i=0;s1[i];i++){for(j=i,k=0;s1[j]==s2[k];k++)if(!s2[k+1]){index=i;break;}if(index!=0)break;}printf("位置=%d\n",index);}4、测试数据与实验结果(可以抓图粘贴)5、结果分析与实验体会感觉这次报告比较难,敲代码的时候感觉自己什么都不会了,看到给出的参考都有些崩溃了,前几次还觉得懂了,这次有感觉回到了初学时期,看来以后要多多努力,现在学到的还只是基础,以后学难的要更加下功夫了。
#include<stdio.h>void main(){int a[3][4]={{2,3},{4,2},{1,2,3}};int b[4][3]={{1,2,3},{2,3,4},{3,4,5}};int k,i,j,c[3][3],s=0;for(i=0;i<=2;i++)for(j=0;j<=2;j++){ for(k=0;k<=3;k++)s+=a[i][k]*b[k][j];printf("%d",s);c[i][j]=s;}for(j=0;j<=2;j++)printf("%4d",c[i][j]);printf("\n");}。