/*
* vim:tabstop=4,shiftwidth=4
* ============================================================
*
* Filename: sort.c
* Description: 随机产生10个二位整数,并将这10个数顺序输出
* Version: 1.0
* Created: 2015/6/12 21:00:00
* Revision: none
* Compiler: gcc V3.4.5
* Organization: Copyright (c) 2015, ZT
*
* ============================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define CAP 10 //宏定义数组的大小
#define MAX 90 //宏定义区间的最大值
//随机产生10个数
int* get_data(int a[])
{
srand(time(NULL));
int i = 0;
for(i=0; i < CAP; i++)
{
a[i]=rand() % MAX + 10 ;//随机数的区间[10~99]
}
return a;
}
//打印数组
void print(int a[])
{
int i = 0;
for(i = 0; i < CAP; i++)
{
//printf("a[i] = %d\n",a[i]);
printf("%d\t",a[i]);
}
printf("\n");
}
//冒泡排序
void bubble_sort(int *data, int size)
{
int i=0,j=0;
for(i=0; i<size-1; i++)
{
int flag = 1;//表示已经有序
for(j=0; j<size-1-i; j++)
{
if(data[j] > data[j+1])
{
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
flag = 0;
}
}
if(flag)
{
break;
}
}
}
int main()
{
int a[CAP] = {0};
int input = 0;
print(get_data(a));
printf("Will you sort?(Y/N)");
scanf("%c",&input);
if(input == 'Y' || input == 'y')
{
bubble_sort(a, CAP);
print(a);
}
else
{
printf("退出程序!\n");
}
return 0;
}
写程序时注意要模块化,不要全部写在主函数中,希望对你有所帮助!