中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

利用C語言怎么實現數組的循環左移和右移操作

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

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

C語言是什么

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

數組結合指針可以實現很多有趣的功能,比如下面這個程序:

假設數組為 : 12345

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

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

翻轉則為:54321

我們來實現下這個程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NR(x) (sizeof(x)/sizeof(x[0]))
//數組左移 
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 ;
}
//數組右移 
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 ;
}
//數組翻轉 
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;
	}
}
//打印數組 
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 ;
			//翻轉 
			case 'w':
					buffer_turn_over(buffer,NR(buffer)) ;
					print_buffer(buffer,5);
					break ;
		}
	}
	return 0 ; 
}

運行結果:

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

12345

按下a為不斷左移,按下d為不斷右移,按下w則為翻轉

以上就是小編為大家帶來的利用C語言怎么實現數組的循環左移和右移操作的全部內容了,希望大家多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

登封市| 新余市| 双峰县| 离岛区| 兴隆县| 抚顺县| 商南县| 永顺县| 奉贤区| 呼图壁县| 紫阳县| 石城县| 三河市| 石门县| 太仆寺旗| 巴塘县| 虎林市| 平昌县| 和顺县| 长沙县| 耿马| 揭阳市| 屏东县| 交口县| 集贤县| 西丰县| 康定县| 甘南县| 确山县| 英超| 湘潭市| 阿荣旗| 景德镇市| 祁东县| 太白县| 信宜市| 沈阳市| 开封市| 恩平市| 漳平市| 全州县|