| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:各位大虾,给我解释这个程序,有个函数没有弄明白
只看楼主 加入收藏
xiayuadmin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-12
收藏
 问题点数:0 回复次数:1 
各位大虾,给我解释这个程序,有个函数没有弄明白

程序如下:

#include "stdio.h" main() { void select(); int a[10],i; printf("Input 10 numbers:"); for(i=0;i<=10;i++) scanf("%d",&a[i]); putchar('\n'); select(a,10); for(i=0;i<=10;i++) printf("%d ",a[i]); } void select(a,n) int a[],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]) k=j; if(k!=i) { temp=a[k]; a[k]=a[i]; a[i]=temp; } } }

void select(a,n),这个函数程序我没有看明白,是什么意思呀?请指教

搜索更多相关主题的帖子: 函数 解释 
2004-11-17 15:09
xueer
Rank: 1
等 级:新手上路
威 望:1
帖 子:511
专家分:0
注 册:2004-10-8
收藏
得分:0 

怎么会看不明白呢? 你可以把10改为3,然后再看。

被调函数只不过是一个排序而已。

先假设你只输入了3个数值:2,1,3。 则a[0]=2 a[1]=1 a[3]=3.

在被调函数中: void select(a,n) int a[],n; { int i,j,k,temp; for(i=0;i<n-1;i++) /*i=0时*/ { k=i; /*k=0*/ for(j=i+1;j<n;j++) /*j=1时*/ if(a[j]<a[k]) /*此时a[1]<a[0],满足条件*/ k=j; /*所以k=1,所以 k!=i,满足下一条if语句,a[1]与a[0]的值交换。*/ if(k!=i) { temp=a[k]; a[k]=a[i]; a[i]=temp; } } } } }

如果会动态调试的话就更好了,那样看的更清楚。

[此贴子已经被作者于2004-11-17 15:46:57编辑过]


2004-11-17 15:45
快速回复:各位大虾,给我解释这个程序,有个函数没有弄明白
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068163 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved