C语言:数组的应用实验报告
- 格式:doc
- 大小:49.50 KB
- 文档页数:6
课程名称:结构化程序设计与C语言开课实验室:年月日
一、实验目的
用C语言编写和调试数组的程序,包括一维数组和二维数组。从而对数组的程序设计有比较深入的了解。
二、内容及结果
1、程序二选择排序法
1)题目:用选择法对10个整数排序。
2)代码:
#include<>
int main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:\n");
printf("%d",a[i]);
printf("\n");
return 0;
}
3)运行截图:
2、程序二将一个数组中的值按逆序重新存放。
1)题目:将一个数组中的值按逆序重新存放。
2)代码:
# include <>
int main ()
{
int a[5]={8,6,5,4,1};
int i,t;
for(i=0;i<=2;i++)
{
t=a[i];
a[i]=a[4-i];
a[4-i]=t;
}
printf("%d ",a[i]);
return 0;
}
3)运行截图:
3、程序三输出杨辉三角形(10行)
1)题目:输出杨辉三角形(10行)
2)代码:
#include<>
int main()
{
int yh[10][10]={0};
int i,j;
for(i=0;i<10;i++)
yh[i][0]=1;
for(i=1;i<10;i++)
for(j=1;j<10;j++)
yh[i][j]=yh[i-1][j-1]+yh[i-1][j];
for(i=0;i<10;i++)
{
for(j=0;j
printf("%5d",yh[i][j]);
printf("\n");
}
3)运行截图:
4、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。也可能没有鞍点。
1)程序要求:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。也可能没有鞍点。
2)代码:
#include<>
int main()
{
int a[5][5],b[5],c[5],s[5][5],k=0,l=0;
int i,j;
printf("请你输入s[5][5]:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&s[i][j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++,a[i][j]=s[i][j]);
for(i=0,k=0;i<5;i++,k++)
for(j=0;j<4;j++)
if(a[i][j]>=a[i][j+1])
b[k]=a[i][j+1]=a[i][j];
else
b[k]=a[i][j+1];
}
for(j=0,l=0;j<5;j++,l++)
for(i=0;i<4;i++)
{
if(a[i][j]<=a[i+1][j])
c[l]=a[i+1][j]=a[i][j];
else
c[l]=a[i+1][j];
}
for(i=0,k=0;i<5;i++,k++)
for(j=0,l=0;j<5;j++,l++)
if(s[i][j]-b[k]==0)
{
if(s[i][j]-c[l]==0)
printf("s[%d][%d]=%d\n",i,j,s[i][j]);
else
printf("s[%d][%d]=%d不是鞍点\n",i,j,s[i][j]);
}
return 0;
}
3)运行截图:
三、实验结果、分析和结论:
此次试验主要就是对数组的运用,同时也运用了if条件语句以及for循环语句的运用,让以前的知识点得到了复习。通过对数组的运用,我们首先学会的就是如何对一个数组的定义,然后就是数组的作用,我们运用数组对多个数进行排序和两个数的排序。而在数组中我们运用最多、最广的就是二维数组,所以我们掌握二维数组的相关信息,首先就是怎样定义一个二维数组,其次就是怎样引用二维数组中的元素以及对二维数组的初始化。还有一个重要的数组就是字符数组,此次虽未用到,但也是需要我们掌握的,因此只有我们掌握了各种数组的运用,我们才能正确的把它运用到解题中去。