重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
比如要执行printdigits(1234),则执行
创新互联建站专注于穆棱网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供穆棱营销型网站建设,穆棱网站制作、穆棱网页设计、穆棱网站官网定制、小程序定制开发服务,打造穆棱网络公司原创品牌,更为您提供穆棱网站排名全网营销落地服务。
printdigits(1234/10);
printf("%d\n",1234%10);
要先执行printdigits(1234/10),即printdigits(123),变成执行
printdigits(123/10);
printf("%d\n",123%10);
printf("%d\n",1234%10);
要先执行printdigits(123/10),即printdigits(12),变成执行
printdigits(12/10);
printf("%d\n",12%10);
printf("%d\n",123%10);
printf("%d\n",1234%10);
要先执行printdigits(12/10),即printdigits(1),变成执行
printf("%d\n",1);
printf("%d\n",12%10);
printf("%d\n",123%10);
printf("%d\n",1234%10);
以上依次执行打印:1 2 3 4
利用函数的模块化设计。
1、完成整体函数格局,输入、排序、输出。
2、输入函数代码如下:
3、排序函数代码如下:
4、输出函数代码如下:
5、执行结果:
扩展资料:
利用数组和循环结构实现排序功能,具体代码如下:
执行结果同上。
#include stdio.h
int i=0;
int dig[];
void digit(int);
int main()
{
int num;
int j;
i=0;
printf("请输入一个正整数:\n");
scanf("%d",num);
digit(num);
for(j=i;j=0;j--)
{
printf("%d\n",dig[j]);
}
return 0;
}
void digit(int num)
{
dig[i++]=num%10;
num = num/10;
if(num0)
{
digit(num);
}
else
i=i-1;
}
C语言实现将数组的六个元素按从小到大的顺序输出,可以采用内部排序算法对数组的元素进行排序,然后输出排序后的数组,就可以得到按从小到大的顺序输出。
以快速排序为例的排序代码:
void quickSort(int a[],int l,int r) {
if(l=r)
return;
int i = l;
int j = r;
int key = a[l];//选择第一个数为key
while(ij) {
while(ij a[j]=key)//从右向左找第一个小于key的值
j--;
if(ij) {
a[i] = a[j];
i++;
}
while(ij a[i]key)//从左向右找第一个大于key的值
i++;
if(ij) {
a[j] = a[i];
j--;
}
}
a[i] = key;
quickSort(a, l, i-1);//继续排左部分,递归调用
quickSort(a, i+1, r);//继续排右部分,递归调用
}
int main() {
int a[]= {12,4,132,55,46,232};//随机数组
int i,n = sizeof(a)/sizeof(a[0]);//获取数组大小
quickSort(a,0,n-1);//快速排序函数入口
for(i = 0; i n; i ++)//输出排序后的结果
printf("%d ",a[i]);
return 0;
}
扩展资料:
排序算法的评价标准:
1、时间复杂度,即从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间度量。
2、空间复杂度,就是从序列的初始状态经过排序移位变换的过程一直到最终的状态所花费的空间开销。
3、使用场景,排序算法有很多,不同种类的排序算法适合不同种类的情景,可能有时候需要节省空间对时间要求没那么多,反之,有时候则是希望多考虑一些时间,对空间要求没那么高,总之一般都会必须从某一方面做出抉择。
4、稳定性,稳定性是不管考虑时间和空间必须要考虑的问题,往往也是非常重要的影响选择的因素。
基本的内部排序:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序。
参考资料来源:百度百科-排序算法
排序有挺多方法的,例如:冒泡排序法、选择排序法
以下使用选择排序
#include stdio.h
void fun(int a[], int n)
{
int i,j,k,tmp;
for(i=0;in-1; i++)
{
k=i;
for(j=i+1;jn;++j)
if(a[j]a[k]) k=j;
if(k!=i)
{
tmp=a[k];a[k]=a[i];a[i]=tmp;
}
}
}
int main()
{
int a[10];
int i;
for(i=0; i10; i++) scanf("%d", a[i]);
fun(a,10);
for(i=0; i10; i++) printf("%d\n", a[i]);
printf("第二大的数是:%d",a[1]);
return 0;
}