您的位置:

c语言实行选择,选择C语言

本文目录一览:

c语言中的选择法是什么意思?在程序中用数组大小比较算选择法吗?

选择法是c中对数组进行排序的一种方法。

以整形数组元素为例,有数组A[10](以C语言为例描述),即A[0],A[1],…,A[8],A[9](假设其元素均互不相同)。要求对其元素排序使之递增有序。

首先以一个元素为基准,从一个方向开始扫描,比如从左至右扫描,以A[0]为基准。

接下来从A[0],…,A[9]中找出最小的元素,将其与A[0]交换。

然后将基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。

一直进行到基准位置移到数组最后一个元素时排序结束(此时基准左边所有元素均递增有序,而基准为最后一个元素,故完成排序)。

在程序中用数组大小比较不应算作选择法吧,选择是排序方法,不是简单的比较

c语言选择法

// 我把你的程序修改了下,添加了些注释,你应该会看明白滴

// sort(int *, int)函数是由大到小的排序方法。采用的算法

// 是第一次从x[0]...x[4]中选出个最大的数,然后记录下它的索引,

// 如果第一个数不是最大的,就把第一个数和最大数进行交换,使得

// x[0]是五个书中的最大数,第二次就从x[1]...x[4]中选一个最大的

// 然后把它放在x[1]的位置上。5个数,其实只需要四次就可以排好序滴

void sort(int *x,int n)

{

// i,j都是循环变量temp是用于交换的临时变量,max是用于记录每一趟循环

// 中找到的最大值的下标。我这里的temp对应你原理的t,max对应你原来的k

int i, j, temp, max;

// 1.外层的for循环用于控制查找的趟数,n个数排序,只需要n-1趟排序就可以滴

// 2.你原来是 i=n-1其实可以改为in-1.可以少一趟滴。

// 3.比如 1 2 3 这三个数排序,你可以先 假设第一个数即1是最大的,然后让1与第二个

// 4.数进行比较即1与2比较1 2你记下2对应的下标,再让2与第三个数比较2 3再记下

// 5. 3的下标所以3是最大的数字把3放到1的位置,把1放到3的位置,即交换位置。

// 6.经过一次排序后变为3 1 2 第二次再排1 与2先假设1是1与2中最大的12记下2的下标

// 7.交换1,2位置变为2 1 所以3个数进过两趟排序后已经变为有序了即3 2 1

// N个数只需N-1趟循环便可有序,外层循环用于控制循环趟数

for(i=0; in-1; i++)

{

// 先假设下标为i的数字是最大值

max = i;

// 也是用于控制循环次数,在第i趟中找出最大数的下标

// 第一次是从x[0]..x[4]这5个数中找,第二次是从

// x[1]..x[4]4个数中找这4个数的最大值...第四次从x[3]与x[4]这两个数

// 中找最大值

for(j=i+1; jn; j++)

{

// 用于找最大值的下标

if(x[j] x[max])

max = j;

}

// 看第i趟循环中看x[i]是不是最大值如果是就不需要交换了

// 你也可以改为 if (x[i] x[max]){交换两个数}

if(i!=max)

{

temp = x[i];

x[i] = x[max];

x[max] = temp;

}

}

}

c语言编程 程序怎么实现选择菜单 比如说按1 执行其中一部分 按2执行另一部分

switch(value){

    case 1:

        {

            代码

        }

        break;

    case 2:

        {

            代码

        }

        break;

    default :

        {

            代码

        }

}