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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
6([目的]运用所学知识解决矩阵问题。
[题目内容]设有一个5×5方阵~编程序~判断该方阵是否为对称矩阵。并输出
判断结果。
[输入] 5×5方阵
[输出] 判断结果
[提示] 如果矩阵中的每个元素都满足array[i][j]=array[j][i]~则称这个矩阵为对称
矩阵。
#include <stdio.h>
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([目的]运用所学知识解决矩阵问题。
[输入]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");
{
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<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;
出a数组。
[输入]无
[输出]
1 2 3 4
5 6 7 8
9 10 11 12
[提示] 利用二重for循环结构与printf()。 #include <stdio.h> void main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int i,j;
int i,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]);
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("所求数组:\n");
for(i=0;i<20;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
9([目的] 运用所学知识解决实际问题。 [题目内容] 编写程序~生成并输出杨辉三角形,10行,。 [输入] 无
[输出] 杨辉三角形
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列的二维矩阵~并输出。
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");
}
}
7([目的] 运用所学知识解决实际问பைடு நூலகம்。
[题目内容] 如下数据表显示了4个销售人员所售的3种物品的数量。
物品1 物品2 物品3 销售人员1 310 275 365
销售人员2 210 190 325
销售人员3 405 235 240
销售人员4 260 300 380
请使用二维数组编写程序~计算并显示以下信息: ,1,每个销售人员的销售总值
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]<max) flag=1;
else flag=0;
if(flag==0) printf("鞍点是:a[%d][%d]=%d\n",i,k,a[i][k]);
printf("二维数组:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
2([目的]掌握二维数组的输入、输出方法。 [题目内容]已知有一个3行2列的二维数组: 89 76
67 98
54 78
编程序~从键盘输入数据存储在二维数组中~并以3行2列的形式输出。
printf("%4d",a[i][j]);
printf("\n");
}
}
8([目的] 运用所学知识解决实际问题。
设某班有20个学生~每个学生选修了三门课~编写程序~输入20[题目内容]
个学生三门课的成绩~计算每个学生的平均成绩~最后输出每个学生三门课的成
绩及平均成绩。
[输入] 20个学生三门课的成绩
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()
C语言 实验五、数组程序设计解答
实验五 数组应用,二, 一、实验目的
1(掌握二维数组的定义和初始化。
2(掌握二维数组元素的引用及其应用。
3(掌握字符数组的定义和初始化。
4(掌握字符数组元素的引用及其应用。 二、实验内容
1([目的]掌握二维数组的输出方法。
[题目内容]已知有二维数组a的定义:int
a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序~以三行四列的形式输
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++)
}
}
4([目的]运用所学知识解决矩阵转置问题。
×2矩阵~编程序~将a矩阵转置~生成矩阵b,2×3,~[题目内容]设a矩阵是3
并输出。
[输入]a矩阵
[输出]b矩阵
[提示]利用不同矩阵行列下标的关系。,b=a, iiji#include <stdio.h> void main()
{
int a[3][2],b[2][3];
程序~将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矩阵
[提示]
int i,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++)
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;
printf("原数组:\n");
for(i=0;i<20;i++)
{
for(j=0;j<3;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<20;i++)
{
a[i][3]=0;
for(j=0;j<3;j++)
a[i][3]=a[i][3]+a[i][j];
{
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[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
[提示] 初值:int a[10][10]={{1},{1,1}}
#include <stdio.h> void main()
{
int a[10][10]={{1},{1,1}};
int i,j;
for(i=2;i<10;i++)
{
a[0][i]=1;a[i][i]=1;
for(j=0;j<10;j++)
,2,每种物品的销售总值
,3,所有销售人员销售的全部物品的总值
[输入] 销售数据表数据
[输出] 计算结果
[提示] 建立一个5×4的二维数组
#include <stdio.h>
void main()
{
int a[5][4];
int i,j;
printf("请输入4*3数组:\n");
for(i=0;i<4;i++)
[输出] 每个学生三门课的成绩及平均成绩 [提示] 建立一个20×4的二维数组
#include <stdio.h> void main()
{
int a[20][4];
int i,j;
printf("请输入20*3数组:\n");
for(i=0;i<20;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
[题目内容] 设有一个3行5列的二维数组~编写程序从键盘输入数据~建立这
个二维数组~并找出二维数组中的鞍点。
[输入] 3×5矩阵
[输出] 鞍点
[提示]鞍点是指在行上是最大但是所在列最小的元素,这样的元素可能不存在,。
#include <stdio.h>
void main()
{
int a[3][5];
相关文档
最新文档