📄 6-2.c
字号:
#include <REG52.H>
#include <stdio.h>
#ifdef MONITOR51
char code reserve [3] _at_ 0x23; // 定义一个绝对地址
#endif
#define N 10
void main (void) {
void input(int arr[],int n); //函数声明
void sort(int *ptr,int n);
void output(int arr[],int n);
int a[N],*p; //定义一维数组和指针变量
#ifndef MONITOR51
SCON = 0x50;
TMOD |= 0x20;
TH1 = 221;
TR1 = 1;
TI = 1;
#endif
input(a,N) ; //数据输入函数调用,实参a 是数组名
p = a ; //指针变量指向数组的首地址
sort(p,N) ; //排序,实参p 是指针变量
output(p,N) ; //输出,实参p 是指针变量
while (1) {};
}
void input(int arr[],int n) //无需返回值的输入数据函数定义,形参a r //r 是数组
{
int i;
printf("input data:\n");
for( i = 0 ; i < n ; i++ ) //采用传统的下标法
scanf( "%d" , &arr[i] ) ;
}
void sort(int *ptr,int n) //冒泡排序,形参p t r 是指针变量、
{
int i,j,t;
for( i = 0 ; i < n - 1 ; i++ )
for( j = 0 ; j < n - 1 - i ; j++ )
if (*(ptr+j)>*(ptr+j+1)) //相临两个元素进行比较
{
t = * (ptr+ j ) ; //两个元素进行交换
*(ptr+ j ) = * (ptr +j+1) ;
*(ptr+ j + 1 ) = t ;
}
}
void output(int arr[],int n) //数据输出
{
int *ptr=arr; //利用指针指向数组的首地址
printf("output data:\n");
for( ; ptr-arr<n ; ptr++ ) //输出数组的n 个元素
printf("%4d",*ptr) ;
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -