实验五 -数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五数组
一、实验目的
1.掌握一维数组与二维数组的定义、赋值及输入输出方法。2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法。
二、实验要求
1.熟悉环境;
2.按照编程风格要求正确写源程序
3.能得到正确的程序运行结果
4.本实验要求写实验报告。
三、主要仪器及耗材
计算机及软件
四、基础实验
1. 输入以下程序,查看输出结果。
#include <>
void main()
{
int i,k=5,a[10],p[3];
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k=k+p[i]*2;
printf(“%d\n”,k);
}
输出:21
2. 输入以下程序,查看输出结果。#include <>
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("矩阵a为:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("矩阵b为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
输出:矩阵a为:
1 2 3
4 5 6
矩阵b为:
1 2
2 5
3 6
程序功能:输出一个二行三阶矩阵和一个三阶二行矩阵
3. 程序改错
设有4x4的方阵,其中的元素由键盘输入,求出主对角线上元素之和。
1 #include<>
2 void main()
3 {
4 int a[4][4];
5 int i,j,sum;
6 printf("please input the numbers:");
7 for(i=0;i<=4;i++)
8 for(j=0;j<=4;j++)
9 scanf("%d",&a[i][j]);
10 for(i=1;i<4;i++)
11 {for(j=1;j<4;j++)
12 printf("%d",&a[i][j]);
13 printf(“\n”);
14 }
15 printf("\n");
16 for(i=0;i<4;i++)
17 for(j=0;j<4;j++)
18 if(i=j) sum=sum+a[i][j];
19 printf("sum=%d\n",sum);
20 }
(1)请填写出错情况:
(2)修改后的程序及运行结果:
#include <>
void main()
{
int a[4][4];
int i,j,sum=0;
printf("please input the numbers:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==j) sum=sum+a[i][j];
printf("sum=%d\n",sum);
}
输出: please input the number:48 79 48 16 47 49 28 49 78 49 13 15 16 17 19 17
48 79 48 16
47 49 28 49
78 49 13 15
16 17 19 17
sum=127
4.编程。设有3x3的方阵,对其中的元素值进行初始化,求出方阵中最大的元素。输出示例:
#include<>
void main()
{
int a[3][3],i,j,max=0;
printf("input the numbers:");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(a[i][j]>max) max=a[i][j]; }
printf("max=%d\n",max);
}