C 언어 배열 요소 순환 오른쪽 이동 문제 및 해결 방법

C 언어 는 통용 되 고 프로 세 스 를 위 한 컴퓨터 프로 그래 밍 언어 이다.1972 년 UNIX 운영 체 제 를 이 식·개발 하기 위해 데 니스 리 치 는 베 어 전화 실험실 에서 C 언어 를 설계 개발 했다.
C 언어 는 광범 위 하 게 사용 되 는 컴퓨터 언어 로 자바 프로 그래 밍 언어 와 마찬가지 로 보급 되 고 이들 은 현대 소프트웨어 프로그래머 들 사이 에서 광범 위 하 게 사용 된다.
제목 내용:
  
문제 풀이 의 사고 방향.
방법 1:
이것 은 제 가 스스로 모색 한 방법 입 니 다.배열 에 대한 여러 번 의 역 치 를 통 해 순환 효 과 를 얻 었 습 니 다.모두 배열 에 대해 세 번 의 역 치 를 했 기 때문에 하나의 함 수 를 구성 해 야 합 니 다.
이 함 수 는 하나의 배열 을 역 설정 할 수도 있 고 배열 의 일부 구간 을 역 설정 할 수도 있다.
1.먼저 전체 배열[0,N)을 한 번 역 설정 합 니 다.
2.배열 의 앞부분 구간[0,M)을 역 치 한다.
3.배열 의 뒷부분 구간[M,N)을 역 치 한다.
N=2,M=2 를 가정 하면 구체 적 인 배열 은 nums[6]={1,2,3,4,5,6}이다.역 치 과정 은 다음 그림 과 같다.
  
코드 는 다음 과 같 습 니 다:

#include<stdio.h>
void printArray(int nums[],int len);
void reverseArrayPro(int nums[],int begin,int end);
int main()
{
 int len,move;
 int i = 0;
 scanf("%d%d",&len,&move);
 int nums[len];
 for(i = 0;i < len;i++){
  scanf("%d",&nums[i]);
 }
 move = move%len;
 reverseArrayPro(nums,0,len);
 reverseArrayPro(nums,0,move);
 reverseArrayPro(nums,move,len);
 printArray(nums,len);
 return 0;
}
//    
void printArray(int nums[],int len){
 int i=0;
 for(i = 0; i < len; i++){
  if(i==len-1)
   printf("%d",nums[i]);
  else
   printf("%d ",nums[i]);
  
 }
}
//         
void reverseArrayPro(int nums[],int begin,int end){
 int i=0;
 int j=1;
 for(i=begin;i<(end-begin)/2+begin;i++){
   int temp = nums[i];
   nums[i]=nums[end-j];
   nums[end-j]=temp; 
   j++;
 }
}
  
방법 2:
이것 은 내 가 인터넷 에서 본 방법 이다.이런 방법 은 나의 방법 과 나의 방법 보다 훨씬 간단 하 다.실제로 그것 은 배열 의 요 소 를 이동 하지 않 고 배열 의 요 소 를 간단하게 바 꾸 었 을 뿐이다.
순서대로 배열 의 N-M~N-1 번 요 소 를 옮 겨 다 니 고 0~N-M-1 번 요 소 를 옮 겨 다 닙 니 다.
코드 는 다음 과 같 습 니 다:

#include<stdio.h>
int main()
{
 int len,move;
 int i = 0;
 scanf("%d%d",&len,&move);
 int nums[len];
 for(i = 0;i < len;i++){
  scanf("%d",&nums[i]);
 }
 move = move%len;
 for(i = len-move;i<len;i++){
  printf("%d ",nums[i]);
 }
 for(i = 0;i<len-move;i++){
  if(i==len-move-1)
   printf("%d",nums[i]);
  else
   printf("%d ",nums[i]);
  
 }
 return 0;
}

총결산
C 언어 배열 요소 의 순환 오른쪽 이동 문제 와 해결 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 배열 요소 의 순환 오른쪽 이동 문제 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저희 에 게 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기