实验4 作业要求
- 格式:ppt
- 大小:31.00 KB
- 文档页数:3


C语言程序设计实验报告1.实验目的1.熟练掌握一维数组、二维数组的定义、初始化和输入和输出的方法;2.掌握字符数组和字符串函数的使用;3.掌握与数组有关的常用方法(如查找、排序等)。
2.实验指导1)对任意一个一维整型数组,从中找出数组元素的最大值和最小值并输出。
要求:①数组有10个元素;②使用scanf函数实现数组元素的输入,在输入前给出必要的提示;③输出时,首先输出数组的10个元素,然后输出其最大值和最小值。
2)编写函数cmpStr(char s1[ ],char s2[ ])比较两个字符串s1和s2的大小。
如果s1>s2,返回一个正数;s1=s2,返回0;s1<s2,返回一个负数,在主函数中调用该函数完成字符串的比较操作,并输出返回值。
要求①不允许使用strcmp()函数;②用gets()函数在主函数中输入两个字符串;③实现cmpStr()函数,返回的正数或负数的绝对值应该是进行比较的两个字符串中相应的字符的ASCII码的差值。
3)将三个学生、四门课程的成绩分别存放在4*5数组的前3*4列,计算出每个学生的总成绩存放在该数组的最后一列的对应行上,然后计算出单科成绩的平均分存放在最后的对应列上。
要求:①数组类型定义为实型,成绩由scanf函数从键盘输入;②输出原始成绩(3*4列);③计算每个学生的总成绩以及单科成绩的平均分,并按要求填入到数组中,输出的结果数组(4*5列);④修改程序,采用函数调用的方式实现。
●编写一个input()函数,功能是输入学生的原始成绩;●编写一个compute()函数,功能是计算出每个学生的总成绩和单科成绩的平均分,并将计算结果分别填入4*5矩阵的最后一列和最后一行中;●编写一个output()函数,功能是输出数组元素;●在主函数中定义一个4*5数组,调用上述三个函数,以数组作为函数参数,实现该程序。
3.算法描述流程图(1)流程图如下(2)程序流程图如下(3)程序流程图如下4.原程序(1)程序为#include<stdio.h> main(){int a[10],i,max,min;for (i=0;i<=9;i++){scanf("%d",&a[i]); }max=a[0];min=a[0];for(i=1;i<=9;i++)开始定义子函数comStr() 声明变量z,s1,s2;结束输入单词输出结果{if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];}for(i=0;i<=9;i++){printf("a[%d]=%d\n",i,a[i]);}printf("the maximum value is %d,and the minimum value is %d\n",max,min); }(2)原程序为#include<stdio.h>int cmpStr(char s1[],char s2[]){int i,diff;i=0;while((s1[i]==s2[i])&&(s1[i]!='\0')) i++;if (s1[i]=='\0'&&s2[i]=='\0')diff=0;elsediff=s1[i]-s2[i];return diff;}main(){int z;char s1[100],s2[100];printf("input the first string:");gets(s1);printf("input the second string:");gets(s2);z=cmpStr(s1,s2);printf("the difference between two string is %d\n",z);}(3)#include<stdio.h>input(float stu[4][5]){int i,j;printf("请输入各门课程成绩:");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%f",&stu[i][j]);}compute(float stu[4][5]){int i,j;for(i=0;i<4;i++){stu[i][4]=0;stu[i][4]=stu[i][0]+stu[i][1]+stu[i][2]+stu[i][3];for(j=0;j<5;j++){stu[3][j]=0;stu[3][j]=(stu[0][j]+stu[1][j]+stu[2][j])/3;}}}output(float stu[4][5]){int i,j;for(i=0;i<4;i++)for(j=0;j<5;j++){printf("%6.1f ",stu[i][j]);if((j+1)%5==0)printf("\n");}}main(){float a[4][5];input(*a);compute(*a);output(*a);}4.测试数据(1)①测试数据为10 ,454,61,31,34, 71, 58, 68 ,12 ,19.②测试数据2,4,6,7,8,9,4,6,7,3.(2)①测试数据为abc, des.②测试数据为abcd, abcd.③测试数据为hjkl, asdf.(3)测试数据为:85,98, 96,97,85,84,85,86,92,93,87,96。