| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 509 人关注过本帖
标题:求助:求方程和求转置的两个函数出现了问题
只看楼主 加入收藏
荣荣biu
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2013-6-3
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:7 
求助:求方程和求转置的两个函数出现了问题
两个很小的小程序就是运行老出错,不晓得哪里出错误了啊:
1、求方程 的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。  

#include"stdio.h"  
#include"math.h"

float x2,y;  

float root1(float m,float n,float k)  
{
float x1;
x1=(-n+sqrt(k))/(2*m);  
x2=(-n-sqrt(k))/(2*m);  
return x1;
}  

float root2(float m,float n)  
{float x;  
x=-n/(2*m);  
return x;
}  

float root3(float m,float n,float k)  
{float x0;
x0=-n/(2*m);  
y=sqrt(-k)/(2*m);  
return x0;
}
 
main()  
{float a,b,c,q,x,x1;
 
printf("input a b c is ");  
scanf("%f,%f,%f",&a,&b,&c);  
printf("\n");  

q=b*b-4.0*a*c;  printf("q=%f\n",q);

if(q>0)
 { x1=root1(a,b,q); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2);  }

else if(q==0)  
{x=root2(a,b);  printf("denggen is x=%.3f\n",x); }

else {x=root3(a,b,q); printf("two xugen is x1=%.3f+%.3fi and x2=%.3f-%.3fi\n",x,y,x,y); }
}  

2.写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
#include<stdio.h>

 
main()  
{
int zuan(int s[3][3]);  
     
int a[3][3],b[3][3];int i,j;  

for(i=0;i<3;i++)  
for(j=0;j<3;j++)  
scanf("%d",&a[i][j]);

for(i=0;i<3;i++)  
{for(j=0;j<3;j++)  
printf(" %d",a[i][j]);
printf("\n"); }

b[3][3]=zuan(a[3][3]);  

for(i=0;i<3;i++)  
{for(j=0;j<3;j++)  
printf("%d",b[i][j]);  
printf("\n"); }
}


int zuan(int s[3][3])   
{int i,j;int t[3][3];
for(i=0;i<3;i++)  
for(j=0;j<3;j++)  
t[j][i]=s[i][j];
return t[3][3];
}
搜索更多相关主题的帖子: include return 
2013-07-15 12:03
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:2 
算法有点复杂,代码有点长,看得有点晕,请问楼主运行提示哪里出错,能发个截图吗

思考赐予新生,时间在于定义
2013-07-15 12:12
荣荣biu
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2013-6-3
收藏
得分:0 
回复 2楼 love云彩
第一个我自己有认真写了下,已经出来正确答案了,但是第二个还是不行
#include<stdio.h>

void main()
{
int transpose(int s[3][3]);//函数声明
int a[3][3],b[3][3],i,j;
for(i=0;i<3;i++)
  for(j=0;j<3;j++)
      scanf("%d",&a[i][j]);//输入矩阵

for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
  printf("%d",a[i][j]);
printf("\n"); }           //输出矩阵

 b[3][3]=transpose(a[3][3]);//矩阵转置

for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
  printf("%d",b[i][j]);
printf("\n"); }           //输出转置矩阵

}

int transpose(int s[3][3])
{
int t[3][3],m,n;
for(m=0;m<3;m++)
  for(n=0;n<3;n++)
      t[m][n]=s[n][m];
  return t[3][3];
}

编译时提示

F:\cshiyan\第八章\84\84.c(16) : warning C4047: 'function' : 'int (*)[3]' differs in levels of indirection from 'int '
F:\cshiyan\第八章\84\84.c(16) : warning C4024: 'transpose' : different types for formal and actual parameter 1


输出结果是不能转置矩阵出现乱码
2013-07-15 15:20
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:2 
一元二次方程 用这么复杂?

这个怎么玩
2013-07-15 15:44
荣荣biu
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2013-6-3
收藏
得分:0 
回复 4楼 丶弱水彡千
呃,是不用,刚开始思路不清晰。帮看看第二个转置哪儿错了呗
2013-07-15 16:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
行列转置的函数不需要返回值  直接在传入的数组中变换即可

DO IT YOURSELF !
2013-07-15 16:26
荣荣biu
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2013-6-3
收藏
得分:0 
回复 6楼 wp231957
给修改一下呗
2013-07-15 16:33
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
我已经帮楼主修改了转换行列的代码,不懂再问:
程序代码:
#include<stdio.h>
int b[3][3];//定义一个全局数组,因为在transpose函数体内要用到
void main()
{
void  transpose(int s[3][3]);//函数声明
int a[3][3],i,j;
printf("请输入9个数字:\n");
for(i=0;i<3;i++)
  for(j=0;j<3;j++)
      scanf("%d",&a[i][j]);//输入矩阵
printf("您输入的数字如下:\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
  printf("%d",a[i][j]);
printf("\n");

 }           //输出矩阵
printf("转换行列之后的数组元素如下:\n");
transpose(a);
}

void transpose(int s[3][3])
{
int m,n;
for(m=0;m<3;m++)
  for(n=0;n<3;n++)
  {
      b[n][m]=s[m][n];
   

  }

  for(m=0;m<3;m++)
  {     for(n=0;n<3;n++)
      printf("%d",b[m][n]);
      printf("\n");
  }
}


思考赐予新生,时间在于定义
2013-07-15 16:34
快速回复:求助:求方程和求转置的两个函数出现了问题
数据加载中...
 
   



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

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