1、实验六 数组二维数组与字符串淮海工学院计算机科学系实验报告书课程名: C语言程序设计教程 题 目: 实验六 数组二维数组与字符串 班 级: 学 号: 姓 名: 1、实验内容或题目(1)编写一个程序,计算一个34阶矩阵和一个43阶矩阵相乘,并打印出结果。(使用两个二维数组a和b存储两个34阶矩阵的元素值,然后用三重for循环进行相乘求值产生二维数组c,最后输出c的各元素值。)(2)已知某班10个学生的姓名、学号,以及英语、程序设计、数学三门课的成绩,编写一个程序,完成下列工作: 全班每个学生姓名、学号和三门课成绩的输入及总分计算。 统计各科的总成绩。 当给出学生姓名或学号时,检索出该生每门功课的
2、成绩及总成绩。【解】定义一维数组no存储学生学号,二维数组name存储学生姓名,二维数组degree存储学生三门课成绩及总分。(3)编写一个程序,判定一个字符串是否是另一个字符串的子串。2、实验目的与要求1、目的:(1)进一步学习程序设计的方法和步骤;(2)掌握循环结构程序设计与数组的结合; 3、实验步骤与源程序 实验步骤1.建立工程,添加C+源文件,编写程序。2.调试修改语法错误。3.编译,链接生成可执行程序。4.运行程序,检查试验结果。 源代码(一)#includevoid main() int a34=2,3,4,2,1,2,3; int b43=1,2,3,2,3,4,3,4,5; i
3、nt c33,i,j,k,s; for(i=0;i3;i+) for(j=0;j3;j+) s=0; for(k=s=0;k4;k+) s+=aik*bkj; cij=s; for(j=0;j3;j+) printf(%4d,cij); printf(n);(二)法一.#include#includeconst int RS=3;char nameRS8;int noRS;float degreeRS40;void input() printf(输入数据:); for(int i=1;i=RS;i+) printf(第%d个学生n,i); printf(姓名:); scanf(%s,&name
4、i-1); printf(学号); scanf(%d,&noi-1); printf(英语成绩:); scanf(%f,°reei-10); printf(程序设计成绩:); scanf(%f,°reei-11); printf(数学成绩:); scanf(%f,°reei-12); degreei-13=degreei-10+degreei-11+degreei-12; void sum() float s1=0,s2=0,s3=0; printf(统计各科总成绩n); for (int i=0;iRS;i+) s1+=degreei0; s2+=degreei1; s3+
5、=degreei2; printf(英语总成绩:%gn,s1); printf(程序设计总成绩:%gn,s2); printf(数学总成绩:%gn,s3);void query() int sel,bh,i; char xm8; printf(数据查询n); printf(1.姓名 2.学号 请选择:); scanf(%d,&sel); switch(sel) case 1:printf(输入姓名:); scanf(%s,&xm); for(i=0;iRS;i+) if (strcmp(xm,namei)=0) printf(姓名:%sn,xm); printf(学号:%dn,noi); pr
6、intf(英语成绩:%gn,degreei0); printf(程序设计成绩:%gn,degreei1); printf(数学成绩:%gn,degreei2); printf(总成绩:%gn,degreei3); break; case 2:printf(输入学号:); scanf(%d,&bh); for(i=0;iRS;i+) if(bh=noi) printf(姓名:%sn,xm); printf(学号:%dn,noi); printf(英语成绩:%gn,degreei0); printf(程序设计成绩:%gn,degreei1); printf(数学成绩:%gn,degreei2);
7、printf(总成绩:%gn,degreei3); break; default:printf(无此选项!n); void main() input(); sum(); query(); 法二.#includevoid main() int score10,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,&scorei); for(i=0;imax) max=scorei;maxn=i; if(scoreimin) mi
8、n=scorei;minn=i; aver+=scorei; if(scorei60)bjg=bjg+1; else if(scorei75)jg=jg+1; else if(scorei90)lh=lh+1; else yx=yx+1; aver/=10; printf(最高分者:%dn,scoremaxn); printf(最低分者:%dn,scoreminn); printf(平均分为%.2n,aver); printf(优秀%.0f人,占比为%.0f%n,yx,yx*10); printf(良好%.0f人,占比为%.0f%n,lh,lh*10); printf(及格%.0f人,占比为%
9、.0f%n,jg,jg*10); printf(不及格%.0f人,占比为%.0f%n,bjg,bjg*10);(三)#includevoid main() int i,j,k,index; char s120,s220; printf(主字符串:); gets(s1); printf(子字符串:); gets(s2); index=0; for(i=0;s1i;i+) for(j=i,k=0;s1j=s2k;k+) if(!s2k+1) index=i; break; if(index!=0) break; printf(位置=%dn,index);4、测试数据与实验结果(可以抓图粘贴)5、结
10、果分析与实验体会感觉这次报告比较难,敲代码的时候感觉自己什么都不会了,看到给出的参考都有些崩溃了,前几次还觉得懂了,这次有感觉回到了初学时期,看来以后要多多努力,现在学到的还只是基础,以后学难的要更加下功夫了。#includevoid main() int a34=2,3,4,2,1,2,3; int b43=1,2,3,2,3,4,3,4,5; int k,i,j,c33,s=0; for(i=0;i=2;i+) for(j=0;j=2;j+) for(k=0;k=3;k+) s+=aik*bkj; printf(%d,s); cij=s; for(j=0;j=2;j+) printf(%4d,cij); printf(n);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2