第65节 一维数组的应用

应用1: 利用数组求Fibonacci数列的前20项

数列规律: 1,1,2,3,5,8,13,21,…Fn=Fn-1+Fn-2(n≥3);

#include <stdio.h>
int main()
{
	int i, f[20] = { 1,1 };
	for (i = 2; i < 20; ++i)
	{
		f[i] = f[i - 1] + f[i - 2];
	}
	for (i = 0; i < 20; ++i)
	{
		if (i % 5 == 0)
			printf("\n");
		printf("%d\t", f[i]);
	}
}
运行结果:
1       1       2       3       5
8       13      21      34      55
89      144     233     377     610
987     1597    2584    4181    6765

应用2: 谁最大——有若干数字存入 数组中,请找出最大值

#include <stdio.h>
#define SIZE 10  //定义符号常量,为了日后程序维护方便;
int main()
{
	int d[SIZE], i, max, index;
	printf("请输入%d个数: ", SIZE);
	for (i = 0; i < SIZE; ++i)
	{
		scanf_s("%d", &d[i]);
	}
	max = d[0];
	for (i = 1; i < SIZE; ++i) //max初始值为d[0],i=0不用比较,i取1;
	{
		if (d[i] > max) //用max变量记录当前最大值,与数组中的元素逐个比较;
		{
			max = d[i];
			index = i;
		}
	}
	printf("这个最大数为: %d\n", max);
	printf("最大数下标为: %d\n", index);
}

应用3 利用数组输出十进制数对应的N进制数

方法: 除N取余

例如(38)10=(100110)2

第一步:

38 % 2 = 19…0

19 % 2 = 09…1

09 % 2 = 04…1

04 % 2 = 02…0

02 % 2 = 01…0

01 % 2 = 00…1

直到商为0停止.

第二步:

将余数由下往上读取 1 0 0 1 1 0

例如(38)10=(???)8

38 % 8 = 4…6

04 % 8 = 0…4 //商为0终止

结果: 4 6 //将余数由下往上读取 4 6

#include <stdio.h>
int main()
{
	int x; //输入的十进制数
	int N; //需转换几进制数
	int i; //代表数组的下标
	int a[100]; //用于存放余数
	printf("十进制数: ");
	scanf_s("%d", &x);
	printf("转几进制: ");
	scanf_s("%d", &N);
	i = 0;
	while (x)
	{
		a[i] = x % N; //保存余数
		x = x / N;    //保存商数
		++i;          //下标自增
	}

	printf("输出结果: ");
	for (i = i - 1; i >= 0; --i) //逆序输出
	{
		printf("%d", a[i]);
	}
	printf("\n");
	return 0;
}
运行结果:

十进制数: 38
转几进制: 2
输出结果: 100110

十进制数: 38
转几进制: 8
输出结果: 46

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值