吉林大学967-高级语言程序设计-2013

2013-1
//已知sinx=x-x^3/3!+x^5/5!-x7/7!...
//编写程序.求sinx的近似值,要求误差小于10^-8
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//阶乘	
int factorial(int num)
{
	int result;
	if (num == 0 || num == 1)
		result = 1;
	else
		result = num*factorial(num - 1);
	return result;
}
//乘方
double mulit(double x, int c)
{
	int i;
	double result = 1.0;
	if (c == 0)
		return 1.0;
	else if (c == 1)
		return x;
	else
		for (i = 0; i < c; i++)
			result *= x;
	return result;
}
//计算sinx的泰勒公式
double sin(int x)
{
	double sum = 0, item = 0;
	int i = 1;
	while (fabs(item)>1e-8)
	{
		item = mulit(-1, i)*mulit(x, i) / factorial(i);
		sum += item;
		i += 2;
	}
	return sum;
}
int main()
{

	int i;
	double number;
	scanf("%lf", &number);
	double result = sin(number);
	printf("%lf", result);
	system("pause");
	return 0;
}


2013-2
////10个评委给选手打分,原则为:分值为0到100,去掉一个最高分
////,去掉一个最低分,其余8个分数相加,再除以8,即为选手的最终
////得分.编写一个程序,输入10个评分,输出选手的最终得分.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 10
typedef int DataType;
void bsort(DataType a[],int n) {
	int i, j;
	int temp;
	for (i = 0; i < n; i++)
		for (j = 0; j < n-i; j++) {
			if (a[j] < a[j + 1]) {
				temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
}
void output(DataType a[],int n) {
	int i;
	for (i = 0; i < N; i++) {
		printf("%d ",a[i]);
	}
	printf("\n");
}
int main() {
	int i;
	int sum = 0;
	DataType score[N] = { 98,89,60,43,23,56,12,100,13,32};
	output(score, N);
	bsort(score,N);
	output(score, N);
	for (i = 1; i < N - 1; i++) {
		sum += score[i];
	}
	printf("最终成绩:%d",sum/N-2);
	system("pause");
	return 0;
}


2013-3
//一个正整数用几个质数相乘的形式表现出来,叫做分解质因数.
//编写程序,输入一个正整数,输出该正整数分解质因数的形式.
//例如,输入90,输出 90=2*3*3*5.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void divprime(int n) {
	int i;
	for (i = 2; i <= n; i++) {
		while (i != n) {
			if (n%i == 0) {
				printf("%d*",i);
				n = n / i;
			}
			else
				break;
		}
	}
	printf("%d",n);
}
int main() {
	int x;
	scanf("%d",&x);
	divprime(x);
	system("pause");
	return 0;
}




2013-4
//给定一个正整数N,由所有分母小于
//或等于N的最简真分数按从小到大组
//成一个序列,例如,
//N=5, 1/5 1/4 1/3 2/5  1/2 3/5 2/3 3/4 4/5 
//编写一个程序,输入一个正整数,输出上述序列
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int gcd(int a,int b) {
	if (b == 0)
		return a;
	else
		return gcd(b, a%b);
}
void list(int n) {
	int i;
	for (i = n; i > 0; i--) {
		if (gcd(i, n) == 1) {
			printf("%d/%d  ",i,n);
		}
	}
}
int main() {
	int num,i;
	scanf("%d",&num);
	for (i = num; i > 1; i--) {
		list(i);
	}
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36109528/article/details/86231467
今日推荐