c语言程序设计竞赛辅导1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
fun1(int t[M][N],int p[N]) { int i, j, k; FILE *rf, *wf ; rf = fopen(in.dat,r); wf = fopen(out.dat,w); if(rf ==NULL||wf==NULL) {perror(open error); return -1; } for(i=0; iM; i++) for(j=0; jN; j++)     fscanf (rf, %d, t[i][j]);    fun (t, p); for (k = 0; k N; k++) fprintf (wf, %4d, p[k]); fprintf(wf, \n); fclose(rf); fclose(wf); } fun2( ) { int k; FILE *rf, *wf ; rf = fopen(in.dat,r); if(rf ==NULL) {perror(open error); return -1; } fseek(rf,(3-1)*6,SEEK_SET); fscanf (rf, %d, k); printf ( %4d , k); fseek(rf,-3*6,SEEK_END); fscanf (rf, %d, k); printf ( %4d , k); } main() {int p [N],t[M][N]; int i, j, k; fun1(t,p); printf (The original data is : \n); for(i=0; iM; i++) {for(j=0; jN; j++) printf (%6d, t[i][j]); printf(\n); } printf(\nThe result is:\n); for (k = 0; kN; k++) printf ( %4d , p[k]); printf(\n); fun2(); } * * main( ) {int x; for (x=’a’;x=’d’;x++) if ( ((x!=’a’)+(x==’c’)+(x==’d’)+(x!=’d’))==3 ) printf(“%c is a thief .”, x); } * * 【例2】三位老师对某次数学竞赛进行了预测。他们的预测如下: 甲说:学生A得第一名,学生B得第三名。 乙说:学生C得第一名,学生D得第四名。 丙说:学生D得第二名,学生A得第三名。 竞赛结果表明,他们都说对了一半,说错了一半,并且无并列名次,试编写程序输出A、B、C、D各自的名次。 * * 分析: 用数1,2,3,4分别代表学生a,b,c,d获得的名次。问题就可以利用三重循环把所有的情况枚举出来。程序如下: 返回 * * main( ) {int a,b,c,d; for( a=1;a=4;a++) for( b=1;b=4;b++) if (a!=b) for( c=1;c=4;c++) if (c!=a c!=b) {d=10-a-b-c; if (d!=a d!=b d!=c ) if (((a==1)+(b==3))==1 ((c==1)+(d==4))==1 ((d==2)+(a==3))==1) printf( “a=%d,b=%d ,c=%d,d=%d”,a,b,c,d); } } 运行结果:a=4,b=3,c=1,d=2 * * 实现要点: 【例1】填写运算符 输入任意5个数x1,x2,x3,x4,x5每相邻两个数之间填上一个运算符+、-、* 或 /。在填入四个运算符后,使得表达式值为一个指定值y(y由键盘输入)。求出所有满足条件的表达式。 模仿人去试填所有的运算符 ,结果是什么 2) 智巧类问题 ? 1)枚举法解题 2)若当前运算符轮到‘/’则运算符右端的数必须非零,因为零不能当除数。 * * 3)现在接着考虑‘+、-、*、/’应如何表示,才能方便程序对表达式的求值? 4)如何处理“先乘除/后加减”的优先顺序? 模拟计算: f----减去标志。减法运算时,置f=-1,否则f=1; q----若当前运算符为+(-)时,q存

文档评论(0)

喵咪147 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档