国产探花免费观看_亚洲丰满少妇自慰呻吟_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武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静宁县| 宾阳县| 武鸣县| 乌兰浩特市| 方山县| 吉隆县| 洮南市| 滕州市| 阿克陶县| 南汇区| 武义县| 沂南县| 鄂州市| 怀安县| 荃湾区| 田阳县| 社旗县| 岳阳市| 洛川县| 灯塔市| 武隆县| 洮南市| 绥阳县| 阳城县| 齐齐哈尔市| 汉沽区| 龙南县| 彰化市| 阿拉尔市| 梧州市| 望奎县| 南和县| 淄博市| 安远县| 铜山县| 定陶县| 清丰县| 和硕县| 文成县| 雅江县| 昭觉县|