标题:[求助]main函数的参数和返回值是什么呀?还有这个程序错在了那里!
只看楼主
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
 问题点数:0 回复次数:14 
[求助]main函数的参数和返回值是什么呀?还有这个程序错在了那里!

想问一下main函数的参数和返回值是什么呀?和调用的函数的参数和返回值是一样的吗?




[此贴子已经被作者于2006-11-19 13:23:04编辑过]

搜索更多相关主题的帖子: main 返回值 函数 参数 
2006-11-18 20:40
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 
1.一般main的返回值为空,如
int main(void)
{
return 0;
}

2.但严格来讲main()也有参数,即main(int argc,char *argv[])//java中是static void main(String args[]) 顺便提一下而已
因为main()函数是系统调用的,所以其参数也由系统操作,用户可以从命令行进行操作,如

int main(int argc,char *argv[])
{for(int i=0;argc>1;argc--,i++) printf("%s\n" argv[i]); //argv是字符串数组,由命令行参数赋值
}
//假如程序保存为c.exe 在命令符下执行,如C:\c.exe hello c ,此时hello c就被保存到args[]中了

3.main()也可以调用自己
void main()
{ main();
}

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-11-18 21:18
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 

#include <stdio.h>
#include <stdlib.h>
#define N 1000

int main()
{
int n, i, j;
int a[N][N];
int sum(int a[][N], int n);

while((scanf("%d", &n))== 1&&(n != 0))
{
for(i = 1;i <= n;i ++)
{
for(j = 1;j <= n;j ++)
{
scanf("%d", &a[i][j]);
}
printf("\n");
}

sum(a, n);
}

return 0;
}

int sum(int a[][N], int n)
{
int sum1 = 0, i ,j, sum2 = 0, sum = 0;
if(n == 1)
sum = a[n][n];
else
{
for(i = 1;i <= n;i ++)
for(j = 1;j <= n;j ++)
{
if((i + j)%2 == 0)
sum1 += a[i][j]*sum(a[][N], (n - 1));
else
sum2 += a[i][j]*sum(a[][N], (n - 1))*(-1);


}
}
sum = sum1 + sum2;
printf("%d\n", sum);

return 0;
}

main.c:39: error: syntax error before ']' token
:: === Build finished: 1 errors, 0 warnings ===
下面的一行和上面的差不多!为什么上面的有错误!而下面的没有错误呢!


该学习了。。。
2006-11-19 08:47
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 
周日都不来吗?

该学习了。。。
2006-11-19 11:18
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 

这是这道题的原题!

计算行列式
同学们在线性代数课上已经学习过有关行列式的概念. 这次实验我们就利用行列式展开定理编程计算低阶行列式的值

首先来简单复习一下, 已知定义在整数域 Z 上的 n 阶行列式 D:

D 的值等于它的任意行的所有元素与其代数余子式乘积的和. 即,
其中:

输入
输入可能包含多组测试数据. 每组数据的第一行是一个整数 n (0 ≤ n ≤ 9), 代表行列式的阶数; 其后有 n 行, 每行 n 个整数, 代表行列式的元素, 数值之间用空格分隔. n 等于 0 表示输入结束.

输出
对于输入数据中每个阶大于 0 的行列式, 输出其值, 后跟一换行符.

输入样例
3
1 0 0
0 1 0
0 0 1
4
1 2 3 4
5 0 0 0
-1 2 3 6
5 -1 1 -2
0

输出样例
1
50


该学习了。。。
2006-11-19 13:24
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 

#include<stdio.h>
#define N 10
void move(int (*from)[N],int n,int i,int j,int (*to)[N])
{
int a,b;
for(a=1;a<n;a++)
for(b=1;b<n;b++)
{
if(a<i && b<j)
to[a][b]=from[a][b];
else if(a<i && b>=j)
to[a][b]=from[a][b+1];
else if(a>=i && b<j)
to[a][b]=from[a+1][b];
else if(a>=i && b>=j)
to[a][b]=from[a+1][b+1];
}
}

int result(int (*p)[N],int n)
{
int j,sum=0,temp[N][N];
if(n==1)
return p[n][n];
for(j=1;j<=n;j++)
{
move(p,n,1,j,temp);
if((1+j)%2==0)
sum+=p[1][j]*result(temp,n-1);
else
sum+=(-1)*p[1][j]*result(temp,n-1);
}
return sum;
}

int main()
{
int i,j,n,a[N][N];
while(EOF!=scanf("%d",&n) && n!=0)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
printf("%d\n",result(a,n));
}
return 0;
}


2006-11-19 14:58
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 
我还是不知道我的错在了那里!有谁可以帮我试一下吗?

该学习了。。。
2006-11-19 17:06
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 

在VC++中通过fun(a[],n)的形式,即数组做参数调用的时候不能通过的

你在TC中再试试


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-11-19 18:43
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 
以下是引用zhanghuan_10在2006-11-19 8:47:24的发言:

int sum(int a[][N], int n)
{
int sum1 = 0, i ,j, sum2 = 0, sum = 0;
if(n == 1)
sum = a[n][n];
else
{
for(i = 1;i <= n;i ++)
for(j = 1;j <= n;j ++)
{
if((i + j)%2 == 0)
sum1 += a[i][j]*sum(a[][N], (n - 1));
else
sum2 += a[i][j]*sum(a[][N], (n - 1))*(-1);


}
}
sum = sum1 + sum2;
printf("%d\n", sum);

return 0;
}

main.c:39: error: syntax error before ']' token
:: === Build finished: 1 errors, 0 warnings ===
下面的一行和上面的差不多!为什么上面的有错误!而下面的没有错误呢!

(1)函数名与变量名相同
(2)函数调用形式错误
(3)递归函数必须有终止条件
(4)sum函数返回值有问题
sum2 += a[i][j]*sum(a[][N], (n - 1))*(-1);
这里sum返回的是多少


2006-11-19 19:28
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 
多谢了!!太马虎了!呵呵!

该学习了。。。
2006-11-19 19:31



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




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

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