利用一维数组来处理求Fibonacci数列问题
解题思路:利用数组来处理Fibonacci数列问题,使每一个数组元素代表数列中的一个数,只要做到依次求出各数并存放在相应的 数组元素中即可。
编写程序:
#include < stdio. h>int main( ){int 1;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(" );printf("%12d" ,f[i]);}printf("");return 0;}
运行结果:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
程序分析:首先确定计算个数为20,定义数组长度为20,对最前面两个元素f[0]和f[1]均指定初值为1,根据数组的特点,由前面两个元素的值可计算出第三个元素的值,即f[2]=f[0]+f[1];接着在循环过程中用语句f[i]=f[i-2]+f[i-1]依次计算出f[2]~f[19]的值。
利用二维数组使程序输出行列互换的矩阵
解题思路:我们可以定义两个数组,一个数组(a)为a行b列,另一个数组(b)为b行a列,只要将a数组中的元素a[i][j]存放到b数组的b[j][i]中即可。利用二维数组和嵌套的for 循环即可完成任务。
编写程序:
#include < stdio. h>int main( ){int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;printf("数组a:");for(i=0;i<=1;i++){for (j=0;j<=2;j++){ printf(" %5d" ,a[i][j]);b[j][i]=a[i[j];}printf("");}printf(" 数组b:");for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(" %5d" ,b[i[j]);printf("");}return 0;}
运行结果:
数组a: 1 2 3 4 5 6数组b: 1 4 2 5 3 6
私信我可获得更多编程资源,欢迎大家关注、转发、点赞,收藏;共同交流~