我今天又学习到了选择算法,呵呵,我一开始猜想是冒泡排序呢,刚学习的
#include
#define N 10
void main()
{
int Data[N];
int i,j,temp;
for(i=0;i{
printf("请输入第%d个数:",i+1);
scanf("%d",&Data[i]);
}
//开始选择排序
for(i=0;i{
for(j=i+1;j{
if(Data[i]>Data[j])
{
temp=Data[i];
Data[i]=Data[j];
Data[j]=temp;
}
}
}
//选择排序结束
for(i=0;i{
printf("排序后第%d个数为:%d\n",i+1,Data[i]);
}
}
希望对你有帮助。
#include
#include
void Sort(int *a, int n);
int main()
{
int i, n;
printf("请输入你要输入多少个数据:");
scanf("%d", &n);
int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 因为你开始无法确定数组元素个数。
printf("请输入这些数据:\n");
for(i=0; i{
scanf("%d", &a[i]);
}
Sort(a, n);
printf("排序后为:\n");
for(i=0; i{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void Sort(int *a, int n)
{
int i, j, temp;
for(i=0; i{
for(j=i; j{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
经过测试没有问题的
#include
#define N 4
main()
{
int a[N];
int i,j,t;
printf("输入%d个数:",N);
for(i=0;iscanf("%d",&a[i]);
for(i=0;ifor(j=i+1;j if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;iprintf("%d\n",a[i]);
}
改变N的值就可以实现了。答题不易,满意请采纳,其他问题请采纳后追问。