当前位置:文档之家› C语言实验五、数组程序设计解答

C语言实验五、数组程序设计解答

程序~将a矩阵×b矩阵生成c矩阵,3×3,~并输出。 [输入]a矩阵、b矩阵
[输出] c矩阵
2
c,a,b,ijikkj[提示]计算公式:
,1k
#include <stdio.h>
void main()
{
int a[3][2],b[2][3],c[3][3]={0};
int i,j,k;
printf("请输入a数组:\n");
,2, 右下三角为-1
,3, 从右到左的对角线为0
[输入] 无
[输出] 要求填充的5×5矩阵
[提示]
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%4d",b[i][j]);
printf("\n");
}
printf("c数组:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%4d",c[i][j]);
printf("\n");
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
[输入]无
[输出]
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
[提示]利用for循环结构~生成原则:行下标与列下标相同的数组元素为1~其
余为0。%4d格式输出。
#include <stdio.h> void main()
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
printf("请输入b数组:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("a数组:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
if(flag==0) printf("是对称矩阵。\n");
else printf("不是对称矩阵。\n");
}
6([目的]运用所学知识解决矩阵问题。
void main()
{
int a[5][5];
int i,j,flag=0;
\n"); printf("请输入5*5数组:
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(a[i][j]!=a[j][i]) flag=1;
[输入]89~76~67~98~54~78
[输出]
89 76
67 98
54 78
[提示] 利用二重for循环结构与scanf()、printf()及%4d格式输出。
#include <stdio.h>
void main()
{
int a[3][2];
int i,j;
printf("请输入3行2列二维数组:\n");
}
}
6([目的]运用所学知识解决矩阵问题。
[题目内容]设有一个5×5方阵~编程序~判断该方阵是否为对称矩阵。并输出
判断结果。
[输入] 5×5方阵
[输出] 判断结果
[提示] 如果矩阵中的每个元素都满足array[i][j]=array[j][i]~则称这个矩阵为对称
矩阵。
#include <stdio.h>
{
int a[5][5];
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j) a[i][j]=1;
else a[i][j]=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
{
for(j=0;j<2;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("b数组:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%4d",b[i][j]);
printf("\n");
}
}
5([目的]运用所学知识解决矩阵相乘问题。 [题目内容]设a矩阵是3×2矩阵~b矩阵是2×3矩阵~满足矩阵相乘条件~编
[题目内容] 设有一个3行5列的二维数组~编写程序从键盘输入数据~建立这
个二维数组~并找出二维数组中的鞍点。
[输入] 3×5矩阵
[输出] 鞍点
[提示]鞍点是指在行上是最大但是所在列最小的元素,这样的元素可能不存在,。
#include <stdio.h>
void main()
{
int a[3][5];
for(k=0;k<2;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
\n"); printf("a数组:
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("b数组:\n");
for(i=0;i<4;i++)
a[4][j]=a[4][j]+a[i][j];
}
for(i=0;i<5;i++)
{
a[i][3]=0;
for(j=0;j<3;j++)
a[i][3]=a[i][3]+a[i][j];
}
printf("所求数组:\n");
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
}
printf("所求数组:\n");
for(i=0;i<20;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
9([目的] 运用所学知识解决实际问题。 [题目内容] 编写程序~生成并输出杨辉三角形,10行,。 [输入] 无
[输出] 杨辉三角形
printf("原数组:\n");
for(i=0;i<20;i++)
{
for(j=0;j<3;j++)
printf("%4d",a[i][j]);
printf("\n");
}forBiblioteka i=0;i<20;i++)
{
a[i][3]=0;
for(j=0;j<3;j++)
a[i][3]=a[i][3]+a[i][j];
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
printf("所求:\n");
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
10([目的] 运用所学知识解决实际问题。 [题目内容] 编写程序~按要求填充5×5矩阵~并输出。 ,1, 左上三角为+1
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
相关主题