目录
二.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/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;
}