永发信息网

C语言编程 求一个程序

答案:2  悬赏:80  手机版
解决时间 2021-05-08 18:55

(求一个程序)编写程序:输入一个正整数n(0<=n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“yes”同时输出此矩阵,否则,输出“no”,(上三角矩阵即主对角线以下的元素都为0)

最佳答案

这个是我写的,看看能不能帮到你的忙。


#include<stdio.h>
#define sz 10
int main()
{
int n,i,j,a[sz][sz],flag;
printf("input n: ");
scanf("%d",&n);
printf("input a[][]: \n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]==0)
flag=1;
else
{flag=0;break;}
if(flag==1)
{
printf("yes!\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
else
printf("no!\n");
return 0;


}

全部回答

给你一个我自己写的矩阵运算函数,你自己看看吧,修改一下,提出你所需要的东西就好了

这种思路,希望能帮到你!

// matrix.h

class matrix { double ma[100][100]; int row; int column; public: void set_matrix(); //初始化矩阵 friend matrix operator +(matrix &a,matrix &b); //重载“+”矩阵运算 void display(); //打印矩阵 friend matrix operator *(matrix &a,matrix &b); //重载“*”矩阵运算 friend matrix operator *(int a,matrix &b); //矩阵的数乘运算 void shangsanjiao(); //判断是否是上三角矩阵 };

//matrix.cpp

#include"matrix.h" #include<iostream> using namespace std;

void matrix::set_matrix() { cout<<"行数:"; cin>>row; cout<<"列数:"; cin>>column; cout<<"请输入"<<row*column<<"个数据:"; int cnt=0; for(int i=0;i<row;i++) for(int j=0;j<column;j++) { cin>>ma[i][j]; cnt++; if(cnt!=row*column) cout<<"你还需要输入"<<(row*column-cnt)<<"个数据:"; }

}

matrix operator +(matrix &a,matrix &b) { matrix c; if(a.row!=b.row||a.column!=b.column) cout<<"不是同型矩阵,无法相加!"<<endl; else c.row=a.row;c.column=a.column; for(int i=0;i<c.row;i++) for(int j=0;j<c.column;j++) c.ma[i][j]=a.ma[i][j]+b.ma[i][j]; return c; }

void matrix::display() { for(int i=0;i<row;i++) { for(int j=0;j<column;j++) cout<<ma[i][j]<<" "; cout<<endl; } }

matrix operator *(matrix &a,matrix &b) { matrix c; if(b.row==a.column) { c.row=a.row; c.column=b.column; for(int i=0;i<c.row;i++) { for(int j=0;j<c.column;j++) { int temp=0; for(int s=0,t=0;s<a.column&&t<b.row;s++,t++) temp+=a.ma[i][s]*b.ma[t][j]; c.ma[i][j]=temp; } } } else cout<<"无法相乘!"<<endl; return c; }

matrix operator *(int a,matrix &b) { matrix c; c.row=b.row;c.column=b.column; for(int i=0;i<c.row;i++) for(int j=0;j<c.column;j++) c.ma[i][j]=a*b.ma[i][j]; return c; }

void matrix::shangsanjiao() { if(column==row) { int m=1; for(int i=0;i<row;i++) { m=0; for(int j=i;j<column;j++) if(ma[i][j]!=0) m=1; continue; } if(m==1) cout<<"yes!"; else cout<<"no!"; } }

//main.cpp

int main() { matrix a,b; cout<<"请输入a的";

a.set_matrix(); a.display(); a.shangsanjiao();

a.set_matrix(); return 0; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
“远看是画近看是画其实是画就是画不出来”
川北米粉我想知道这个在什么地方
CSOL里面的魔牌抽奖的东西去哪里领
复仇之矛的所有台词,lol卡莉斯塔(复仇之矛)
联想和康佳那个牌的手机好 一千左右的 是否都
我们长跑对我们有啥好处?
已知:AB=CD,AE=DE,BE=CE,求证:AD平行BC
电脑删除文件问题大家帮帮忙
天下2奕剑怎么加点?
永恒之塔下载哪个客户端?
仓鼠打过架后还可以在一起生宝宝吗?
不同的角度看问题句子,根据句子的意思写出词
谁能送我个qq爱墙图标种子啊?谢谢了(我的QQ
人为什么会头疼
如何能让更多人知道自己的QQ空间?
推荐资讯
进DNF时出现TP警报码3,100600089,0(重启没效
这是哪里?一直好奇这个问题
怎样去头屑啊
中国石油宝坻为平加油站怎么去啊,有知道地址
年年红饭店地址在哪,我要去那里办事
求个比较好用的游戏手柄
男人每月也和女人一样`也有心烦的那么两天嘛
我订阅的问问日刊从哪可以看到
炫舞东二的舞团哪个比较好
PS2 湾岸3 DUB 版的金手指码
中国电信集团工会武夷山市这个地址在什么地方
求做炫舞自定义戒指“峰”
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?