答案 实验报告_实验7_数组(学号_姓名)
实验总结报告-串和数组

实验总结报告—栈和队列学号:姓名:时间:一、目的1.做实验的目的2.2.撰写实验报告的目的二、内容1.说明实验次数及实验内容本次实验用一个实验课时完成。
实验内容:1. 编写函数StrAssign(), StrCopy() , StrLenth() , StrCompare() , StrConcat() ,Substring(), Replace(),完成串赋值,串复制,求串长度,串比较,串连接,求字串,子串替代等相应功能。
注:Replace() 依赖Find_KMP()2. 使用KMP 算法,编写函数Find_KMP(char *S,char *P,int start)实现字符串匹配。
测试数据:2.1char S[] = “abcabcabcd”;char P[] = “abcabcd”;2.2char S[] = “abcdababcabcdabcabcabcd”;char P[] = “abcabcd”;2.3char S[] = “cocaocoaoc”;char P[] = “coaoc”;要求: 1.打印出模式串P 的next[]模式数组;2.完成Find_KMP()后在Repalce()中调用,将P 替换成“AAA”。
注意2.2 有2 个地方要替换。
3. 创建三元组实现以下稀疏矩阵的存储,并利用三元组实现稀疏矩阵的转置,比较“按需查找”方法与“按位就座”方法的区别。
0 12 9 0 0 0 00 0 0 0 0 0 03 0 0 0 0 14 00 0 24 0 0 0 00 18 0 0 0 0 015 0 0 7 0 0 0建议实现流程为1.矩阵2.三元组3.转置的三元组4.转置的矩阵,将3 或4打印出来。
2.做实验完成情况实验内容在实验课时时间内完成(提前编写了大概1/2部分的代码),选做内容也完成。
本次实验内容较多,为使代码看着简洁有条理,采用了建工程的方式。
串部分:自定义了头文件String.h:/*自定义头文件*/#include<stdio.h>#define MAX_LEN 255typedef unsigned char SString[MAX_LEN + 1];/*自定义函数*/void StrAssign(SString &T, char s[]);//将字符串常量s赋给Tvoid StrPrint(SString T);//打印串void StrCopy(SString &T, SString S);//串复制void test();//检验串操作int StrLength(SString T);//求串长int StrCompare(SString T, SString S);//比较串,T>S返回正值,T<S返回负值,相等返回0void StrConcat(SString &T, SString S1, SString S2);//用T返回SString 类型串S1、S2连接成的新串void SubString(SString &S, SString T, int pos, int len);//用S返回串T中起始位置为pos,长度为len的字串void Index(SString S, SString T, int pos[]);//若S串中存在不重叠的子串T,则用pos[]返回所有T串的起始位置void StrReplace(SString &S, SString T, SString V);//若串S中存在字串T,则用V替代所有不重叠的Tvoid StrInsert(SString &S, int pos, SString T);//在串S中pos位置插入子串Tvoid StrDelete(SString &S, int pos, int len);//在串S中pos位置删除长度为len的子串void GetNext(SString S, int next[]);//求模式串中的next函数修正值并写入数组next[]int FindKMP(SString S, SString T, int start);//在串S中从start位置开始,查找第一次出现模式T的位置返回,没找到返回-1void StrReplace2(SString &S, SString T, SString V);//若串S中存在字串T,则用V替代所有不重叠的Tvoid KMP();//KMP算法及其应用在头文件中对所有要用到的自定义函数进行了声明,各函数的功能可见代码注释部分。
c语言实验报告《数组》

c语言实验报告《数组》C语言实验报告:数组引言:C语言是一门广泛应用于计算机编程领域的高级编程语言,其强大的功能和灵活性使得它成为了许多程序员的首选。
在C语言中,数组是一种非常重要的数据结构,它能够存储多个相同类型的元素,并通过索引来访问和操作这些元素。
本篇实验报告将重点介绍C语言中的数组,并通过实例来展示其用法和特性。
一、数组的定义和声明在C语言中,数组的定义和声明非常简单。
我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。
例如,我们可以定义一个包含5个整数的数组:```int numbers[5];```这样,我们就成功地声明了一个名为numbers的整数数组,它包含了5个元素。
二、数组的初始化在声明数组的同时,我们还可以为数组的元素赋初值。
这个过程称为数组的初始化。
C语言提供了多种初始化数组的方式,例如:```int numbers[5] = {1, 2, 3, 4, 5};```上述代码将数组numbers的前5个元素分别初始化为1、2、3、4和5。
我们也可以只给部分元素赋初值,未赋初值的元素将自动被初始化为0:```int numbers[5] = {1, 2, 3};```这样,数组numbers的前3个元素将分别被初始化为1、2和3,而后两个元素将被初始化为0。
三、数组的访问和操作数组的访问和操作是我们使用数组的重要环节。
在C语言中,我们可以通过索引来访问和操作数组中的元素。
数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,以此类推。
例如,我们可以通过以下方式来访问数组numbers的第一个元素:```int firstNumber = numbers[0];```上述代码将数组numbers的第一个元素赋值给变量firstNumber。
同样,我们也可以通过索引来修改数组中的元素:```numbers[0] = 10;```上述代码将数组numbers的第一个元素修改为10。
《C语言程序设计》实验报告数组

