实验项目:数组
(写实验报告) 本周 5( 21日)实验课交
实验目的,1.掌握一维数组的定义规则
2.正确运用一维数组进行程序设计。
实验内容,程序 (一 )
功能,编程实现用一维数组实现杨辉三角形的打
印。参考程序,
main() 1
{ int a[6],i,j,k; 1 1
a[1]=1; 1 2 1
printf("%5d\n",a[1]); 1 3 3 1
for(i=2;i<6;i++) 1 4 6 4 1
{ a[i]=1; 分析,
for(j=i-1;j>=2;j--) 这是一个 一维数组循环
a[j]=a[j]+a[j-1]; 嵌套的问题。依次给各
for(k=1;k<=i;k++) 元素 赋值,
printf(“%5d”,a[k]); 然后输出元素值
printf("\n");
}
}
首先 a[1]=1,输出 1
当 i=2 时(外层循环第一次)
a[2]=1
j=1 to 2 (递降 j - -)
k=1 to 2 (递增 k++)
输出 1 1
i=3 (外层循环第二次 )
a[3]=1
j=2 to 2 ( j- -)
a[2]=a[2]+a[1] (a[2]=2)
k=1 to 3 (k++)
输出 1 2 1
i=4 (外层循环第三次 )
a[4]=1
j=3 to 2 ( j- -)
a[3]=a[3]+a[2] (a[3]=3)
a[2]=a[2]+a[1] (a[2]=3)
k=1 to 4 (k++)
输出 1 3 3 1
i=5 (外层循环第四次)
a[5]=1
j=4 to 2 (j - - )
a[4]=a[4]+a[3] (a[4]=4)
a[3]=a[3]+a[2] (a[3]=6)
a[2]=a[2]+a[1] (a[2]=4)
k=1 to 5 (k++)
输出 1 4 6 4 1
使用二维数组。
main()
{int j,k,a[6][6]; 1
for(j=1;j<6;j++) 1 1
{a[j][j]=1; a[j][1]=1;} 1 2 1
for(j=3;j<6;j++) 1 3 3 1
for(k=2;k<=j-1;k++) 1 4 6 4 1
a[j][k]=a[j-1][k-1]+a[j-1][k];
for(j=1;j<6;j++)
{for(k=1;k<=j;k++)
printf(“%5d”,a[j][k];
printf(“\n”);
}
}
程序 (二 ) 功能:编程实现用数组打印 Fibonacci数列的前
20项。 参考程序,
#include <stdio.h>
main()
{ int i;
int ____________; /* f[20]={1,1} */
for(i=2;i<20;i++)
_______________; /* f[i]=f[i-2]+f[i-1] */
for(i=0;i<20;i++)
{if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
}
程序 (三 ) 功能,编程实现读 10个整数存入数组,找出其
中最大值和最小值。
问题
1.程序一中语句 for(k=1;k<=i;k++)改成
for(k=1;k<=5;k++),程序的输出结果是什么?
2,完成程序二的空白部分,如何定义数组能实现
数列的打印?
3,独立完成程序三的编程。
(写实验报告) 本周 5( 21日)实验课交
实验目的,1.掌握一维数组的定义规则
2.正确运用一维数组进行程序设计。
实验内容,程序 (一 )
功能,编程实现用一维数组实现杨辉三角形的打
印。参考程序,
main() 1
{ int a[6],i,j,k; 1 1
a[1]=1; 1 2 1
printf("%5d\n",a[1]); 1 3 3 1
for(i=2;i<6;i++) 1 4 6 4 1
{ a[i]=1; 分析,
for(j=i-1;j>=2;j--) 这是一个 一维数组循环
a[j]=a[j]+a[j-1]; 嵌套的问题。依次给各
for(k=1;k<=i;k++) 元素 赋值,
printf(“%5d”,a[k]); 然后输出元素值
printf("\n");
}
}
首先 a[1]=1,输出 1
当 i=2 时(外层循环第一次)
a[2]=1
j=1 to 2 (递降 j - -)
k=1 to 2 (递增 k++)
输出 1 1
i=3 (外层循环第二次 )
a[3]=1
j=2 to 2 ( j- -)
a[2]=a[2]+a[1] (a[2]=2)
k=1 to 3 (k++)
输出 1 2 1
i=4 (外层循环第三次 )
a[4]=1
j=3 to 2 ( j- -)
a[3]=a[3]+a[2] (a[3]=3)
a[2]=a[2]+a[1] (a[2]=3)
k=1 to 4 (k++)
输出 1 3 3 1
i=5 (外层循环第四次)
a[5]=1
j=4 to 2 (j - - )
a[4]=a[4]+a[3] (a[4]=4)
a[3]=a[3]+a[2] (a[3]=6)
a[2]=a[2]+a[1] (a[2]=4)
k=1 to 5 (k++)
输出 1 4 6 4 1
使用二维数组。
main()
{int j,k,a[6][6]; 1
for(j=1;j<6;j++) 1 1
{a[j][j]=1; a[j][1]=1;} 1 2 1
for(j=3;j<6;j++) 1 3 3 1
for(k=2;k<=j-1;k++) 1 4 6 4 1
a[j][k]=a[j-1][k-1]+a[j-1][k];
for(j=1;j<6;j++)
{for(k=1;k<=j;k++)
printf(“%5d”,a[j][k];
printf(“\n”);
}
}
程序 (二 ) 功能:编程实现用数组打印 Fibonacci数列的前
20项。 参考程序,
#include <stdio.h>
main()
{ int i;
int ____________; /* f[20]={1,1} */
for(i=2;i<20;i++)
_______________; /* f[i]=f[i-2]+f[i-1] */
for(i=0;i<20;i++)
{if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
}
程序 (三 ) 功能,编程实现读 10个整数存入数组,找出其
中最大值和最小值。
问题
1.程序一中语句 for(k=1;k<=i;k++)改成
for(k=1;k<=5;k++),程序的输出结果是什么?
2,完成程序二的空白部分,如何定义数组能实现
数列的打印?
3,独立完成程序三的编程。