编写程序,输入两个正整数m和n,然后输入m行n列矩阵a中的元素,分别求出各行元素之和,并输出。
下图是我的程序,但是运行结果错误,帮我改正或者从新编写一个程序
大神,你帮我看一下我发布的其他有关于c的问题吧!我已经发布出去了的!
求cosx,精度为e,运行结果错误
追答z那的阶乘可以再另外调用一个函数! 不然n的值大于2之后就不是阶乘了!例如n=5那变量z的值就是z=z*5*4而这里要求的是,1*2*3*4*5
定义了,在第八行
追答错了,把数组a的定义放在最前面试一试。
追问这个前后不关紧要吧
追答还有第一个scanf中,改为&a[i][j]
如果你学的是纯C语言,不允许在代码中间定义,定义语句需要放在最前面。
如果是C++兼容性C语言,那就不用关心定义在哪里,用之前定义就可以了。
追问应该是第二个scanf语句改写为&j&i吧?
追答错了,是第二个scanf中
是第二个scanf中改为&a[i][j]
追问输出那里有点问题
追答倒数第二个}放在printf之前
追问不对,这样就只能输出一行了
追答那你要怎样输出?
在倒数第一个for前加一句s=0;
追问我先输入2 2
然后输入4个数
1 2
3 4
输出s=3
s=7
原来倒数第二个}位置不变
原来倒数第二个}位置不变, 在倒数第一个for前加一句s=0;
追问谢谢,成功了,我忘记刷新s值了!那你顺便看一下我发布的其他有关c的问题吧!
追答手机上不容易找到你发的其他的题。
追问点开我头像可以看到不?
追答别人点开你的头像看不到你的提问的,只能看到你的回答跟采纳。
追问这是我编写求cosx的程序,但是结果错误
追答你的e、x是作为什么用,还有你想用什么方式实现这个函数的功能,说一说原理,我数学上的东西不是很懂。?
追问嗯,while语句终止条件我那里我错了。。。
追答你等一下,我帮你看看。
#include
#include
#include
double funcos(double e, double x)
{
int i, j=0, k=0,count=0;
long int sum;
double s=0, n=1;
while (fabs(x)>3.141592)
{
x=fabs(x)-3.141592;
count++;
}
while (fabs(n)>e)
{
sum=1;
if(j==0)
{
sum=1;
}
else
{
for (i=1; i<=j; i++)
{
sum=sum*i;
}
}
if (sum<0)
{
if (count%2!=0)
{
s=s*-1;
}
break;
}
n=pow(x, j)/sum;
n=n*pow(-1, k++);
s+=n;
j+=2;
}
return s;
}
int main(int argc, char *argv[])
{
double e, x, s;
scanf("%lf%lf", &e, &x);
s=funcos(e, x);
printf("cos%lf=%lf\n", x, s);
printf("%lf\n", cos(x));
return 0;
}
#include可以不要么,我们没有学,还有就是,那个while(fab(x)-3.1415926) x=fab(x)3.1415926是什么意思,以及主函数main括弧里面的可以略去么,我们学了的只是main(void)
追答那个stdlib头文件可以不要,我之前写的的时候为了暂停加上的,主函数括弧里面的东西都可以去掉,void也可以不要的
那个while是为了控制输入的数据转变成3.14之内的数。
追问控制在3.14的那句也可以不要么?
追答那句不要的话会进入死循环,你可以自己测试一下。
本回答被提问者采纳