《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中。
编写以下程序:#include<stdio.h>main(){ int a[6] = {1,3,6,7,9};int i,j,x,t;printf("insert data:");scanf("%d",&x);for(i=0;i<5;i++)if(x<a[i])break;for(j=5;j>i;j--)a[j]=a[j-1];a[j]=x;printf("Now array a:\n");for(i=0;i<6;i++)printf("%4d",a[i]);printf("\n");}结果如下:4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。
编写以下程序:#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][10];亲爱的朋友,上文已完,为感谢你的阅读,特加送另一篇范文,如果下文你不需要,可以下载后编辑删除,谢谢!道路施工方案1、工程概况2、编制说明及编制依据3、主要施工方法及技术措施3.1施工程序3.2施工准备3.3定位放线3. 4土方开挖3.5卵石路基施工3.6天然砾基层施工3. 7高强聚酯土工格楞3.8水泥稳定砂砾基层施工3.9路缘石施工3. 10玻璃纤维土工格栅施工3.11沥青面层施工3. 12降水施工4、质量控制措施5、雨季施工安排6、安全技术措施1.工程概况本项目建设的厂址位于新疆石河子市。
工程场地位于石河子高新技术开发区经七路西。
场地原为麦田,地势南高北低。
C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
C语言实验报告《数组》

C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。
实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。
使用for循环将数组元素初始化为0。
2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。
2)修改数组元素:通过下标将数组的元素修改为新的值。
3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。
4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。
实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。
C语言实验报告《数组》

