当前位置:编程学习 > C/C++ >>

c语言任意排序

要求:排序数字的个数由用户确定!程序运行后出现"请确定要排序数字的个数",用户输入个数n后,再由用户随机输入n 个数字后对这n个数字进行排序.请用选择和冒泡做!!!谢谢!
答案:用户输入的是20个数

/////冒泡法
#include <stdio.h>
void main ()
{
int i,a[100],n,j,k=1,t;
printf ("输入个数n: ");//你要的是20,就输入10吧
scanf ("%d",&n);
printf ("输入%d个数据:\n",n);
for (i=0;i<n;i++)
{
printf ("a[%d]= ",i);
scanf ("%d",&a[i]);
}
for (i=1;i<n;i++)//冒泡排序
for (j=0;j<n-i;j++)
if (a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf ("排好序的数据为:\n");
for (i=0;i<n;i++)
{
printf ("%2d ",a[i]);
if (k%5==0)
printf ("\n");
k++;
}
printf ("\n");
}

//////选择法
#include <stdio.h>
void main()
{
int min,t,i,j,k=1,n,a[100];
printf ("输入个数n: ");//你要的是10,就输入10吧
scanf ("%d",&n);
printf ("输入%d个数据:\n",n);
for (i=0;i<n;i++)
{
printf ("a[%d]= ",i);
scanf ("%d",&a[i]);
}
for(i=0;i<n-1;i++)//选择排序
{
min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
if(i!=min)
{
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
printf ("排好序的数据为:\n");
for (i=0;i<n;i++)
{
printf ("%2d ",a[i]);
if (k%5==0)
printf ("\n");
k++;
}
printf ("\n");
}

#include <stdio.h>
#include <stdlib.h>

void SelectSort(int a[], int n) // 选择排序
{
int i, j, small;
int temp;

for (i = 0; i < n - 1; i++)
{
small = i;
for (j = i + 1; j < n; j++)
{
if (a[j] < a[small])
{
small = j;
}
}
if (small != i)
{
temp = a[i];
a[i] = a[small];
a[small] = temp;
}
}

printf("选择排序的结果如下:");
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}

void BubbleSort(int a[], int n) // 冒泡排序
{
int i, j, flag = 1;
int temp;

for (i = 1; (i < n) && (flag == 1); i++)
{
flag = 0;
for (j = 0; j < n - 1; j++)
{
if (a[j] > a[j + 1])
{
flag = 1;
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}

printf("冒泡排序的结果如下:");
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}

int main(void)
{
int i;
int num;
int *pointer = NULL;

printf("请输入数字的个数:");
scanf("%d", &num);
pointer = (int*)malloc(sizeof(int) * num); // 分配空间

for (i = 0; i < num; i++)
{
scanf("%d", &(*(pointer + i))); // 输入数据
}

SelectSort(pointer, num);
BubbleSort(pointer, num);

return(0);
}

上一个:C语言转型C++如何?
下一个:c语言是什么?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,