m0_73835053 2023-04-28 19:00 采纳率: 66.7%
浏览 15
已结题

下载latex2023出现的问题

img


下载到一半就没有了,里面提到的c盘,但我下载的时候没有用到c盘啊?这里是怎么回事?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-28 22:14
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/1101182
    • 你也可以参考下这篇文章:有关C语言在控制台输出时的左对齐右对齐
    • 除此之外, 这篇博客: 迷宫问题c程序中的 下面是我写的程序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 大体思路是利用深度优先搜索算法,搜索出口。遇到钥匙,就拿钥匙,从钥匙开始重新搜索出口。

      #include <stdio.h>
      char maze[50][50];
      int fx[] = { 1, -1, 0, 0 };
      int fy[] = { 0, 0, -1, 1 };
      int p;                          /*门的数量 */
      int xzb[20] = { 0 };
      int yzb[20] = { 0 };
      int len;                        /*有效搜索路径的长度 */
      int key[10] = { 0 };            /*存储已获得的钥匙 */
      int IsGetkey(char n);
      int IsKey(char n);
      int check(char maze[50][50], int n, int m, int i, int j);
      int search(char maze[50][50], char exit,int n, int m, int i, int j, int pi,
             int pj);
      int
      main(void)
      {
          int i, j;
          int n, m;
          int ei, ej;             /*搜索入口 */
          if (freopen("maze.in", "r", stdin) == NULL)
                  return -1;
          scanf("%d%d", &n, &m);
          scanf("%d", &p);
          for (i = 0; i < n; i++)
                  for (j = 0; j < m; j++) {
                          scanf("%c", &maze[i][j]);
                          if (maze[i][j] == '\n')
                                  scanf("%c", &maze[i][j]);
                  }
      
          for (i = 0; i < n + 1; i++) {
                  for (j = 0; j < m; j++) {
                          printf("%c", maze[i][j]);
                  }
                  printf("\n");
          }
          close(stdin);
          for (i = 0; i < n + 1; i++)
                  for (j = 0; j < m; j++)
                          if (maze[i][j] == '$') {
                                  ei = i;
                                  ej = j;
                                  i = 100;
                                  j = 100;
                          }
          search(maze, '&', n, m, ei, ej, -1, -1);
          }
      /*搜索*/
      int
      search(char maze[50][50], char exit,int n, int m, int i, int j, int pi, int pj)
      {
             char tmp;
          int k, ni, nj;          /*ni,nj表示下一个搜索点的坐标 */
          if (maze[i][j] == exit) {
                  printf("到迷宫出口需要%d步\n",len);
                  printf("出口坐标:<%d,%d>\n\n", i, j);
                  for (k = 0; k < len; k++)
                          printf("<%d,%d>\n", xzb[k], yzb[k]);
                  return 1;
          } else if (IsKey(maze[i][j])) {
                  tmp = maze[i][j];
                  maze[i][j] = '.';
                  search(maze, '&',n, m, i, j, -1, -1);
          }
          for (k = 0; k < 4; k++) {
                  ni = i + fx[k];
                  nj = j + fy[k];
                  if (ni == pi && nj == pj)
                          continue;
                  if (check(maze, n, m, ni, nj)) {
                          xzb[len] = i;
                          yzb[len] = j;
                          len += 1;
                          if (search(maze, '&',n, m, ni, nj, i, j) == 1)
                                  return 1;
                  }
          }
          len -= 1;
          return -1;}
      
      /*检查下一个搜索点是否有效*/
      int
      check(char maze[50][50], int n, int m, int i, int j)
      {
          int flag = 1;
          if (i < 0 || i >= n || j < 0 || j >= m)
                  flag = 0;
          else if (maze[i][j] >= 'A' && maze[i][j] <= 'Z'
                   && IsGetkey(maze[i][j])) ;
          else if (maze[i][j] != '.' && maze[i][j] != '&' && maze[i][j] < 'a')
                  flag = 0;
          return flag;
      }
      
      /*IsKey 判断当前搜索点是不是钥匙,是返回1
       * 否返回 0
       * */
      int
      IsKey(char n)
      {
          if (n >= 'a' && n <= 'a' + p - 1) {
                  key[n - 'a'] += 1;
                  return 1;
          } else
                  return 0;
       }
      
      /*如果当前搜索点是门,判断当前有没有该门钥匙
       * */
      int
      IsGetkey(char n)
      {
          if (key[n - 65] == 1 || n >= 'a') {
                  key[n - 65] -= 1;       /*每个钥匙只有一次使用机会 */
                  return 1;
          }
          return 0;
      }
      
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 4月28日

悬赏问题

  • ¥20 如何实现关闭某一个应用程序后,自动运行一个批处理文件。
  • ¥15 关于 S7-PLCSIM Advanced 5.0本地TCP连接无法读写数据
  • ¥15 关于温度改变石墨烯介电性能(关键词-介电常数)
  • ¥150 HDMI分路器LT86102 的输出在890MHz频点处EMC超标8DB
  • ¥15 druid(相关搜索:数据库|防火墙)
  • ¥15 大一python作业
  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥60 如何鉴定微信小程序数据被篡改过
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据