> 백엔드 개발 > C++ > 본문

C 프로그램 화면에 문자열을 인쇄하려면 최단 경로를 인쇄하세요.

WBOY
풀어 주다: 2023-09-07 23:21:04
앞으로
1130명이 탐색했습니다.

打印最短路径以在 C 程序中在屏幕上打印字符串。

Given a string, the program must display the shortest path which will print the string over the screen using that shortest path.

Like screen will store alphabets in the format

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z
로그인 후 복사

Example

的中文翻译为:

示例

Input: HUP
Output : Move Down
Move Down
Move Down
destination reached
Move Left
Move Left
Move Down
Move Down
Move Down
destination reached
Move Up
destination reached
로그인 후 복사

这里使用的方法是将字符存储在n x n矩阵中,并执行以下操作 −

If row difference is negative then move up
If row difference is positive then move down
If column difference is negative then go left
If column difference is positive then we go right
로그인 후 복사

算法

START
Step 1 -> Declare Function void printpath(char str[])
   Declare variable int i = 0 and cx=0 and cy=0
   Loop While str[i] != '\0'
      Declare variable as int n1 = (str[i] - 'A') / 5
      Declare variable as int n2 = (str[i] - 'B' + 1) % 5
      Loop while cx > n1
         Print move up
         cx—
      End
      Loop while cy > n2
         Print Move Left
         Cy—
      End
      Loop while cx < n1
         Print move down
         Cx++
      End
      Loop while cy < n2
         Print move down
         Cy++
      End
      Print destination reached
      I++
Step 2 -> in main()
   Declare char str[] = {"HUP"}
   Call printpath(str)
STOP
로그인 후 복사

Example

的中文翻译为:

示例

#include <stdio.h>
void printpath(char str[]){
   int i = 0;
   // start from character &#39;A&#39; present at position (0, 0)
   int cx = 0, cy = 0;
   while (str[i] != &#39;\0&#39;){
      // find cordinates of next character
      int n1 = (str[i] - &#39;A&#39;) / 5;
      int n2 = (str[i] - &#39;B&#39; + 1) % 5;
      // Move Up if destination is above
      while (cx > n1){
         printf("Move Up</p><p>");
         cx--;
      }
      // Move Left if destination is to the left
      while (cy > n2){
         printf("Move Left</p><p>");
         cy--;
      }
      // Move down if destination is below
      while (cx < n1){
         printf("Move Down</p><p>");
            cx++;
      }
      // Move Right if destination is to the right
      while (cy < n2){
         printf("Move Down</p><p>");
         cy++;
      }
      // At this point, destination is reached
      printf("destination reached</p><p>");
      i++;
   }
}
int main(int argc, char const *argv[]){
   char str[] = {"HUP"};
   printpath(str);
   return 0;
}
로그인 후 복사

输出

如果我们运行上面的程序,它将生成以下输出−

Move Down
Move Down
Move Down
destination reached
Move Left
Move Left
Move Down
Move Down
Move Down
destination reached
Move Up
destination reached
로그인 후 복사

위 내용은 C 프로그램 화면에 문자열을 인쇄하려면 최단 경로를 인쇄하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!