9-4 soldier.c

  1. #include <stdio.h>
  2. #define MAXN 21
  3. };
  4. int n, m, x, y; //n,m为B点的行列坐标位置,x,y为马的坐标位置
  5. ] = { -, -, , , , , -, - };
  6. ] = { , , , , -, -, -, - };
  7. void horse() //初始化马和其控制点坐标位置
  8. {
  9. int i;
  10. chessboard[x][y] = -; //标记马的位置
  11. ; i < ; i++) //标记马下一步的位置
  12. {
  13. && x + dx[x] <= n) && (y + dy[i] >= )
  14. && (y + dy[i]) <= m)
  15. chessboard[x + dx[i]][y + dy[i]] = -;
  16. }
  17. }
  18. void search() //逐步搜寻出路
  19. {
  20. int i, j;
  21. ; i <= n; i++) //扫描第0列的各行
  22. {
  23. ] != -) //若没有障碍
  24. chessboard[i][] = ; //设置该位置可走路径数为1
  25. else
  26. break;
  27. }
  28. ; i <= m; i++) //扫描第0行的每列
  29. {
  30. ][i] != -) //若不是马的控制点
  31. chessboard[][i] = ; //设置该位置可走路径数为1
  32. else
  33. break;
  34. }
  35. ; i <= n; i++) //扫描各行各列
  36. {
  37. ; j <= m; j++)
  38. {
  39. ) //若该位置不是马的控制点
  40. {
  41. ][j] != -) && (chessboard[i][j - ] != -)) //上面和左边也不是马的控制点
  42. chessboard[i][j] = chessboard[i - ][j] + chessboard[i][j - ]; //将上面和左边的路径进行累加
  43. ][j] == -) && (chessboard[i][j - ] != -)) //若上面有马控制点,而左边无马控制点
  44. chessboard[i][j] = chessboard[i][j - ]; //保存左边路径到到当前位置
  45. ][j] != -) && (chessboard[i][j - ] == -)) //若上面无马控制点,而左边有马控制点
  46. chessboard[i][j] = chessboard[i - ][j]; //保存上面路径到当前位置
  47. ][j] == -) && (chessboard[i][j - ] == -)) //若上面和左边都有马的控制点
  48. chessboard[i][j] = ; //当前位置无通路
  49. }
  50. }
  51. }
  52. }
  53. int main()
  54. {
  55. int i, j;
  56. FILE *fp1, *fp2;
  57. if ((fp1 = fopen("soldier.in", "r")) == NULL)
  58. {
  59. printf("不能打开文件!\n");
  60. exit();
  61. }
  62. fscanf(fp1,"%d%d%d%d", &n, &m, &x, &y);
  63. fclose(fp1);
  64. horse(); //初始化马及其下一步的位置
  65. search();
  66. if ((fp2 = fopen("soldier.out", "w")) == NULL)
  67. {
  68. printf("不能打开文件!\n");
  69. exit();
  70. }
  71. printf("%d\n", chessboard[n][m]);
  72. fprintf(fp2,"%d\n",chessboard[n][m]);
  73. fclose(fp2);
  74. getch();
  75. ;
  76. }

9-5 isbn.c

  1. #include <stdio.h>
  2. int main()
  3. {
  4. ] = { "0123456789X" };
  5. ];
  6. int i, j, sum;
  7. FILE *fp1, *fp2;
  8. if ((fp1 = fopen("isbn.in", "r")) == NULL)
  9. {
  10. printf("不能打开文件!\n");
  11. exit();
  12. }
  13. fgets(str, , fp1); //从文件中读取数据
  14. fclose(fp1); //关闭文件
  15. sum = ;
  16. j = ;
  17. ; i < ; i++) //计算总和
  18. {
  19. && i != )
  20. sum += (str[i] - ') * j++;
  21. }
  22. sum %= ; //求模
  23. if ((fp2 = fopen("isbn.out", "w")) == NULL)
  24. {
  25. printf("不能打开文件!\n");
  26. exit();
  27. }
  28. ] == table[sum]) //校验码正确
  29. {
  30. fputs("Right", fp2); //输出到文件
  31. printf("Right\n");
  32. }
  33. else //校验码错误
  34. {
  35. str[] = table[sum]; //保存正确校验码
  36. fputs(str, fp2); //输出正确的ISBN到文件
  37. printf("%s\n", str);
  38. }
  39. fclose(fp2); //关闭文件
  40. getch();
  41. ;
  42. }

