用C语言编个程序:写一函数,用“选择法”对8个整数进行排序(降序) ,怎么编?哪个高手可以帮下啊

如题所述

#include "stdio.h"

void select_sort(int a[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[j]>a[k])//将这里改成a[j]<a[k]就是按升序排序
{
k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
}//定义选择排序函数

int main()
{
int i;
int a[8];
printf("Please input 8 nubmers:\n");
for(i=0;i<8;i++)
{
scanf("%d",&a[i]);
}//从键盘读入8个整数
printf("The 8 numbers you input is:\n");
for(i=0;i<8;i++)
{
printf("%d ",a[i]);
}
printf("\n");
select_sort(a,8);//调用选择排序函数
printf("The sorted numbers is\n");
for(i=0;i<8;i++)
{
printf("%d ",a[i]);
}//对排好序的数组进行输出
printf("\n");
getchar();

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-02
#ifndef ARRAY_BASED_SORTING_FUNCTIONS
#define ARRAY_BASED_SORTING_FUNCTIONS
template <class T>
void Swap(T &x,T &y)
{
T temp;
temp=x;
x=y;
y=temp;
}
template <class T>
void Selection(T A[],int n)
{
int samllIndex;
int i,j;
for(i=0;i,n-1;i++)
{
scanf(A[i]);
}
for(i=0;i,n-1;i++)
{
smallIndex=i;
for(j=i+1;j<n;j++)
if(A[j]<A[smallIndex])
samllIndex=j;
Swap(A[i],A[samllIndex])
printf(A[samllIndex]);
}
}
#endef
你自己再看看,我想大致是这样的

...运用选择法按大到小排序后输出数组.(c语言编写)。
include <stdio.h>#define N 8main(){ int num[N]; int i,j; int temp; printf("inpute 8 integers:"); for(i=0; i<N; i++) scanf("%d", &num[i]); for(i=0; i<N-1; i++) \/*控制比较的趟数*\/ for(j=i+1; j<N; j++) \/*控制每趟比较中找到最大的数*...

C语言采用选择法对数组元素按从大到小的顺序排列
printf("\\n经过第%d次排序后,数组变为:\\n",i+1);for(j=0;j<SIZE;j++)printf("%3d",a[j]);} }

用C语言编写一函数,函数实现以下数字的排序[升序和降序]
升序和降序的区别只是IF语句里面的比较符号变化,升序为〉,然后互换。降序为〈,然后前后两个数组元素呼唤。

如何用c语言编写一个程序,按照一定的顺序排列一些数字?
方法步骤如下:1.首先,定义一个结构,包括数值、排名和序号。2.定义结构数组变量d,保存所有整数信息。3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。5.在主函数中,首先定义两个整数,并保存整数个数和排名计数...

急求:用C语言程序对一组大小不定的数字排序拜托了各位 谢谢
第一个就是冒泡排序法,几乎是最简单的排序方法: #include <stdio.h> #include <conio.h> #define N 10 int main( void ) { int i, j, temp ; int a[N] = {0,1,2,3,4,5,6,7,8,9}; \/\/ 冒泡排序法进行排序 for( i = 0; i < N - 1; i++ ){ for( j = 0; j ...

设计C语言程序,用一维数组输入N个整数,将这n个整数按从大到小排列_百度...
给你看看C语言的三种排序方法吧,这是我们老师给总结的,你看懂后就自己在写这个程序吧!一、冒泡法(起泡法)算法要求:用起泡法对10个整数按升序排序。算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序...

用选择法将一组数字升序排序,谁懂C语言,谢谢
参考程序如下:include <stdio.h> include <malloc.h> double *selectionSort(double *p, int n){ double temp;int min, i, j;for (i=0; i < n; i++){ min=i; \/\/假设最小值的下标为i for (j=i+1; j < n; j++) \/\/查找i之后是否有更小的数,若有将其下标赋值给min...

编写程序,用选择法对10个整数按从小到大顺序排序
for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0;} 追问 怎么结果不是输入的10个数的正确排序,而是一堆很怪的数? 更多追问 本回答由提问者推荐 举报| 答案纠错 | 评论 15 9 倒霉熊lujin 采纳率:59% 来自:芝麻团 擅长: C\/C++ 编程语言 教育\/科学 娱乐休闲 电脑\/网络 为...

求解C语言程序设计题:编写函数用选择排序法对数组中的数据进行从小到...
void sort(int a[], int n){ int i, j, t;for(i = 0; i < n - 1; i++)for(j = i + 1; j < n; j++)if(a[i] > a[j]){ t = a[i]; a[i] = a[j]; a[j] = t;} }

如何用c语言编写选择排序的程序?
1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:3、编译运行程序,输入任意的10个数,回车...

相似回答
大家正在搜