求助---2个小程序
以下两个小程序是老潭书上(第2版)的例子中的一个部分,书上没解释,我看不明白f(int a)
{auto int b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
我觉得好怪,怎么可以返回到a+b+c这样的式子啊???
void sort(int array[],int n)
{int i,,k,t;
for(i=0;i<n-1;i++)
[bold]< [/bold]{k=i;
for(j=k+1;j<n;j++)
if(array[j]<array[k]) k=j;[bold]>[/bold]这里有什么用?? 为什么要k=i,k=j??
t=array[k];array[k]=array[i];array[i]=t;}
}
搜索更多相关的解决方案:
return
----------------解决方案--------------------------------------------------------
第一题,返回的是 a+b+c 的值
----------------解决方案--------------------------------------------------------
第一个:return(a+b+c);是返回a+b+c的值;
第二个:k是个中间值,是交换数据时使用的.
----------------解决方案--------------------------------------------------------
不习惯可以给个T,让T=A+B+C,然后RETURN(T)
下面是个赋值和互换,意思是取小的那个
----------------解决方案--------------------------------------------------------
第二个例子是干什么的。
第二个程序少了{} 吧!
[[italic] 本帖最后由 cosdos 于 2007-11-26 15:44 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
/* 第二个例子的修改版,老谭的书上的东西怎么这么垃圾阿 */
/* 用什么k 啊 */
void sort(int array[], int n) /* 升序排列 */
{
int i, j, t;
for(i = 0; i < n - 1; i++)
{
for(j = i + 1; j < n; j++)
if(array[i] > array[j])
{
t = array[j];
array[j] = array[i];
array[i] = t;
}
}
}
/* 搂主,你发的代码少了 {} 吧!*/
[[italic] 本帖最后由 cosdos 于 2007-11-26 15:48 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
可以随意返回的吗?不是开始有什么才能返回什么的吗?
回6楼的,两个都是程序的其中一个部分,有少了也只是我发的时候的错,
----------------解决方案--------------------------------------------------------
我也是新学的,看不懂啊~!
----------------解决方案--------------------------------------------------------
没少吧
程序2没少啊!!! ----------------解决方案--------------------------------------------------------
倒,人家主要是问算法,或者别的什么的,有必要在讨论少个;或者}么?
第一个就是静态和动态变量的运用.return可以返回表达式,常量,变量.
第二个是选择法排序.先要彻底理解选择法是怎么排的,每次选出最小的放到最前面,第二轮选出第二小的放到第二个数组元素中.然后依次就变从小到大了.cosdos大哥的比书上好点,不过书上的出现在刚学数组那端,如果看不动cosdos的就还是用书上的吧.不过书上的确实有点不好理解,我自己一人看的时候看了一个多星期才慢慢理解他是什么意思.苯吧,哈哈.
----------------解决方案--------------------------------------------------------