c语言一.10个整数求最大值和二.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

文章讲述了如何使用编程方法解决两个问题:一是通过数组和循环找到10个整数中的最大值,二是计算交错序列1/1-1/2+1/3-1/4+...-1/100的和。在第一个问题中,利用数组存储数字并逐个比较找最大值;在第二个问题中,通过标志变量切换奇偶项的正负,累加序列项。
摘要由CSDN通过智能技术生成

目录

一. 10个整数求最大值

1.因为要求10个整数,首先要先想到如何插入10个整数

2.则是思考怎么让10个数字排序(我的想法)

二.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

思考怎么打印出100个数字和怎么让偶数变号。


一. 10个整数求最大值

1.因为要求10个整数,首先要先想到如何插入10个整数

利用数组的知识int arr[10] = {0},创建10个数字,后利用for循环嵌套scanf(记得头文件stdio.h)输入可以实现多次输入,for循环i<10代表你要循环输入10次,因为是10个整数

2.则是思考怎么让10个数字排序(我的想法)

我是利用数字一个个对比后,挑选出最大数,具体程序的解析是:

因为数组的下标开头以【0】开始,所以先设定一个变量max为数组【0】。

然后利用for循环,从数组【0】-【9】十个数字,一个一个比大小。

利用if判断,这个数字是否比前一个数字大,如果大于前一个数字,则max变量改变为这个数字。

最后跳出循环后,输出这个最大值即可。

总结:记住for循环嵌套scanf可以进行连续输入,而不是多组输入。求最大值可以一个一个进行对比,scanf记得与&符号连用,如果是字符则不用&

/*
思路:
1. 采用循环的方式输入一个数组
2. 使用max标记数组中的最大值,采用循环的方式依次获取数组中的每个元素,与max进行比较,如果arr[i]大于    max,更新max标记的最大值,数组遍历结束后,max中保存的即为数组中的最大值。
*/
int main()
{
	int arr[10] = {0};
	int i = 0;
	int max = 0;

	for(i=0; i<10; i++)
	{
		scanf("%d", &arr[i]);
	}
	//
	max = arr[0];
	for(i=1; i<10; i++)
	{
		if(arr[i]>max)
			max = arr[i];
	}
	printf("max = %d\n", max);
	return 0;
}
二.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
思考怎么打印出100个数字和怎么让偶数变号。

1.因为不是单纯的加法,而是有加有减而且一加一减,那就需要定一个变量来进行符号的更改。

2.因为有100个数那么需要用到循环

3因为整数相除算不出分数的值,所以得用到小数变量double。

4.因为要算100个数字的和则还需要1个变量来充当中间值,即每个数字相加的和,这里用的是sum

5.因为用的是double变量,占位符要用%lf来进行打印

/*
思路:
1. 从上述表达式可以分析出
   a. 该表达式主要由100项,基数项为正,偶数项为负
2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0
    然后使用flag标记控制奇偶项,奇数项为正,偶数项为负
    然后将所有的项相加即可
*/




#include <stdio.h>


int  main()
{
	int i = 0;
	double sum = 0.0;
	int flag = 1;
	for(i=1; i<=100; i++)
	{
		sum += flag*1.0/i;
		flag = -flag;
	}
	printf("%lf\n", sum);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值