#include stdio.h
10年积累的成都做网站、成都网站建设、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有抚州免费网站建设让你可以放心的选择与我们合作。
#include stdlib.h
#include time.h
#define MAXlen 100
void select_sort(int *x, int n) { //选择排序
int i, j, min;
int t;
for (i = 0; i n - 1; i++) { // 要选择的次数:0~n-2共n-1次
min = i; // 假设当前下标为i的数最小,比较后再调整
for (j = i + 1; j n; j++) { //循环找出最小的数的下标是哪个
if (*(x + j) *(x + min)) {
min = j; // 如果后面的数比前面的小,则记下它的下标
}
}
if (min != i) { // 如果min在循环中改变了,就需要交换数据
t = *(x + i);
*(x + i) = *(x + min);
*(x + min) = t;
}
}
}
int main() {
int i;
int iArr[MAXlen];
srand((unsigned int)time(NULL));
printf("\n排序前:\n");
for(i = 0 ; i MAXlen ; i++) {
iArr[i] = (unsigned int)rand() % 1000;
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n");
select_sort(iArr,MAXlen);
printf("\n排序后:\n");
for(i = 0 ; i MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n\n");
return 0;
}
void Swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void Selectsort(int *arr, int sz)
{for (int end=sz-1; end=0; end--)
{
int max = end;
int i;
for ( i = 0; i = end; i++)//选出最大下标
{
if (arr[i] arr[max])
{
max = i;
}
}
Swap(arr, arr[max]);
}
}
int main()
{
int arr[5] = { 1, 3, 2, 5, 4 };
int sz = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i = sz - 1; i++)
{
scanf("%d", arr[i]);
}
Selectsort(arr, sz);
for (int i = 0; i = sz - 1; i++)
{
printf("%d ", arr[i]);
}
system("pause");
return 0;
}
扩展资料:
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md--gt;m域宽,打印出来以后,在控制台上,显示m位;
如果要打印的数的位数如果超过我们设定m则原样输出;
如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
#includestdio.h
#includestdlib.h
#define shengxu 0
void RandonArray(int a[],int n)
{
int i;
srand(time(NULL));
for(i=0;in;i++)
{
a[i]=rand();
}
}
void SortArray(int a[],int n)
{
int i,j,t;
for(i=0;in-1;i++)
{
for(j=0;jn-i-1;j++)
{
if(shengxu)
{
if(a[j]a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
else
{
if(a[j]a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
}
}
void OutputArray(int a[],int n)
{
int i;
for(i=0;in;i++)
{
printf("%d,",a[i]);
}
}
int main()
{
int i,n,*a;
char msg[]={-56,-25,-71,-5,-78,-55,-60,-55,-93,-84,-57,-21,-72,-8,-50,
-46,50,48,48,-78,-58,-72,-69,-93,-95,0};
printf("%s\n\n",msg);
printf("请输入要随机产生的数组的元素个数:");
scanf("%d",n);
a=(int*)calloc(n,sizeof(int));
RandonArray(a,n);
printf("%s排序前数组各元素的值是:\n",shengxu ? "升序" : "降序");
OutputArray(a,n);
SortArray(a,n);
printf("\n%s排序后数组各元素的值是:\n",shengxu ? "升序" : "降序");
OutputArray(a,n);
free(a);
printf("\n");
system("PAUSE");
return EXIT_SUCCESS;
}
#include stdio.h
#include stdlib.h
#include time.h
int main(void)
{
int a[10],i,j,tmp,b;
srand(time(NULL));
for(i=0;i10;i++)
a[i]=rand()%100;
for(i=0;i10;i++)
printf("%3d",a[i]);
printf("\n");
for(i=0;i9;i++)
{
tmp=i;
for(j=i+1;j10;j++)
{
if(a[tmp]a[j])
tmp=j;
}
if(i!=tmp)
{
b=a[tmp];
a[tmp]=a[i];
a[i]=b;
}
}
for(i=0;i10;i++)
printf("%3d",a[i]);
printf("\n");
return 0;
}
随机产生数组中的元素, 更合理一些。 百科中有各种版本。