1。 # include <stdil.h>
main()
{
int i,j,r,m;
int a [3][3]= { {100,200,300},{28, 72, -30},{-850, 2, 6} };
m=a [0][0], r=0, c=0;
for (i=0;i<3,i++)
for (j=0;j<3,j++)
if (a [i][j<m)
m=a [i][j],r=i, c=j;
printf(“%d,%d,%d\n”,m,r,c);
}
__________________
2。long fac (int n)
{
if (n<0)
{printf (“error!”\n);
exit (-1);
}
else if (n==0 n==1) return (1);
else return (n* fac (n-1) );
}
main ()
{
printf ("%!d\n, fac (5);)
}
_______________
參考答案:第一个程序是在矩阵的每一行上寻找出最小的一个数据。
比较的默认数值是0,有比零小的就输出,没有就输出0。
结果是 -850,2,0
第二个程序应该是递归求阶乘,但是在递归的边界条件也就是递归出口的位置写的有问题
else if (n==0 n==1) return (1);
应该是有或符号的,改成如下。
else if (n==0||n==1) return (1);
另外递归的时候一定要注意数据溢出。不然一定递归出负数。答案应该是120