c语言数组构成正方体,设计基础-c语言-第四章数组--科学出版社.doc

这篇博客涵盖了C语言的基础编程练习,包括实现一维数组的逆序存储、Fibonacci数列的前20项生成,以及在有序数组中查找和插入元素的算法。示例代码详细展示了如何操作数组以达到预期效果,同时也包含了输出格式的优化处理。
摘要由CSDN通过智能技术生成

程序设计基础-c语言-

第四章数组-教材习题及其答案

编程将一个一维数组的值按逆序重新存放

#include

void main()

{

int i_data[10];

int m,i_temp;

printf("给定10个数,用空格分隔:");

scanf("%d %d %d %d %d %d %d %d %d %d",&i_data[0],&i_data[1],&i_data[2],&i_data[3],&i_data[4],&i_data[5],&i_data[6],&i_data[7],&i_data[8],&i_data[9]);

for(m=1;m<=10/2;m++) //有意写成10/2 已解决任意一维数组的逆序问题,为什么此处用m=1;m<=10/2,而不能m=0;m<10/2

{i_temp=i_data[m-1];//下面三条语句是典型的两数交换的方法

i_data[m-1]=i_data[10-m];

i_data[10-m]=i_temp;

}

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

{printf("%d ",i_data[m]);

}

printf("\n");

}

2.0 编程求Fibonacci数列的前二十项。FIBONACCI数列的定义 F0=0,F1=1,Fn=Fn-1+Fn-2

#include

void main()

{

int F[20];

int m,n,i_blanknum;

for(m=0;m<20;m++)

{switch(m)

{case 0:F[0]=0;

break;

case 1:F[1]=1;

break;

default: F[m]=F[m-1]+F[m-2];

}

}

printf("Fibonacci数列的前20项是:\n");

for(m=0;m<20;m++)

{printf("%d ",F[m]);

}

printf("\n");

//下面输出项,这是我加的效果

for(m=0;m<20;m++)

{printf("%d",m+1); //输出项的编号

//计算该项数据占几位

i_blanknum=1;//每个数据间占一个空格

n=F[m];

do

{i_blanknum=i_blanknum+1;

n=n/10;

}while(n!=0);

//减去该项编号数据占的位数

n=m+1;

do

{i_blanknum=i_blanknum-1;

n=n/10;

}while(n!=0);

//输出空格

while(i_blanknum>0)

{printf(" ");

i_blanknum--;

}

}

printf("\n");

}

在一个从小到大排列的数组中查找X,若x存在就将其测出,若不存在将其添加。使修改后的数组仍然有序,并输出到屏幕上啊

#include

#define Yes 1 //Yes说明x在数组中

#define No 0 //No说明x不在数组中

void main()

{

int i_data[10]={10,20,30,40,50,60,70,80,90};

int x,i,j;

int YN;//记录x是否在数组中

int Total=9;//数组元素实际个数

printf("请输入一个数:");

scanf("%d",&x);

YN=No;//假定不在数组中

//第1种情况:进行x在数组中查找和删除操作,要考虑数组中有多个x的值

i=0;

while(i

{if(x==i_data[i])

{YN=Yes;

for(j=i;j

{i_data[j]=i_data[j+1];

}

Total--;

}

else

{i++;

}

}

//第1中情况操作完成

if(YN==No) //说明第1种情况不存在,应进行第2种情况操作,即增加

{for(i=0;i

{if(x

{for(j=Total;j>i;j--)

{i_data[j]=i_data[j-1];

}

i_data[i]=x;

Total++;

break;

}

}

}

//下面输出

for(i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值