滨州学院实验报告 课程名称:C 语言 程序设计
班级
实验日期
姓名
学号
实验名称
数组的应用 实验目的及要求 1.掌握一维数组、二维数组的定义格式及下标范围。
2.学习利用数组解决简单应用问题。
3.进一步熟悉条件控制和循环控制的编程方法。
4.通过二维数组的应用深入理解二重循环的程序设计方法。
5.掌握字符数组中涉及的字符串函数用法 实验环境
Windows XP
+
VC++6.0 实验内容 使用一维和二维数组解决基本应用,如求最大、最小值,累加求 和,排序,矩阵应用,字符串应用等。
算法描述及实验步骤
(提示:写出你所做实验的程序算法和实验步骤)
按 注意:不能相互抄袭,自己写自己的!否则按 0 分记。
实验过程及实验结果 预习报告写算法设计(可以是流程图,也可以是自然语言描述第一步干什么,第二步干什么…….)
实验报告源代码与测试结果必须有,否则不合格
对程序出现的错误,及调试改正方法进行详细描述
对实验内容中的所有项目给出结果 总结
实验结果是否达到预期目标,是否解决了问题,是否还有疑问。对整个实验有何体会和心得。
C语言实验书P37
(2)#include
int main(void)
{
int i;
char ch;
char str[100];
printf("请输入字符串:n");
scanf("%s", str);
printf("请输入查找字符:n");
scanf(" %c", &ch);
for(i=0;str[i]!=" ";i++)
{
if(str[i] == ch)
{
printf("位置为:%dn", i+1);
return 0;
}
}
printf("该字符不存在n");
return 0;
}
(3)
(1)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n;
printf("nPlease input n of Matrix:n");
scanf("%d",&n);
m=n;
printf("nPlease input elements of Matrix(%d*%d):n",m,n);for(i=0;in
for(j=0;jn
scanf("%ld",&matrix[i][j]);
for(i=0;in
{
for(j=0;jn
printf("%5ld",matrix[i][j]);
printf("n");
}
}
(2)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n,nMax=0,nMin=0;
printf("nPlease input n of Matrix:n");
scanf("%d",&n);
m=n;
printf("nPlease input elements of Matrix(%d*%d):n",m,n);for(i=0;in
for(j=0;jn
scanf("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;in
for(j=0;jn
{
if(matrix[i][j]>max)
{
max=matrix[i][j];
nMax=i;
}
else if(matrix[i][j]n
{
min=matrix[i][j];
nMin=i;
}
}
for(j=0;jn
{
temp=matrix[nMax][j];
matrix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("nResult matrix:n");
for(i=0;in
{
for(j=0;jn
printf("%5ld",matrix[i][j]);
printf("n");
}
}
(3)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n,nMax=0,nMin=0;
printf("nPlease input n of Matrix:n");
scanf("%d",&n);
m=n;
printf("nPlease input elements of Matrix(%d*%d):n",m,n);for(i=0;in
for(j=0;jn
scanf("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;in
for(j=0;jn
{
if(matrix[i][j]>max)
{
max=matrix[i][j];
nMax=i;
}
else if(matrix[i][j]n
{
min=matrix[i][j];
nMin=i;
}
}
for(j=0;jn
{
temp=matrix[nMax][j];
matrix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("nResult matrix:n");
if(nMax!=nMin)
for(i=0;in
{
for(j=0;jn
printf("%5ld",matrix[i][j]);
printf("n");
}
Printf(“same line!n”)
(4)#include
void main()
{
int a[20];
int n,j,i,k,m=20;
printf("给定的数组为:n");
for(n=0;nn
{
a[n]=2*n+3;
printf("%d ",a[n]);
}
printf("n");
printf("输入要查找的数:");
scanf("%d",&j);
for(n=0;nn
{
i=(m+n)/2;
if(a[i]n
n=i+1;
else if(a[i]>j)
m=i-1;
else if(a[i]=j)
{
printf("该数在数组的第%d位上n",i+1);break;
}
if(n>m)
{
printf("No Foundn");
}
}
}
二、#include
void arr();
int sea(int j);
int a[20];
void main()
{
int n,j,i,h;
printf("请输入20个数据:n");
for(n=0;n
scanf("%d",&a[n]);
}
arr();
printf("n请输入要查找的数:");
scanf("%d",&j);
h=sea(j);
if(h==0)
{
printf("No foundn");
}
else
{
printf("该数在已排序数组的第%d位n”,h)}
}
void arr()
{
int z,n,k;
for(n=0;nn
{
for(k=0;kn
if(a[k]>a[k+1])
{
z=a[k];
a[k]=a[k+1];
a[k+1]=z;
}
printf("将数组排序,得:n");
for(n=0;nn
printf("%d ",a[n]);
}
}
int sea(int j)
{
int n,i,h,m=20;
for(n=0;nn
{
i=(n+m)/2;
if(a[i]n
n=i+1;
else if(a[i]>j)
m=i-1;
else if(a[i]=j)
{
h=i+1;break;}}if(n>m)h=0;return h;}