预处理命令
#include<stdio.h>
函数声明(可省略)
void func(int [],int);
函数定义
基础方法
void func(int p[],int a)
{
int temp;
int j;
int i;
for(j=0;j<(a-1);j++)
{
for(i=0;i<a-1-j;i++)
{
if (p[i] > p[i+1])
{
temp = p[i];
p[i] = p[i+1];
p[i+1] = temp;
}
}
}
}
函数优化和包装
void func(int p[],int a)
{
int i,j,num,temp;
for(j=0;j<(a-1);j++){
num=0;
for(i=0;i<a-1-j;i++){
if (p[i] > p[i+1]){
temp = p[i];
p[i] = p[i+1];
p[i+1] = temp;
num = 1;
}
}
if (num==0)
break;
}
}
函数调用
void main(void)
{
int a = 5;
int p[a] = {5,4,3,2,1};
func(p,a);
for(int i=0;i<a;i++)
{
printf("%d\n",p[i]);
}
}
输出:
1
2
3
4
5
设计用户输入
void main()
{
static int a;
printf("请输入数据个数\n");
scanf("%d",&a);
getchar();
int data[a];
int i=0;
int num;
for(i;i<a;i++)
{
printf("请输入第%d个数据\n",(i+1));
scanf("%d",&num);
data[i] = num;
getchar();
}
}
完整代码
#include <stdio.h>
#include <stdlib.h>
void func(int p[],int);
void func(int p[],int a)
{
int i,j,num,temp;
for(j=0;j<(a-1);j++){
num=0;
for(i=0;i<a-1-j;i++){
if (p[i] > p[i+1]){
temp = p[i];
p[i] = p[i+1];
p[i+1] = temp;
num = 1;
}
}
if (num==0)
break;
}
}
int main()
{
static int a;
printf("请输入数据个数\n");
scanf("%d",&a);
getchar();
int data[a];
int i=0;
int num;
for(i;i<a;i++)
{
printf("请输入第%d个数据\n",(i+1));
scanf("%d",&num);
data[i] = num;
getchar();
}
func(data,a);
printf("\n\n");
for(i=0;i<a;i++)
{
printf("%d : %d\n",(i+1),data[i]);
}
return 0;
}