标题:[求助]大家帮我看看错在哪里?
只看楼主
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
得分:0 

我在《C/C++程序员实用大全》一书中找到:

“但是,随着程序的复杂化,用户已不太可能总是以正确的位置放置函数。因此,C允许在

程序中置入“函数原形”,用来描述函数的返回值和参数类型“。

是不是可以放在这解释上面的问题。


差点把你忘了...
2004-08-20 11:57
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
这个是可以的,在main()内申明函数。

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-08-20 14:10
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
得分:0 

我终于找到了,《C++程序开发与设计》中说: “然而,决不能将findmax()的定义放在main()的内部。对所有的C++函数来说都是如此。 没个函数都必须在任何别的函数外面定义。每个C++函数都是单独和独立的实体,带有 各自的参数和变量;决不允许函数的嵌套。

原来所说的函数的嵌套,不是说不许在一个函数中声明一个函数,而是说不许在一个函数中 定义一个函数。明白了!!!!

哈哈哈哈哈哈。。。。。。。。。。。

[此贴子已经被作者于2004-08-20 14:29:23编辑过]


差点把你忘了...
2004-08-20 14:28
silvermoon
Rank: 1
等 级:新手上路
帖 子:188
专家分:0
注 册:2004-8-20
得分:0 

我觉得还是有错

函数的调用是值的单向传递,如果要通过sor函数来排序的话就要用指针

而且函数int sort(int b[]) {int i,j,t; for(i=1;i<10;i++) if(b[i]>b[i+1]) {t=b[i];b[i]=b[i+1];b[i+1]=t;} }的作用并不能起到按从小到大的顺序来排列数组元素

比如前3个元素分别是20 18 17 的话,按照这个函数排出来就是18 17 20的顺序

还是用冒泡算法吧


我是一棵菠菜~~菜菜菜菜菜~~~
2004-08-20 14:40
云中倒影
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-7-27
得分:0 

总算成功了,谢谢各位,代码如下:

#include "stdio.h"

main() { int sort(int b[],int n); int a[10],i; printf("Please input 10 number"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); sort(a,10); printf("the sorted number:\n"); for(i=0;i<10;i++) {printf("%d",a[i]); printf("\n");} } sort(int b[],int n) {int i,j,t; for(j=1;j<n;j++) for(i=0;i<n-j;i++) if(b[i]>b[i+1]) {t=b[i];b[i]=b[i+1];b[i+1]=t;} }

[此贴子已经被作者于2004-08-20 17:03:28编辑过]

2004-08-20 17:01
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
得分:0 

还这样写,你认为这样写好么???

现在不是说对不对的问题!!!!

格式好么?


差点把你忘了...
2004-08-20 18:53
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
以下是引用云中倒影在2004-08-20 17:01:05的发言:

总算成功了,谢谢各位,代码如下:

#include "stdio.h"

main() { int sort(int b[],int n); int a[10],i; printf("Please input 10 number"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); sort(a,10); printf("the sorted number:\n"); for(i=0;i<10;i++) {printf("%d",a[i]); printf("\n");} } sort(int b[],int n) {int i,j,t; for(j=1;j<n;j++) for(i=0;i<n-j;i++) if(b[i]>b[i+1]) {t=b[i];b[i]=b[i+1];b[i+1]=t;} }

好像不能在函数内部声明和定义函数吧?

2004-08-20 19:41
阿一2004
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2004-7-24
得分:0 

這個題前兩天才我做過,

不過也是把函數聲明放在外面,~~~~~

2004-08-20 23:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-4409-1-1.html




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

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