×
C 语言教程C 简介C 环境设置C 程序结构C 基本语法C 数据类型C 变量C 常量C 存储类C 运算符C 判断C 循环C 函数C 作用域规则C 数组C 指针C 函数指针与回调函数C 字符串C 结构体C 共用体C 位域C typedefC 输入 & 输出C 文件读写C 预处理器C 头文件C 强制类型转换C 错误处理C 递归C 可变参数C 内存管理C 命令行参数C 语言实例C 经典100例

C 标准库

C 标准库 - 参考手册C 标准库 - <assert.h>C 标准库 - <ctype.h>C 标准库 - <errno.h>C 标准库 - <float.h>C 标准库 - <limits.h>C 标准库 - <locale.h>C 标准库 - <math.h>C 标准库 - <setjmp.h>C 标准库 - <signal.h>C 标准库 - <stdarg.h>C 标准库 - <stddef.h>C 标准库 - <stdio.h>C 标准库 - <stdlib.h>C 标准库 - <string.h>C 标准库 - <time.h>

C 练习实例67:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组


C 语言经典100例C 语言经典100例


题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。。

程序分析:谭浩强的书中答案有问题。

实例

//利用指针实现数组的滚动 本例实现数组像右滚动几位 #include <stdio.h> #include <stdlib.h> int main() { int arr[20]; int i,n,offset; //输入数组大小和数组内容 printf("Total numbers?\n"); scanf("%d",&n); printf("Input %d numbers.\n",n); for(i=0;i<n;i++) scanf("%d",&arr[i]); //输入滚动偏移量 printf("Set your offset.\n"); scanf("%d",&offset); printf("Offset is %d.\n",offset); //打印滚动前数组 print_arr(arr,n); //滚动数组并打印 move(arr,n,offset); print_arr(arr,n); } //打印数组 void print_arr(int array[],int n) { int i; for(i=0;i<n;++i) printf("%4d",array[i]); printf("\n"); } //滚动数组 void move(int array[],int n,int offset) { int *p,*arr_end; arr_end=array+n; //数组最后一个元素的下一个位置 int last; //滚动直到偏移量为0 while(offset) { last=*(arr_end-1); for(p=arr_end-1;p!=array;--p) //向右滚动一位 *p=*(p-1); *array=last; --offset; } }

C 语言经典100例C 语言经典100例


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)