概述
前言:
很高兴你打开了这篇博客,今天的内容主要面向数组知识体系不牢固的朋友,希望能从习题中深化甚至升华朋友们的知识体系。
本章主题:
用数组实现批量数据处理在算法应用中非常常见,所以熟悉的掌握数组对于程序员来说既是基础需求也是必要条件,本章博客将使用三道数组题将以由浅入深的顺序,全面涵盖数组知识点,带你搭建数组应用框架。
目录
1.斐波那契
2.元素偏移
3.杨辉三角
1.斐波那契
这道题简直快被玩烂了,此前博主用多种循环方式对词题进行过解释说明,在这里就不多说明了,如果有需要的朋友可以在文末链接直达 “至高的美学——斐波那契数列”,在那已经做过详细的解答。回到这里,今天用数组的方法来对斐波那契数列进行前20位的输出:
#include <stdio.h>
void main()
{
int i;
int f[20] = { 1,1 };
for (i = 2; i < 20; i++)
f[i] = f[i - 1] + f[i - 2];
for (i = 0; i < 20; i++)
{
printf("%8d", f[i]);
if ((i + 1) % 4 == 0)
printf("n");
}
}
这道题使用的是一维数组,相对来说十分浅显易懂,我们进入下一题。
2.元素偏移
将二维数组a中每个元素向右移一列,最右一列换到最左一列 ,移后的结果保存到数组b中,并按矩阵形式输出数组 a 和 b ;
这道题的考点就在于如何将数组a的值赋予给数组b的值,先做分析,数组 a b 的行并没有发生改变而只是发生列变换,所以赋值时找到列变换对应的等式即可,所以找到赋值等式 j=(j+2)%3 就是这道题的关键所在。 代码如下:
#include<stdio.h>
void main()
{
int a[2][3] = { {4,5,6},{1,2,3} }, b[2][3], i, j;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%5d", a[i][j]);
printf("n");
}//输出a
printf("n");
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
b[i][j] = a[i][(j + 2) % 3];//a中元素右移得到b
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%5d", b[i][j]);
printf("n");
}//输出b
}
3.杨辉三角
输出著名的杨辉三角前十行,如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
先对此做观察,很容易看出主对角线及第一列上数字全部都是1,从第三行开始发现规律—其他数字的数都是该数上方两个数之和。所以这道题分三步走就行了。
——第一步:把第一列和主对角线上的数为1表示出来;
——第二步:把其他位置的数用该数上方两个数之和表示出来;
——第三步:数组输出(需要特别提醒的是—在做数组输出时,列j的表示应该是 j<=i ,如果跟i做一样的处理,则上三角会被计算机用随机数表示) 代码如下:
#include<stdio.h>
#define N 10
void main()
{
int a[N][N],i, j;
for (i = 0; i < N; i++)
{
a[i][0] = 1;
a[i][i] = 1;
} //第一步
for (i = 2; i < N; i++)
for (j = 1; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; // 第二步
for (i = 0; i < N; i++)
{
for (j = 0; j <=i; j++) // 第三步(这里 j<=i 需格外注意)
printf("%5d", a[i][j]);
printf("n");
}
}
博客持续更新,喜欢的话欢迎关注,也请过往大佬指正!博主往期博客藏着不一样的新大陆,等你来挖掘!
1.谁说代码不浪漫? http://t.csdn.cn/nHNkw
2.至高的美学—斐波那契数列 https://blog.csdn.net/m0_69097508/article/details/124208244
3.玩转辗转相除法 https://blog.csdn.net/m0_69097508/article/details/124052988
最后
以上就是大力盼望为你收集整理的解析数组野蛮题型的全部内容,希望文章能够帮你解决解析数组野蛮题型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复