C语言实验报告《数组》C语言实验报告《数组》篇一:《C语言程序设计》实验报告数组《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:C语言实验报告本《C语言程序设计》实验报告 201X~201X 学年第二学期专业班级姓名学号任课教师计算机教学实验中心 201X年 5 月《C语言程序设计》实验报告( 1 )学号:姓名:班级:成绩:任课教师签名:《C语言程序设计》实验报告( 2 )学号:姓名:班级:成绩:任课教师签名:篇三:C语言实验报告数组实验报告实验课程名称高级C语言程序设计实验项目名称数组年级 09 级专业数学学生姓名李军学号 0907010170 理学院实验 201X 年 4 月 22 日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。
二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。
三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。
四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。
五、实验中要节约水、电、气及其它消耗材料。
六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。
七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。
仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。
八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。
C语言:数组的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日一、实验目的用C语言编写和调试数组的程序,包括一维数组和二维数组。
从而对数组的程序设计有比较深入的了解。
二、内容及结果1、程序二选择排序法1)题目:用选择法对10个整数排序。
2)代码:#include<>int main(){int a[10];int i,j,t;printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return 0;}3)运行截图:2、程序二将一个数组中的值按逆序重新存放。
1)题目:将一个数组中的值按逆序重新存放。
2)代码:# include <>int main (){int a[5]={8,6,5,4,1};int i,t;for(i=0;i<=2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<=4;i++)printf("%d ",a[i]);return 0;}3)运行截图:3、程序三输出杨辉三角形(10行)1)题目:输出杨辉三角形(10行)2)代码:#include<>int main(){int yh[10][10]={0};int i,j;for(i=0;i<10;i++)yh[i][0]=1;for(i=1;i<10;i++)for(j=1;j<10;j++)yh[i][j]=yh[i-1][j-1]+yh[i-1][j];for(i=0;i<10;i++){for(j=0;j<i+1;j++)printf("%5d",yh[i][j]);printf("\n");}}3)运行截图:4、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告_实验7_数组(学号_姓名)
一、实验目的:
1、理解数组的作用、特点;
2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等);
3、掌握字符数组、字符串的使用;
4、熟悉打擂台等典型算法。
二、实验内容
1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。
使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。
如下图所示:
程序代码:
#include<stdio.h>
int main()
{
int i;
int f[20]={1,2,3};
for(i=3;i<20;i++)
f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值
for(i=19;i>=0;i--)
{
//每行输出5个数据
printf("%10d",f[i]);
if(i%5==0)printf("\n");
}
printf("\n\n");
return0;
}
2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。
如下图所示:
(提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。
)
程序代码:
#include<stdio.h>
#define N7
int main()
{
double score[N];
double max,min,sum,aver;
int i;
printf("请输入%d位评委的给分:\n",N);
for(i=0;i<N;i++)
scanf("%lf",&score[i]);
max=min=sum=score[0];
for(i=1;i<N;i++)
{
if(max<score[i])
max=score[i];
if(min>score[i])
min=score[i];
sum=sum+score[i];
}
sum=sum-max-min;
aver=sum/(N-2);
printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min);
printf("该选手的最后得分是:%.4f\n\n",aver);
return0;
}
3、(基础题)计算矩阵之和:
先输出这两个矩阵,再输出求和后矩阵。
(提示:矩阵之和是对应元素相加,可用二维数组实现)
程序代码:
#include<stdio.h>
int main()
{
int a[3][4]={{3,0,4,5},{6,2,1,7},{4,1,5,8}};
int b[3][4]={{1,4,0,3},{2,5,1,6},{9,3,6,0}};
int c[3][4];
int i,j;
printf("array a:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",a[i][j]);//12
}
printf("\n");//3
}
printf("\narray b:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
//c矩阵各元素的值
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\narray a+b:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
return0;
}
4、(基础题)输入一个字符串,请编程统计其中的字母、数字、空格(含制表符)、标点符号的个数并输出。
如下图所示:
(提示:在教材的p385-386中有字符和字符串函数,可以直接引用。
如isalpha()判断字母函数、isdigit()判断数字函数、isspace()判断空格函数、ispunct()判断标点函数等)
程序代码:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
char str[201];
int i;
int a[4]={0};//定义4个统计变量,初始值为0
printf("请输入一个长度不超过200的字符串:");
gets(str);
for(i=0;i<strlen(str);i++)
{
if(isalpha(str[i])!=0)
a[0]++;
else if(isdigit(str[i]))
a[1]++;
else if(isspace(str[i]))
a[2]++;
else if(ispunct(str[i]))
a[3]++;
}
printf("该字符串的字母个数、数字个数、空格个数、标点个数分别为:");
for(i=0;i<4;i++)
printf("%d",a[i]);
return0;
}
5、(提高题)已知学生成绩如下表,要求用二维数组保存学生成绩,并计算每个学生的平均成绩以及各门课程的平均成绩。
程序运行效果如下图所示:
#include<stdio.h>
#define M4
#define N3
int main()
{
float sc[M][N];
int Row,Col;//定义行,列两个控制变量
float average_stu[M]={0.0};//存放每个学生的平均成绩
float average_sc[N]={0.0};//存放每门课程的平均成绩
printf("请输入4个学生3门课程的成绩:");
for(Row=0;Row<M;Row++)
for(Col=0;Col<N;Col++)
scanf("%f",&sc[Row][Col]);
printf("\n已输入的学生成绩:\n");
for(Row=0;Row<M;Row++)
{
for(Col=0;Col<N;Col++)
printf("%.2lf\t",sc[Row][Col]);
printf("\n");
}
//计算每个学生的平均成绩
for(Row=0;Row<M;Row++)
{
for(Col=0;Col<N;Col++)
average_stu[Row]+=sc[Row][Col];
average_stu[Row]/=N;
}
//计算每门课程的平均成绩
for(Col=0;Col<N;Col++)
{
for(Row=0;Row<M;Row++)
average_sc[Col]+=sc[Row][Col];
average_sc[Col]/=M;
}
//输出每个学生的平均成绩
for(Row=0;Row<M;Row++)
printf("第%d个学生的平均成绩为:%.2lf\n",Row+1,average_stu[Row]);
printf("\n");
//输出每门课程的平均成绩
for(Col=0;Col<N;Col++)
printf("第%d门课程的平均成绩为:%.2lf\n",Col+1,average_sc[Col]);
printf("\n");
return0;
}。