国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言實現數組的循環左移,右移,翻轉的示例

2020-05-23 13:29:35
字體:
來源:轉載
供稿:網友

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

假設數組為 : 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語言實現數組的循環左移,右移,翻轉的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸丰县| 广饶县| 通州市| 信阳市| 建宁县| 习水县| 井研县| 通州区| 贵定县| 凤冈县| 新闻| 江永县| 台中县| 浮梁县| 稻城县| 瑞安市| 商河县| 阿拉善右旗| 东乌珠穆沁旗| 岗巴县| 高雄市| 融水| 奉新县| 自治县| 广灵县| 星子县| 彰化县| 莱西市| 澄江县| 韩城市| 梅州市| 东平县| 房山区| 乾安县| 和平县| 桑植县| 南雄市| 枣庄市| 读书| 益阳市| 芷江|