C语言实验五数组程序设计解答.docx
- 文档编号:1596052
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:21
- 大小:18.71KB
C语言实验五数组程序设计解答.docx
《C语言实验五数组程序设计解答.docx》由会员分享,可在线阅读,更多相关《C语言实验五数组程序设计解答.docx(21页珍藏版)》请在冰豆网上搜索。
C语言实验五数组程序设计解答
C语言实验五、数组程序设计解答
实验五数组应用,二,一、实验目的
1(掌握二维数组的定义和初始化。
2(掌握二维数组元素的引用及其应用。
3(掌握字符数组的定义和初始化。
4(掌握字符数组元素的引用及其应用。
二、实验容
1([目的]掌握二维数组的输出方法。
[题目容]已知有二维数组a的定义:
int
a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序~以三行四列的形式输
出a数组。
[输入]无
[输出]
1234
5678
9101112
[提示]利用二重for循环结构与printf()。
#include
{
inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
inti,j;
printf("二维数组:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
2([目的]掌握二维数组的输入、输出方法。
[题目容]已知有一个3行2列的二维数组:
8976
6798
5478
编程序~从键盘输入数据存储在二维数组中~并以3行2列的形式输出。
[输入]89~76~67~98~54~78
[输出]
8976
6798
5478
[提示]利用二重for循环结构与scanf()、printf()及%4d格式输出。
#include
voidmain()
{
inta[3][2];
inti,j;
printf("请输入3行2列二维数组:
\n");
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++)
printf("%4d",a[i][j]);
printf("\n");
}
}
3([目的]掌握二维数组的输入、输出、处理方法。
[题目容]编程序~生成一个5行5列的二维矩阵~并输出。
10000
01000
00100
00010
00001
[输入]无
[输出]
10000
01000
00100
00010
00001
[提示]利用for循环结构~生成原则:
行下标与列下标相同的数组元素为1~其
余为0。
%4d格式输出。
#include
{
inta[5][5];
inti,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j)a[i][j]=1;
elsea[i][j]=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
4([目的]运用所学知识解决矩阵转置问题。
×2矩阵~编程序~将a矩阵转置~生成矩阵b,2×3,~[题目容]设a矩阵是3
并输出。
[输入]a矩阵
[输出]b矩阵
[提示]利用不同矩阵行列下标的关系。
b=a,iiji#include
{
inta[3][2],b[2][3];
inti,j;
printf("请输入a数组:
\n");
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++)
b[j][i]=a[i][j];
printf("a数组:
\n");
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<2;i++)
{
for(j=0;j<3;j++)
printf("%4d",b[i][j]);
printf("\n");
}
}
5([目的]运用所学知识解决矩阵相乘问题。
[题目容]设a矩阵是3×2矩阵~b矩阵是2×3矩阵~满足矩阵相乘条件~编
程序~将a矩阵×b矩阵生成c矩阵,3×3,~并输出。
[输入]a矩阵、b矩阵
[输出]c矩阵
2
c,a,b,ijikkj[提示]计算公式:
1k
#include
voidmain()
{
inta[3][2],b[2][3],c[3][3]={0};
inti,j,k;
printf("请输入a数组:
\n");
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++)
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<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");
}
}
6([目的]运用所学知识解决矩阵问题。
[题目容]设有一个5×5方阵~编程序~判断该方阵是否为对称矩阵。
并输出
判断结果。
[输入]5×5方阵
[输出]判断结果
[提示]如果矩阵中的每个元素都满足array[i][j]=array[j][i]~则称这个矩阵为对称
矩阵。
#include
voidmain()
{
inta[5][5];
inti,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;
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");
elseprintf("不是对称矩阵。
\n");
}
6([目的]运用所学知识解决矩阵问题。
[题目容]设有一个3行5列的二维数组~编写程序从键盘输入数据~建立这
个二维数组~并找出二维数组中的鞍点。
[输入]3×5矩阵
[输出]鞍点
[提示]鞍点是指在行上是最大但是所在列最小的元素,这样的元素可能不存在,。
#include
voidmain()
{
inta[3][5];
inti,j,k,m,max,flag;
printf("请输入3*5数组:
\n");
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
printf("a数组:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
{
max=a[i][0];
for(j=0;j<5;j++)
if(a[i][j]>max){max=a[i][j];k=j;}
for(m=0;m<3;m++)
if(a[m][k] elseflag=0; if(flag==0)printf("鞍点是: a[%d][%d]=%d\n",i,k,a[i][k]); } } 7([目的]运用所学知识解决实际问题。 [题目容]如下数据表显示了4个销售人员所售的3种物品的数量。 物品1物品2物品3销售人员1310275365 销售人员2210190325 销售人员3405235240 销售人员4260300380 请使用二维数组编写程序~计算并显示以下信息: 1,每个销售人员的销售总值 2,每种物品的销售总值 3,所有销售人员销售的全部物品的总值 [输入]销售数据表数据 [输出]计算结果 [提示]建立一个5×4的二维数组 #include voidmain() { inta[5][4]; inti,j; printf("请输入4*3数组: \n"); for(i=0;i<4;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("原数组: \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } for(j=0;j<3;j++) { a[4][j]=0; 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("%4d",a[i][j]); printf("\n"); } } 8([目的]运用所学知识解决实际问题。 设某班有20个学生~每个学生选修了三门课~编写程序~输入20[题目容] 个学生三门课的成绩~计算每个学生的平均成绩~最后输出每个学生三门课的成 绩及平均成绩。 [输入]20个学生三门课的成绩 [输出]每个学生三门课的成绩及平均成绩[提示]建立一个20×4的二维数组 #in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 数组 程序设计 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)