十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你的HUN的函数参数a[M]也就是a[10],a[10]即15一个int型的数,而不是整个数组。你就是在这里出现了问题。修改方法就是把调用时的HUN(a[M])改成HUN(a)。亲测可以成功。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网站空间、营销软件、网站建设、奎文网站维护、网站推广。
printf(排序后为:);for(i=0; i5; i++)printf(%.2f ,a[i]);printf(\n);} 或者三个数的。
注意C语言当中的“=”不是等于,只是一种赋值运算。其中if(array[j]array[k]) k=j;这条语句用来比较当前位置的值和初始值(即array[0]的值)的大小的。
回答:【程序37】 题目:对10个数进行排序 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。
int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 ,有几个元素,n就是几。
以下是输入10个整数按从大到小排序后再插入一个整数的程序。
注意C语言当中的“=”不是等于,只是一种赋值运算。其中if(array[j]array[k]) k=j;这条语句用来比较当前位置的值和初始值(即array[0]的值)的大小的。
你好,这是经典的选择排序算法。第一次i赋值给p,是为了存储当时i的值。第二次给p赋值,是有条件的。
选择法与冒泡法差不多,冒泡是每次都交换,而选择法是只与最小的交换,这最小的就是用k来记录的。k=j;改为array[k]=array[j]肯定不行啊,array[k]=array[j]搞乱了原来数组的值。
然后调用上面处理排序的函数,函数的输入就是刚才输入的数,最后在把排序的结果输出即可:最后编译运行,输入10个数,最后控制台输出了排序的结果,证明程序的逻辑是没有问题的。
该程序中k的定义主要是为了存放数组中最小数的位置。然后通过t=array[k];array[k]=array[i];array[i]=t;这三条语句,再把这数组中最小的数字放到前面。注意C语言当中的“=”不是等于,只是一种赋值运算。
include void sort(int a[],int n) //选择排序 { int i;int j;for(i=0;in;i++) //n个程序 排n-1次 { int c=i;for(j=i+1;jn;j++) //从剩余的元素中,查找最小值,记住其下标。
排序法有好几种:冒泡法,快速排序,插入排序,选择排序,以及基数排序等。
劝你以后不要这么声明,最好声明为:define NUM 10 //声明数组的大小(在#include stdio.h的下一行声明)正常程序里面能不出现数字就不出现数字,不要怕麻烦,以后这会省下你很多事。