实验四 二维数组基本操作的编程实现
【实验目的】
二维数组基本操作的编程实现
要求:
二维数组基本操作的编程实现(2学时,验证型),掌握数组的建立、读取数据、压缩存储等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
设计一个可容纳40位数的求n!的程序。设计一个将稀疏数组压缩的程序。
【参考代码】(以下内容,学生任意选择一个完成即可)
(一)基础篇
/设计一个可容纳40位数的计算n!的程序/
/*程序构思: */
/依题意可得知,本程序所运用的数据结构为“数组”,/
/目的为运用数组来弥补整数数据类型有限的使用范围。/
/我们预先声明变量为一个大小为40的数组,负责存储每一个位数的数据,/
/变量Digit为计算位数的变更、变量i,j,r,k为循环中所用的计数变量。/
/首先先将Data数组中的数据做初始值零。再令第一位数值为1,位数也为1。/
/再将每次相乘的乘积存回数组中。/
/并循序处理每个数组中超过10的数,若数值超过10,则将位数加一,/
/原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,/
/再将余数存回原来位数的数组中。最后再输出每次计算后的结果。/
#include <stdio.h>
void main()
{
int Data[100]; /*存储40位数的整数数组*/
int Digit; /*数据位数变量 */
int i,j,r,k; /*循环计数变量 */
int N; /*用户输入值 */
for(i=0;i<100;i++) /*将数组初始值设为0 */
Data[i]=0;
Data[0]=1; /*设第0位数数组为1 */
Data[1]=1; /*设第1位数数组为1 */
Digit=1; /*设数据位数为1 */
printf("请输入一个整数:");
scanf("%d",&N); /*读取用户欲求的N值 */
for(i=1;i<N+1;i++)
{
for(j=1;j<Digit+1;j++)
Data[j]*=i; /*数组中内容的运算*/
for(j=1;j<Digit+1;j++)
{
if(Data[j]>10)
{
for(r=1;r<Digit+1;r++)
{
if(Data[Digit]>=10)
Digit