溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用C語言怎么實現(xiàn)數(shù)組的循環(huán)左移和右移操作

發(fā)布時間:2021-02-25 15:33:18 來源:億速云 閱讀:1434 作者:戴恩恩 欄目:編程語言

本文章向大家介紹利用C語言怎么實現(xiàn)數(shù)組的循環(huán)左移和右移操作的基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

C語言是什么

C語言是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā),使用C語言可以以簡易的方式編譯、處理低級存儲器。

數(shù)組結(jié)合指針可以實現(xiàn)很多有趣的功能,比如下面這個程序:

假設(shè)數(shù)組為 : 12345

如果左移一次即為:23451 ,依次類推

如果右移一次即為:51234 ,依次類推

翻轉(zhuǎn)則為:54321

我們來實現(xiàn)下這個程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NR(x) (sizeof(x)/sizeof(x[0]))
//數(shù)組左移 
int buffer_left_move(int *buffer , int buf_len)
{
	int i ;
	char tmp = buffer[0];
	for(i = 1 ; i < buf_len ; i++)
	{
		buffer[i-1] = buffer[i] ;
	}
	buffer[buf_len-1] = tmp ;
}
//數(shù)組右移 
int buffer_right_move(int *buffer , int buf_len)
{
	int i ;
	char tmp = buffer[buf_len - 1];
	for(i = buf_len ; i > 0 ; i--)
	{
		buffer[i] = buffer[i-1] ; 
	}
	buffer[0] = tmp ;
}
//數(shù)組翻轉(zhuǎn) 
int buffer_turn_over(int *buffer , int buf_len)
{
	int size = buf_len ; 
	int i , tmp; 
	for(i = 0 ; i < size/2 ; i++)
	{
		tmp = buffer[i] ; 
		buffer[i] = buffer[size-1-i] ;
		buffer[size-1-i] = tmp;
	}
}
//打印數(shù)組 
void print_buffer(int *buffer, int buf_len)
{
	int i ;
	system("cls");
	printf("please input \'a' or \'b' or \'w' \n");
	for(i = 0 ; i < buf_len ; i++)
	{
		printf("%d",buffer[i]);
	}
	putchar('\n');
}
 
int main(void)
{
	int buffer[5] = {1,2,3,4,5} ;
	
	print_buffer(buffer,NR(buffer));
	while(1)
	{
		switch(getch())
		{	
			//左邊 
			case 'a': 
					buffer_left_move(buffer,NR(buffer)) ;
					print_buffer(buffer,5);
					break ;
			//右邊 
			case 'd': 
					buffer_right_move(buffer,NR(buffer));
					print_buffer(buffer,5);
					break ;
			//翻轉(zhuǎn) 
			case 'w':
					buffer_turn_over(buffer,NR(buffer)) ;
					print_buffer(buffer,5);
					break ;
		}
	}
	return 0 ; 
}

運行結(jié)果:

please input 'a' or 'b' or 'w'

12345

按下a為不斷左移,按下d為不斷右移,按下w則為翻轉(zhuǎn)

以上就是小編為大家?guī)淼睦肅語言怎么實現(xiàn)數(shù)組的循環(huán)左移和右移操作的全部內(nèi)容了,希望大家多多支持億速云!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI