概述
1.判断上三角矩阵。上三角矩阵是指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。输入一个正整数n(1<=n<=6)和n阶矩阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。
#include<stdio.h>
int main()
{
int a[6][6]={0};
int i,j,n,k;
printf("输入正整数n:n");
scanf("%d",&n);
printf("输入矩阵元素:n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]==0) k=1;
if(k==1) printf("YES");
else printf("NO");
}
2.求矩阵各行元素之和。输入两个正整数m和n(1<=m<=6,1<=n<=6),然后输入矩阵a(m行n列)中的元素,分别求出各行元素之和,并输出。
#include<stdio.h>
int main()
{
int a[6][6]={0};
int i,j,n,m;
printf("输入正整数m和n:n");
scanf("%d%d",&m,&n);
printf("输入矩阵元素:n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{int sum=0;
for(j=0;j<n;j++)
sum=sum+a[i][j];
printf("sum=%dn",sum);
}
}
3.找鞍点。鞍点的元素值在该行最大,在该列最小。输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,假设方阵a最多有一个鞍点,如果找到a的鞍点,就输出其下标,否则输出“NO”。
解题思路:
在矩阵中先按照行来找本行的最大值,找到后,固定列值,在最大值的该列找最小值,如果最小值的行值和找的该行相等,则找到了鞍点。
若本行不符合条件,则查找下一行,直到找到鞍点或者遍历完全部行。
#include<stdio.h>
int main()
{
int a[6][6]={0};
int n,i,j,w=0,k,x=0,m,y=0;
int max,min;
printf("输入正整数n:n");
scanf("%d",&n);
printf("输入矩阵元素: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<n;j++) //找到第i行第j列的最大值
{max=a[i][x];
if(a[i][j]>=max)
{max=a[i][j]; //找到后使列下标固定至m
m=j; }
}
for(k=0;k<n;k++) //找到第k行第m列的最小值
{min=a[y][m];
if(a[k][m]<=min)
{min=a[k][m]; //找到后使行下标固定至y
y=k; }
}
if(y==i) //若找到的最小值是最大值所在的行数,有一个则跳出循环
{
w=1;
break;
}
}
if (w==1) printf("a[%d][%d]",y,m); // 输出鞍点的下标值
else printf("NO"); //若遍历n行没有找到符合条件的值,则输出no
}
4.字符串替换。输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。
A-Z,B-Y,C-X····X-C,Y-B,Z-A
解题思路:假设将元素a[i]进行转换,则应为Z-(a[i]-A)。它与A差多少,转换后与Z也差多少。去括号后应为Z-a[i]+A。
#include<stdio.h>
int main()
{
char a[80];
int i;
gets(a);
for(i=0;i<80;i++)
if(a[i]>='A'&&a[i]<='Z')
a[i]='Z'-a[i]+'A';
puts(a);
}
如有错误,请留言指出!
最后
以上就是笑点低短靴为你收集整理的C++ 实验十 数组程序设计(二)的全部内容,希望文章能够帮你解决C++ 实验十 数组程序设计(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复