一些简单问题的c语言编程3

1.求10个整数的数学期望和方差。
思路,通过创建一个数组来循环遍历10个整数。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
	int i = 0;
	int j = 0;
	double EX = 0;
	double S = 0;
	printf("请输入10个整数\n");
	scanf("%d %d %d %d %d %d %d %d %d %d",
		&arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &arr[5], &arr[6], &arr[7], &arr[8], &arr[9]);
	for (i = 0; i < 10; i++)
	{
		EX = EX + arr[i];
	}
	(double)EX = EX / 10;
	for (j = 0; j < 10; j++)
	{
		S = S + (arr[j] - EX)*(arr[j] - EX);
	}
	(double)S = S / 10;
	printf("%f\n", EX);
	printf("%f\n", S);
	system("pause");
	return 0;
}

2编写程序求满足不等式1^1 + 2^2 +33+…+nn>100000的最小项数n。
思路,调用pow函数来实现循环求和,然后通过比较大小来确定最小项数n。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	int i = 0;
	int n = 0;
	int S = 0;
	for (i = 0; i <= n; i++)
	{
		S = S + pow(i, i);
		if (S > 100000)
		{
			printf("%d", n);
			break;
		}
		n++;
	}
	system("pause");
	return 0;
}

用π/2=(2/1)(2/3)(4/3)(4/5)(6/5)(6/7)…前200万项之积计算π。
思路,把原累积数按照奇偶项分成两部分分别求解,
其中为了避免数据丢失需要for循环体内做强制类型转换。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i ;
	int j ;
	double a = 0;
	double b = 1;
	double c = 0;
	double d = 1;
	double S = 0;
	for (i = 1; i <= 999999; i = i + 2)
	{
		a = ((double)(i + 1)) /i;
		b = b * a;
	}
	for (j = 2; j <= 1000000; j = j + 2)
	{
		c = (double)j / (j + 1);
		d = d * c;
	}
	S =2* b * d;
	printf("%f", S);
	system("pause");
	return 0;
}

最后的结果为3.141591,与π很接近。

猜你喜欢

转载自blog.csdn.net/asd0356/article/details/88673712