求纠正一道c语言题,请求写出改正方法,请大神解释详细点

#include<stdio.h>
int m,n,i,j;
float s=0,a[10][10];
void main()
{float sum(int m,int n);
printf("输入矩阵行数和列数:\n");
scanf("%d,%d",&m,&n);
printf("输入矩阵:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
sum(m,n);
printf("sum=%8.6f",s);
}
float sum(int m,int n)
{
for(i=0;i<m;i++)
{if(i!=0&&i!=m-1)
s=s+a[i][1]+a[i][n-1];
else
for(j=0;j<n;j++)
s=s+a[i][j];
}
return(s);
}
目的是求m*n矩阵的四边元素和,运行结果是若输入1到9,结果是41,与设想结果差1

第1个回答  2013-04-23
你在sum方法的for循环中加上打印a和s的语句,看看哪个数不对吧。
第2个回答  2013-04-23
你确定二维数组的各个元素相加就是用一个for?我没编译器验证不了,只想留个脚印看看大婶
第3个回答  2013-04-23
你把原题发过来我看一下追问

原题就是设计函数计算m*n矩阵的四边元素和,上面是我写的程序,可是运行结果不对,请大神帮忙看看我设计的程序有什么不对。

第4个回答  2013-04-23
17行1改成0本回答被提问者采纳

C语言的一道题 我不知道错哪了 要怎么改。 跪请大神指点,别把百度上的...
include<stdio.h>void main(void){double a,b,c;printf("请输入三边");scanf("%lf,%lf,%lf",&a,&b,&c);\/\/去掉\\n,你设置了输入格式,所以正确的输入格式是:以逗号隔开输入的数据if(a+b>c&&a+c>b&&b+c>a){if(a==b&&b==c)printf("等边三角形");else if(a*a+b*b==c*...

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
因为x=1,所以 x的二进制为:0000 0001 向左移动3位后为:0000 1000 0000 1000转为10进制位:2^3 = 8 所以,选:D

C语言问题,求大神解决,说下所使用的原理及知识点,谢谢啦,我是小白。
这个表达式的意思是: c>=’A’成立, c<=’Z’也成立,所以执行c+32 c+32 = 65+32 = 97;在ASCII码中 字符97是字符'a'所以答案选择 B

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..
第二项和第四项结果等同都是指向指针的指针操作。可以将二维数组看成一个双重指针,第一个中括号是一个一重指针。比如说a[n][m]中a[0]是一个指向a[0][m]数组首位a[0][0]的指针,而a则是指向指针数组*a[n]的首位a[0]的指针。这样我们来看B选项,*(a+2)表示一个指向a[2][0]的指针...

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
主要考察你c语言三目运算符的结合方向 是自右向左的 所以a<b?a:c<d?c:d 可以看成 a<b?a: (c<d?c:d) 1 < 4 ? a : (c < d ? c:d)括号内的表达式也可以看做是一个元素 因为 a = 1 b = 4 所以 条件 a < b 成立 所以选前者 a 答案就是 A) 1 ...

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
错误1:宏定义最后没有分号,将#define D 500;改为#define D 500 错误2:l不是整数,因此将l定义为int型就错了 错误3:既然规定输入格式为P=,那么输入时就不能直接输入数值,而应在数值之前输入P=,例如输入P=6000 另外,程序的不妥之处:1、利润不一定是整数,因此将P定义为int型不妥 2、...

有大神能帮我解决一个C语言问题吗?
一定要比较两个浮点数是否相等时,要用两数之差是否小于一个很小的数。把变量a,n,m都定义为long int型后,在求平方根时,系统会自动根据有效位数进行强制转换,这样转换的结果,并不能保证完全正确。最好是用下面的方法:if(fabs(a+100-n*n)<1e-6 && fabs(a+268-m*m)<1e-6)...

C语言,数组输入遇到问题求大神指教:哪里错了,如何改正,为什么会出现...
所以你那样写,第一次循环输入2回车,不会进入下一次循环,而是等待再次输入,然后你输入3的时候2被存储在元素1中,进入下一个循环,已经有3了还要等待输入,于是你输入4,实际保存的是3,所以后面都错位了,结果就是最后一个输入没有被保存。另外所有i循环都从0开始,包括冒泡排序。修改如下:include<...

求大神解答这道c语言题
当运行for循环时*p+=x[i];因此*P的值会变为*p=*p + x[i];不过在循环中有i++和p++,在执行每次循环之后p++将p指向的值后移了一位,而数组的本质也是指针;一次在执行一次循环之后x[0]的值会变为2,而*p因为后移了一位指向了x[2],一次类推,执行完成后*p指向了x[5],所以*p为5,而...

C语言题目!!求大神!! 求过程!!
也就是说,第一次执行的时候是把c和e互换,然后s指指针向后移动,也就是指向f所在单元,t指指针向前移动,也就是指向b,判断s指向的内容是否为空,此时s不为空,所以继续执行f(p,t),这是递进。以此类推,s逐渐后移,t逐渐前移,直到s指向g所在单元后面那个单元,程序不再递进,开始返回。最后...

相似回答