[计算机]指针数组函数进行成绩排序指向二维数组的指针作为参数传递数组.docVIP

[计算机]指针数组函数进行成绩排序指向二维数组的指针作为参数传递数组.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机]指针数组函数进行成绩排序指向二维数组的指针作为参数传递数组

/* 主函数调用子函数: 程序功能:输入一个班每个学生两门功课的成绩和姓名学号并计算出每个学生的平均成绩; 按平均成绩从大到小排序每个学生的数据;输出排序前后的数据*/ #include stdio.h main() { void sort(int (*p_cj)[4], char xm[][20], int k );/* 函数声明 */ void pr(int (*p_cj)[4], char xm[][20], int n ); /* 函数声明 */ int cj[50][4]={0}, rs; /* cj[ x ][0]中放学号,cj[x][1]、cj[x][2]中放两门功课的成绩、cj[x][3] 中放平均成绩*/ char xm[50][20]; /* xm数组中的每一行放一个学生的姓名 */ rs=data-input( cj, xm ); /* data-input( )函数 返回人数存入 变量rs中 */ pr(cj, xmrs); sort(cj, xm, rs ); pr(cj, xm, rs); } int data-input( int (*p_cj)[4], char xm[][20] ) /* 输入数据和求每个学生的平均成绩的子函数 */ { int k; for(k=0;k=49;k++) { printf(INPUT DATA1 :\n); scanf(%d,p_cj[k][0]); /* 学号 */ if(cj[k][0]=0) break; printf(INPUT DATA2:\n); scanf( %s %d %d, xm[n], p_cj[k][1], p_cj[k][2]); p_cj[k][3]=(p_cj[k][1]+p_cj[k][2])/2; /*求平均成绩 */printf(INPUT DATA2:\n); scanf( %s %d %d, xm[n], *(p_cj+k)+1, *(p_cj+k)+2); *(*(p_cj+k)+3)=( *(*(p_cj+k)+1)+ *(*(p_cj+k)+2))/2; /*求平均成绩 */ } return( k ); /*返回人数 */ } sort( int (*p_cj)[4], char xm[][20], int k ) /*排序函数*/ { int n, buf[4]; char buf1[20]; for( n=0; n k-1 ; n++ ) /*开始排序 使用冒泡排序法*/ for( m=0; mk-n; m++) if( cj[m][3] p_cj[m+1][3] ) { for(g=0;g4;g++) buf[g]= p_cj[m][g]; /* 将第m个学生的 学号、和成绩存入buf数组 */ for(g=0;g4;g++) cj[m][g]= p_cj[m+1][g]; /*将第m+1个学生的 学号和成绩存入第m个学生的原存放地 */ for(g=0;g4;g++) cj[m+1][g]=buf[g]; /* 将第m个学生的 学号、和成绩存入第m+1个学生的原存放地 */ strcpy( buf1,xm[m] ) ; /* 将第m个学生的姓名存入guf1数组 */ strcpy( xm[m], xm[m+1] ); /* 将第m+1个学生的姓名存入第m个学生的姓名原存放地 */ strcpy(xm[m+1], buf1 ); /* 将第m个学生的姓名存入第m+1个学生的姓名原存放地 */ } pr( int int (*p_cj)[4], char xm[][20], int n ) /* n中是学生人数 */ { int k; printf(\n\n); /* 输出排序后的每个人的数据 */ for(k=0; k; k++) printf(%4d %s %4d %4d %4d\n,*(*(p_cj+k)+0),xm[k], *(*(p_cj+k)+1), *(*(p_cj+k)+2), *(*(p_cj+k)+3) ); } 要求用指针法引用数组元素!! 要求用指针法引用数组元素!!

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档