本文目录一览:
在C语言中什么叫选择法
当你只有一个选项的时候,使用if(条件表达式)
当你只有两个选项的时候,使用if(条件表达式)else(条件表达式)
当你只有多个选项的时候,使用if(条件表达式)else if(条件表达式)...else(条件表达式)
例如你从1到100的数,选择5的倍数打印出来,这时候就用选择法了
for(i=1;i=100;i++)
{if(i%5==0)printf("%d\n",i);}
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语言数组排序中的选择法是什么意思啊?
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出 最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以这种排序的方法叫选择法排序。
C语言参考实例:
#include stdio.h
void main()
{
int a[]={1,3,4,2,0} ;
int i,j,n=5;
for( i=0;in-1;i++ )
for( j=i+1;jn;j++ ) //每一遍都与当前a[i]比较
if ( a[i] a[j] ) //大的前移
{
int t=a[i];
a[i]=a[j];
a[j]=t ;
}
for( i=0;in;i++ )
printf("%d ", a[i] );
}