9.1 NOIP普及组试题精解(2)的更多相关文章

  1. 9.1 NOIP普及组试题精解(3)

    9-6 seat.c #include <stdio.h> #define MAXN 1001 void swap(int *a, int *b) //交换数据 { int t; t = ...

  2. 9.1 NOIP普及组试题精解(1)

    9-1 series1.c #include <stdio.h> int main() { float s=0.0,k; int n; printf("输入数字k(1~15):& ...

  3. 9.2 NOIP提高组试题精解(2)

    9-18 fruit.c #include <stdio.h> #define MAXN 10000 int Queue1[MAXN], Queue2[MAXN]; void Insert ...

  4. 9.2 NOIP提高组试题精解(1)

    9-16 poise.c #include <stdio.h> #define MAXN 1001 int main() { ], flag[MAXN] = { }; //保存6种砝码的数 ...

  5. 2016.10.6初中部上午NOIP普及组比赛总结

    2016.10.6初中部上午NOIP普及组比赛总结 中了病毒--病毒--病毒-- 进度: 比赛:AC+0+0+20=120 改题:AC+0+AC+20=220 Stairs 好--简--单!递推就过了 ...

  6. 2016.8.15上午纪中初中部NOIP普及组比赛

    2016.8.15上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1333 这次比赛不怎么好,因为这套题目我并不是很擅长. 可同学们 ...

  7. 2016.9.15初中部上午NOIP普及组比赛总结

    2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...

  8. 2016.9.10初中部上午NOIP普及组比赛总结

    2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...

  9. 2016.9.3初中部上午NOIP普及组比赛总结

    2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...

随机推荐

  1. GetDlgItem() 出现错误

    写MFC程序ASSERT(IsWindow(pTemp->m_hWnd))报错 CRect rect; CWnd *pWnd = GetDlgItem(IDC_picture);//IDC_pi ...

  2. vs调试,监控变量

  3. UML--组件图,部署图

    组件图用于实现代码之间的物理结构,详细来说,就是实现代码交互.通过接口,将不同的软件,程序连接在一起. [理解] 1.组件的定义相当广泛,包含:源码,子系统,动态链接库,Activex控件. 2.组件 ...

  4. swoole新手教程01-环境搭建及扩展安装

    写在前面的废话 <swoole源代码分析>已经写了13章,整个swoole的核心架构基本都分析的差点儿相同了.于是心里一直以来想整理swoole的文档并写一份教程的想法就再度浮了出来. 实 ...

  5. 制作个人开发IDE

     1.打开VS2013,新建项目: 2.点击下一步,下一步.到达例如以下界面: 3.下一步 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R ...

  6. java 设计模式 -- 责任链模式

    设计模式 – 责任链模式 介绍: 责任链模式是一种动态行为模式,有多个对象,每一个对象分别拥有其下家的引用.连起来形成一条链.待处理对象则传到此链上,在此链进行传递,且待处理对象并不知道此会被链上的哪 ...

  7. uva 11885 - Number of Battlefields(矩阵高速幂)

    题目连接:uva 11885 - Number of Battlefields 题目大意:给出周长p,问多少种形状的周长为p的,而且该图形的最小包围矩阵的周长也是p,不包含矩形. 解题思路:矩阵高速幂 ...

  8. hdu 1598 find the most comfortable road(并查集+枚举)

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  9. jquery瀑布流布局插件,兼容ie6不支持下拉加载,用于制作分类卡

    调用方法 $('需要布局的块').sault() 如果要在图片加载后调用需要使用$(window).load(function(fx){});函数,即等待图片加载完成再调用 3个参数 1.left:左 ...

  10. OrCAD Capture出现丢失cdn_sfl401as.dll问题

    昨天晚上我PCB图的时候还用OrCAD这个组件来着呢.但是还是好好的.但是今天当我再次启动程序的时候就出现了以下的对话框. 当时就吓了好一跳.好好软件怎么突然就不行了呢?先说说我出现这个问题之后的内心 ...