我是靠谱客的博主 大力盼望,最近开发中收集的这篇文章主要介绍解析数组野蛮题型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  前言:

      很高兴你打开了这篇博客,今天的内容主要面向数组知识体系不牢固的朋友,希望能从习题中深化甚至升华朋友们的知识体系。

本章主题:

      用数组实现批量数据处理在算法应用中非常常见,所以熟悉的掌握数组对于程序员来说既是基础需求也是必要条件,本章博客将使用三道数组题将以由浅入深的顺序,全面涵盖数组知识点,带你搭建数组应用框架。

目录

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

最后

以上就是大力盼望为你收集整理的解析数组野蛮题型的全部内容,希望文章能够帮你解决解析数组野蛮题型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部