C语言实验七(数组)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨理工大学实验报告

学院系部课程名称结构化程序设计(C)

姓名E-mail 指导教师李胜利联系方式班级学号

实验顺次07 实验名称数组

实验目的1.掌握一维数组的定义、初始化和输入输出方法。

2.掌握一维数组在编程中的使用。

3.掌握二维数组的定义、初始化和输入输出方法。

4.掌握二维数组在编程中的应用。

实验内容1.一个数组有10个整数,用键盘人艺术出个数组元素的值,寻找该

数组元素的最大值并将其与数组的第一个元素交换。

2.计算数组中10个正整数元素的而平均值,把大于平均值的数放到

另一个数组中,并输出后一个数组的元素。

3.输入8个数列到一个数组中,然后按降序对数组元素排序,再输

入一个数,查找该数是否属于该数组,若属于,则输出该数在数组的位置;若不属于,则输出“未找到“。

4.求任意的一个3行3列二维数组对应的矩阵的正对角线元素的和

以及反对角线元素的和。

5.将一个5行5列二维数组的右上部门元素置0。

解题思路、算法描述或实验步骤1.利用for循环中的scanf函数对数组进行动态赋值,首先假设最

大值max=a[0],在接下来的循环中对每个a[i]与max的值比较,确定最大值的下标。利用临时变量t,实现语句(t=a[i];a[i]=a[0];a[0]=t;)完成交换。最终利用循环输出数组即可。

2.定义完数组之后,定义sum=0,j=0。首先利用for循环中加入scanf

函数完成对数组的动态赋值。其次利用循环完成对10个元素的求和,求出其平均数。在接下来的循环中利用if语句判断数组中元素和平均值的比较,若比平均值大,则将此元素复制到另一数组中(此时利用y[j]=x[i]完成,每次成立后j++)。最终利用for 循环输出数组y。

3.首先利用循环中的scanf函数对数组进行动态赋值,利用冒泡法

进行排序(冒泡法需要进行双层循环,外层循环控制趟数,内层循环控制元素比较次数),然后利用for循环输出降序后的数组。

利用for循环中的if语句判断数组中是否有x,若有则输出i的值,若没有则打印“未找到”。

4.首先,使用循环嵌套动态输入二维数组后。再使用循环嵌套输出

数组,正对角线满足的条件为i==j,反对角线满足的条件为i+j=2,最后输出即可。

5.首先,使用双层循环对数组b进行赋值,赋值过程中当符合i>j

条件的元素直接将a数组的值赋值给b数组,不符合条件的b数组元素为0。最终循环输出数组b即可。

实验结果1.

#include

int main()

{

int a[10],i,t,x,max;

for(i=0;i<10;i++)

{

printf("a[%d] = ",i); scanf("%d",&a[i]);

}

max=a[0];

for(i=0;i<10;i++)

{

if(a[i]>max)

{

max = a[i];

x = i;

}

}

t = a[x];

a[x] = a[0];

a[0] = t;

for(i=0;i<10;i++)

{

printf("%d ",a[i]); }

printf("\n");

return 0;

}

2.

#include

int main()

{

int x[10], y[10] = {0}, sum = 0; int i,j=0;

double average;

for(i=0;i<10;i++)

{

printf("x[%d] = ",i);

scanf("%d",&x[i]);

}

for(i=0;i<10;i++)

{

sum = sum + x[i];

}

average = sum /10;

for(i=0;i<10;i++)

{

if(x[i] > average)

{

y[j] = x[i];

j++;

}

}

for(i=0;i

{

printf("%d ",y[i]);

}

printf("\n");

return 0;

}

3.

#include

int main()

{

int a[8],x,i,j,temp;

for(i=0;i<8;i++)

{

printf("a[%d] = ",i);

scanf("%d",&a[i]);

}

for(i=0;i<7;i++)

{

for(j=0;j<7-i;j++)

{

if(a[j]

{

temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; }

}

}

for(i=0;i<8;i++)

{

printf("%d ",a[i]);

}

scanf("%d",&x);

for(i=0;i<8;i++)

{

if(x==a[i])

相关文档
最新文档